The time has come again for a big iOS update. iOS 12 is here and while it’s largely focussed on performance improvements, it does come with some changes and features too, as always. As usual it’s also being rolled out with a new version of Swift (4.2).
That’s great for new projects, the question is, what does it all mean if your project is already underway or already released?
Do I need to update Swift?
On the whole, it shouldn’t have a massive impact. While projects being actively updated or developed will definitely be best off moving onto the new Swift if they haven’t already, this migration will be very quick and simple. Some interface elements have been deprecated in the new version, but updating for compliance should be under a day’s work for projects of all sizes. Of course when you add in a full regression testing of the app, bug fixing and re-release to the store, the full migration process will likely involve several days of development time.
There’s no rush for older projects to make this migration though. Swift 4.1 is still supported by the store and while it’s impossible to say exactly how long that will last, our best guess is that it might be deprecated with the release of Swift 5.0, currently scheduled for release in “early 2019”. As this version is due to be ABI stable, it seems likely that the store would stop supporting the uploading of binaries built with older Swift versions after that point.
Update: Apple have now announced that after March 2019 all new apps submitted should be built with the iOS 12 SDK, and support the new, larger iPhone Xs Max.
What about cross-platform apps built with React Native?
To ensure ongoing compatibility with the new iOS, React Native apps will also need upgrading to the latest SDK. Essentially the deadline is the same, but the amount of work required to upgrade will be slightly more in many cases, depending in part on the last time you upgraded the SDK. On the other hand, the overwhelming majority of plug-ins for React Native are written on Objective C, so don’t require Swift to be updated (though it would be wise to review their native SDKs).
Concern about iOS 12
While some have expressed concern about bugs in iOS 12, these have largely been caught and removed during the system’s beta period. We’re very excited by the new OS and confident in it’s smooth operation.
As I mentioned in the introduction, essentially this release is focused on performance improvements and righting some of the mistakes made in iOS 11. This makes it especially worthwhile using, but again means that there’s minimal disruption to apps that don’t update.
If you want to keep your project on the cutting edge of technical possibilities, iOS 12 opens up a few new options you should consider. Below are the two areas we feel have the widest potential application in a lot of projects, but you can read the full list of what’s included in the new release here.
There are a number of additions and changes to notifications in iOS 12, which might seem like a small thing, but they can have a big impact on user experience.
Now messages come grouped together and the user can choose to open a set of notifications to check exactly what they contained (or not). By default all notifications from the same app will be grouped together, but this is customisable. Some obvious practical applications of this feature might include grouping notifications from the same conversation in a messaging app or having most app notifications group together but some notable VIP/Urgent action notifications with their own group.
There are now also 3 modes that users can put notifications in: “On”, “Off” and “Deliver quietly”. The third option sends notifications only to the notifications centre without appearing in a banner or on the lock screen. If your app is notification heavy and you’re concerned users are missing out because they turn it’s notifications off, use “deliver quietly” from the start for lower priority messages while leaving action worthy notifications fully “On”. It might be just what you need to help improve engagement levels.
Siri can predict what actions users are likely to take in your app and offer them shortcuts to those actions in places like Spotlight search, Lock Screen, and Siri Watch Face. In order for Siri to behave this way with your app, you need to decide which actions your users are likely to want fast access to and set up the relevant shortcuts for Siri to use.
As always, Apple’s new features create a lot of potential for new functionality. None of it’s essential, but it can drive engagement and create a slicker experience for your users. So think about how these new features could be best utilised by your app and whether it’s going to make a difference towards your business goals.
Upgrading to Swift 4.2 is a good idea and ultimately we’ll all need to do it. But there’s no immediate rush.