iOS Features – Enhanced app restart

The SDK will handle a restart process after the application is terminated either by swiping the app from the app switcher or by restarting the device.

After the restart, the Point SDK runs in an enhanced restart mode. In this mode, the application does not allocate and instantiate view controllers, neither the RootViewController or any other controllers. You still can instantiate them programmatically if required. However, view controllers `viewWillAppear`, `viewDidAppear` and `viewDidLoad` are not called by the OS until the application is in the foreground mode. So, if your application is relying on the code in a view controller, it might not work as expected in the enhanced restart mode. Hence, it is recommended to move all the Point SDK callbacks related tasks into the AppDelegate.

After the restart, the SDK will authenticate with the backend and download zones if necessary. It will continue to track geofences and trigger check-ins and check-outs. The SDK does not check into or check out from GEOLINEs and Beacons in this mode. Zones which have Speed, Bearing, Percentage Crossed and Sequential conditions added to their Actions will not trigger as well in the restart mode.

In the restart mode, the SDK treats all Geofences as large circular regions, so there is a degradation in the accuracy of triggers expected. Also, check-ins can be observed 30 – 50 meters away from the actual location of the Geofences created in the Point Access dashboard.

Due to the iOS limitations, it is not recommended to overload application with processes and HTTP requests in the background mode as it might lead to unexpected SDK behaviour and early process termination. If it is possible, try to minimise the number of requests sent while application in this mode. However, when a user reopens an app, this limitation is dismissed.

Discussion

An enhanced restart mode is configured by the Bluedot team. Please contact our friendly support if you would like to enable it.