Announced at WWDC 2016, iOS 10 introduced a plethora of changes for the developers, the most significant revamp since 2013. The SDK for iOS 10 brings in new APIs and services that lead to new application types and features. To work on iOS 10, one would need to do the programming using Swift 3 and also download Xcode 8 for building the iOS applications. Let’s focus on the key developed related features that have been introduced in iOS 10.
Improved User notifications
iOS 10 marks the advent of the User Notification framework (UserNotifications.framework) and User Notifications UI framework and end to UILocalNotification. The User Notification framework helps in supporting and handling remote as well as local notifications. Developers can use the classes of the framework for modifying remote and local notifications as they are delivered to the device. The appearance of local and remote notifications can be customized with the help of the User Notifications UI framework. With the help of these two frameworks, Apple has not changed the overall local notifications but has significantly improvised the functionalities.
The biggest change by the new notification system is that it brings in an intermediary between message arrival and device display- a notification service provider capable of end-to-end encryption with app receiving the encrypted message from Apple, decryption happening on the user device and displaying the notification in the notification center.
A plethora of APIs has been introduced in iOS 10 especially enhancements to Messages App. App extensions can interact with the Message app and users can send media files, interactive messages, stickers. The Sticker pack brings in a set of stickers to the message content. iMessage app not only helps users search images but also provides a user interface within the app.
From the development perspective, the custom interface for the messages can be made with the help of MSMessagesAppViewController. session and MSMessage could help in the modification of the message, with former having built-in support for expiring messages. To provide a custom sticker browser to the message application, MSStickerBrowserViewController can be used.
As witnessed, the new and improved Message extensions are better and more powerful.
Changes in Animations
In iOS 10, better control over animations is established. The capability to control animate properties like the resume, stop or positions are fine-grained in iOS 10. UIViewPropertyAnimator is an important class that helps in creating and triggering the animations.
A new API is brought in which supports continuous speed recognition. This helps developers in building new apps for recognizing speech and transcribing it to text. Most of the magic is done with the help of APIs in Speech framework, especially with classes such as SFSpeechRecognizer, SFSpeechURLRecognitionREquest, SFTranscription, etc.
Integration with Siri
Get integrated with Siri for most apps like messages, calling, payments, photos, etc. iOS 10 now lets users use their voice to perform actions and all these are achieved with the help of Sirikit. The concerned domains need to be registered with the response done.
For non-graphical intents, developers need to make use of Apple Maps whereas, for graphical intents also known as Intent UI extensions, developers can extend the user interface for the interface design.
ReplayKit gets better
iOS 10 has bought new enhancements to the ReplayKit introduced in iOS 9 I.e introduction of live broadcasting of Replaykit streams, which means a user can broadcast media through other sites or applications and broadcast US extensions which help users sign into service and set up a broadcast. Developers need to create RPBroadcastActivityViewController to allow users to select the streaming service that would love to use. The action would return RPBroadcastController that helps in starting, pausing live broadcasts.
There are smaller other improvements and some of them are
- Enable property for Safari content blockers to verify the content blocker has been switched on by the user.
- The openURL() method of UIApplication is now considered as obsolete.application(_:open:options:) needs to use instead.
- New property set enabled for UIPasterboard for handling cross-platform clipboard between iOS and macOS.
- SKTileGroup class has been provided to SpriteKit to make square, hexagonal, or isometric tilemaps.
- For smoother scrolling, prefetchDataSource can help in preloading content.