Apple latest mobile operating system, iOS 11, is now live. With it, Apple shares its vision of what mobile devices should do for us in the upcoming next years. Let's make a quick review of 4 things developers need to know about Apple's software update:
CoreML
Machine learning has been one of the greatest advances in the last years, and the main tool used for object recognition, speech to text, and many other tools that help us in our lives on a daily basis.
Although CoreML is not a Machine Learning framework, it allows to easily import existing models into your application. According to Apple “Core ML delivers blazingly fast performance with easy integration of machine learning models enabling you to build apps with intelligent new features using just a few lines of code.”
ARKit
Apple has raised the bar in terms of Augmented Reality experiences using user-level hardware. By combining the information of two cameras it is possible to get stereopsis, remarkably increasing the measures of the observed reality. The good news is that all this technology is now available for developers, who have already created wonderful experiments such as the following ones:
In terms of location APIs and technologies, Apple has made some changes that are worth mention it:
Background Location blue bar
The first beta of iOS 11, and a WWDC’17 conference shown how Apple decided to show the “blue bar of shame” for Apps that were tracking using position in the background. The objective of that feature was to be sure that user was completely aware of the application getting location information in the background. However, Apple decided to remove this feature in iOS 11 Beta 5. Although no official statement about this change was released, it is safe to say that many users found it annoying (myself included), as users already know that some apps were getting this information in the background, and they were completely ok with that.
Location permissions: When in use / Always
In previous iOS versions, the developer could choose between two location permission types: Only when the application is in use or Always (even with the app closed). Starting from iOS 11, Apple forces developers to ask for “When in use”, or both but is not possible to ask only for an Always location permission.
With this model, Apple wants developers to be more aware of how an application is using the location permissions. According to Apple, many developers were using always location permission although it was only used in the foreground. With this change, users now have more control over the information they share with 3rd parties while optimizing a bit battery usage.
From our point of view, this will increase the total number of people who accept to be geolocated but will decrease the number of people who accept the “when in use” rather than the “always” permission.
There are many other improvements in existing frameworks and new features that have been released with iOS 11 including Xcode 9.0. Check out the complete list on the Apple Developer website.