NOTE: this post also published on our company blog.
You may have heard about some of the well-publicized features in iOS 8, like Interactive Notifications and widgets, but there are lesser-known behavioral changes in the new OS that could have profound impacts on the end user’s experience.
Some of these represent new opportunities to delight your users, but others, if ignored, could disrupt your ability to deliver pushes or power app features based on location.
Whether you’re planning an app update for iOS 8 soon or not, review this watch list of new app, location, and push-related behaviors, along with our tips for how to think about and handle these changes:
- When iOS assigns a device token
- When a device can receive a “silent” push
- When a device can display a local notification
- New location opt-in behaviors and options
Building an app for iOS 8 requires planning to avoid some pitfalls in the new behaviors, especially around push and location opt-in. Upgrade to our latest SDK for out-of-the-box support for all the new iOS 8 features.
When iOS assigns a device token Apple has changed the way it assigns device tokens, creating a pathway for app developers to dramatically improve user experiences.
Before iOS 7, iOS assigned a device token (a push address), whether the user opted in to push or not. Starting in iOS 7, the OS only assigned a device token if the user opted in to push. Now, once again, iOS 8 assigns a device token to users who opt out of push if the app developer has enabled the remote-notification background mode.
This means that Apple now allows you to deliver pushes in the background, even if the user has opted out of notifications (see more detail on “silent push” below). Apple has made it possible for developers to take advantage of push services to pre-load content in the background to create fresher and faster app experiences. Instead of pulling the latest content from servers after the app opens, forcing the user to wait, the user can view it immediately.
This change also has implications for companies that track device tokens in their backend systems or map them to corporate logins. If you are doing any device token tracking in your backend systems, you will want to take note of this change, as the presence of a device token no longer necessarily implies that the user has opted in to push.
When a device can receive a “silent push”
Apple describes a “silent push” as a notification that will wake up your app in the background to load content or perform some other processing (by adding the “content-available” flag). The “silent” part refers to the ability to wake up the app in the background; however, it’s also possible to send a silent push with notification text opted-in users will see.
In the past, silent pushes were used for Newsstand apps; the silent push would trigger the download of new articles/issues in the background. When a user opted out of push, they would no longer receive these pushes.
The exciting new opportunity for app developers in iOS 8 is that Apple will now deliver “silent” pushes even if the user has opted out of notifications. Also, “silent push” is no longer just for Newsstand apps. Every app can take advantage of this ability to refresh content in the background, creating the most up-to-date, responsive experience possible, the moment the user opens the app.
Users still have the ability to switch off your app’s ability to process a “silent push” by means of the “Background App Refresh” control. Even though Apple Push Notification service (APNs) will deliver a push marked “content-available” to your phone, the OS will not wake up your app to receive it, effectively dropping it on the floor. However, opting out of “Background App Refresh” is a lesser-known capability not directly associated with Notifications. You don’t access this preference in your Notifications Settings–it’s located under General > Background App Refresh screen.
Though some users may go in and disable background refresh for an app believing it will conserve their battery life, they should know that Apple has designed this functionality from the ground up to improve their overall user experience. Not only will apps have fresh content that’s instantly available on open, these changes improve battery life and network usage as well.
Background refresh means that content gets delivered as soon as it’s available, including overnight, when devices are more likely to be plugged in and connected to Wi-Fi. This makes for more even network usage and reduces direct battery usage during the day. This is also a much more efficient way to update content than waking up the app to poll for content; with a push the app only wakes up or makes requests for new content when it knows for sure that new content is available. Apple does other things to preserve battery life, for example, APNs has built in rate limiting that prevents customers from sending too many silent pushes within a short period of time, and in the course of a day.
Background App Refresh is not enabled for apps by default: to take advantage of any background processing (including “silent push”) the app developer has to enable this at build time by including the ‘remote-notification’ background mode in the application’s capabilities.
You can also use background push to trigger a content refresh of the Urban Airship Message Center Widget, and we’re planning to build other new features on top of this functionality soon (stay tuned).
When a device can display a local notification
Local notifications look just like push notifications to the end user, but are triggered programmatically by the app developer, either directly, at a scheduled time, or triggered by crossing a geographical boundary. Prior to iOS 8 users had no control over the display of local notifications; some apps even took advantage of this feature to get around opt-in user preferences. Because there is no way to visually distinguish a local notification from a push-based notification, this frustrated users who though they had opted out of push but continued to see local notifications.
With iOS 8, Apple has linked display of both push and local notifications in the same opt-in choice. Opting out of notifications now blocks both local and push notifications.
New location opt-in behaviors and options
iOS 8 created the new Location Services opt-in option “While Using the App” to offer a more limited level of access than the “Always” option, which allows the app to react to location changes at all times in the background. As a developer you can chose to expose one or both of these options. The user can enable or disable these under Settings > Privacy > Location Services.
Many leading brands are already taking advantage of the new “While Using” setting, including Twitter, Zillow, United, Instagram and Evernote. These companies believe they can see higher opt-in rates by asking for less location information. A good rule of thumb is to only ask for what you need and if you do need to ask for more, make the strongest possible case before asking fo it.
Apple is enforcing this behavior by requiring app developers to provide explanatory text when they prompt the user to opt-in to location services. This will help users make more informed decisions about sharing their location data.
iOS 8 also makes it easier to link users directly to their Push and Location settings screen to change their opt-in settings. Now if you can give users a compelling reason to opt-in, you can link them directly to opt-in settings to take action immediately.
Finally, users who select the Always option will receive an occasional re-prompt asking them to re-confirm their consent to allow the app to continue to always track their location.
This new OS behavior in particular is surprising, and will likely reduce the percentage of users opted-in to always share their location. Customers planning location-enabled features for iOS 8 should take steps to confirm the value and necessity of this level of tracking, while also educating customers on the unique value it offers.
As always, Urban Airship is glad to talk to you about your use case and recommend the ideal solutions to maximize value to your users.