The next major release of iOS is less than a month away. A lot has been discussed about the great innovations around the new platform and the new iPhone devices that will be launched alongside this release.
In this article, I would like to highlight few opportunities and pitfalls that iOS developers can and should be aware of a moment before this major release hits the market.
Exploiting New APIs and Innovate
If you haven't scanned through the new APIs introduced by Apple for iOS11, it is not too late, but highly recommended that you do - sooner than later.
From the long list of innovative capabilities that includes ARKit, Sirikit, FileSystem access, drag and drop and much more, I would actually like to focus on the CoreML API's - machine learning support for iOS11.
iOS developers, can now choose from 3 sets of API's and add a layer of machine learning to their apps, and with that, enhance their end-user experiences.
As can be seen in the architecture above, developers can add capabilities around vision, language processing, and gaming.
Each of the three capabilities above can add new value to your app. Apps that will benefit the vision APIs can now start leveraging capabilities involving image analysis to identify faces, detect features, and classify scenes in images and video. Alternatively, apps that would extend their capabilities via the language processing APIs can now analyze natural language to tag part of speech, perform lemmatization, identify proper names, translate text to other language or even the entire app UI to a new target language based on the input text and more.
Lastly, if you are an iOS game developer, then the new GameplayKit APIs should enable you to add more layers of sophistication and customization to your game, that will include previous behavior adoption, or as Apple would describe: "Incorporate common gameplay behaviors such as random number generation, artificial intelligence, pathfinding, and agent behavior."
In addition to the above unique use cases, app developers can use the CoreML API's to integrate an ML model into their app, like in the below example Apple provides as a reference to developers.
iOS11 App Review on AppStore
iOS app developers should also pay attention to a new rule that is being enforced starting iOS11, and it's the in-app request for users app reviews.
Up until iOS11, app developers could use customer API's to request their users to provide app reviews as many times they like, when the users would launch the app or in a random sequence. Starting iOS11, app developers are required to follow and use only the Apple app reviews API's, and adhere to a 1-time request for app reviews.
This can mean few things for app developers:
Code refactoring to assure you're using the proper APIs.
Tuning the app request for review properly.
Getting your app to work fine, since you now only get one user review shot, so it should be a 5-star one.
Application Dependency on Third Party Engines and APIs
This specific point should be relevant not only when transitioning to iOS11, but when you move from one OS version to the next.
Many apps today leverage third party tools that are either embedded as an engine in your app (e.g. Voice command, image processing, etc.), or that are relying on third party native apps within their own app like login via Facebook to your game etc.
The fact that you've tested that your app works fine should also mean that the dependent engines, services, and other libraries that you rely on were also tested against various iOS11 devices and conditions.
Don't Forget the Implication on Your Lab and Testing Plans
While I wrote a lot in the past on the new iOS11 disruption potential to an existing application and how will it perform on various devices, I would like to reiterate the points in a high level:
Many devices will be left behind on iOS10 and will join a few others that are stuck on iOS9 - make sure that your test lab, your automation code remains solid and can reliably run on a daily basis, within continuous integration etc. on all these platforms - do the tests right now on the beta versions.
Not all devices that vary across screen sizes, processors, and OS versions, perform the same way across networks and locations - do proper testing in varying environmental conditions and identify issues ahead of release.
Adoption of any new iOS version is fast but also bumpy - plan for fast adoption and upgrades of your users to the new OS, but also for critical regressions that will mean patch releases etc. - allocate time and resources for your own app surprises, glitches and testing for the 1st few weeks post the iOS11 release.
Happy iOS11 adoption, innovation, and testing.