The overview

It’s been nine years since the iPhone debuted, and the iOS version number has reached double digits. When we look back at the evolution of iOS over the last four or five years, we can’t help but marvel at the speed of change and the speed of iteration. IOS 7 has a huge new design, Size Classes in iOS 8, app extensions, Cloud Kit, split-screen multitasking in iOS 9, and more. In recent years, Apple has announced new systems and software at WWDC, followed by hardware announcements in the fall and winter (or the following spring). Every software update at WWDC indicates the direction of the hardware, and this year will be no exception.

The good news for developers is that there isn’t a lot going on in iOS 10. IOS development in the coming year should at least start with iOS 8 or even iOS 9, depending on the requirements of adaptation, which will give us time to better comb through, digest and practice the features of previous releases. Instead of expanding, iOS 10 is more focused on improving existing content to compensate for the rapid growth that Apple has left behind, which is exactly what Apple needs to do right now.

Ecological integration and Extension development

With iOS 10, Apple continues its strategy of platform integration in previous years. There is no other vendor in the world that has mastered a range of hardware devices — desktop, mobile, and wearable — and at the same time has mastered a complete layout, from operating systems, to applications, to app stores. Apple clearly understands what that advantage means. That’s why Apple has been emphasizing platform integration in recent years. If your app works on iOS, watchOS, and macOS at the same time, it’s much easier for users and Apple to love it.

The other is integration and interaction between applications. It is not hard to find that with the rise of extension development in recent years, Apple has gradually shifted from the idea that APP is the “core of user experience” to the idea that users should and can complete necessary interactions in the notification center, desktop pendant or watch. App to app interaction used to be off-limits on iOS, but last year, with Workflow’s success, Apple made it clear that app to app interaction can help increase user productivity. Several major updates to the SDK this year revolve around this theme.

With iOS 10, Apple added so many new templates for us with multiple extensions that we joked among colleagues that we were about to lose our jobs as iOS app developers and become iOS Extension developers instead. The variety and number of new extensions are sufficient to illustrate the importance of application extensions and extension development in the future of iOS development. If you don’t know anything about extension development, take a look at this introductory article, which covers the basic concepts of extension development, how code can be shared between different development targets, and common extension development methods.

SiriKit

The open Siri API is certainly one of the most exciting and impressive features of the iOS 10 SDK. SiriKit gives us a whole process from speech recognition to code processing to presenting the results to the user. Apple has added a new set of Intents. Framework to represent the results obtained and parsed by Siri. Your app needs to provide some keywords to indicate that it accepts relevant input, whereas the Siri extension simply listens for the intent identified by the system, responds appropriately, modifies, and acts on it, and then provides feedback through the IntentSui.Framework. The process is pretty straightforward, but it also means that developers have limited freedom.

There are six types of things you can only do with SiriKit in iOS 10:

  • Voice and video calls
  • Send a message
  • Send or receive payment
  • Search for photos
  • About the car
  • Management of the fitness

If your application is dealing with any of these areas, adding Intents Extension support is a great option. It will increase the likelihood that users will use your app and use your service in other system-level applications such as maps.

SiriKit Notes (To be filled in)

User Notifications

Notification centers have always been a battleground on iOS. How timely and effective notifications are provided often determines the likelihood of user engagement and retention. With iOS 10, Apple has enhanced and updated notifications. Now, in order to better deal with and manage notifications, and local and push notifications related API is encapsulated in the new framework UserNotifications. In the framework. In iOS 10, developers’ servers have the opportunity to make changes before local or remote notifications are sent to users.

In addition to notification Actions and Text Input, iOS 10 has added the ability to add audio, images, and even video to notifications. Now, your notifications are not just a way to remind users to come back to your app, but a way to display your app’s content and deliver multimedia information to your users.

User Notifications Notes (to be filled in)

iMessage Apps

The Message app is probably the most important part of Apple’s promotion of iOS 10. While the new sticker pack, the ability to automatically convert emojis and send full-screen effects are cool, iMessage Apps may be of more interest to developers. In Xcode 8, Apple added a new project type, Messages Application, to the iOS Application template. The simulator even includes a new two-person dialogue mode for developers to debug such apps.

Although it is nominally a standalone app, it actually works as an extension. In this extension, messages.Framework will assume primary responsibility for interacting with the system’s Message interface. You provide a custom View Controller to retrieve the context of the conversation, send and receive actions, and make appropriate responses when using your Message App. This extension would be fun to use to do some custom sharing directly in Message applications. But given that Message.app is not currently planned to be cross-platform by Apple, it’s probably destined to be more of a supplement than a mainstream one.

IMessage Apps Notes (to be filled in)

IDE and tool improvements

In addition to a few SDK changes to integrate platform strategy, this year has been more about development tools and innovations for iOS developers.

Xcode 8

Xcode 8 has many interesting new features, such as more powerful View Debugging, and Memory Debugging to help track down Memory reference problems. These tools are very powerful and will help us catch problems early in the development process without carrying them into the final product.

Apple finally realized what they did wrong with Xcode 7 when it came to app signatures. I think more than one person has been cheated by the “Fix Issue” button on certificates and description files. Instead of fixing the problem, the button simply cancels your existing developer certificate and reapplies on your own. In most cases, this makes things worse. Especially for new developers who don’t understand Apple’s certification system, the wrong operation and disposal often make the development environment irreparable. In Xcode 8, multiple developer certificates are now allowed for the same developer account, and a completely reworked app signature system is good enough to work with and avoids the possibility of misoperation. The flexibility of configuration space for large projects and complex CI environments, while taking into account automatic configuration, is definitely worth kudos.

In addition, Xcode finally provides the ability to extend the code editor. Now that developers can create XCSourceEditorExtension to extend Xcode’s functionality, the history of fumbling around making plug-ins for Xcode without documentation or official support is coming to an end.

Xcode 8 Notes (to be filled)

Swift 3

Swift has been open source for half a year. We’ve seen the profound impact of open source community power on the language in Swift 2.2, and it will be even more so in Swift 3.

The biggest change is the reintroduction of the Foundation framework, which, in retrospect, will mark Swift’s complete separation from Objective-C. Apis from the Foundation framework are now imported into the language in a more Swift-compliant manner. In general, these changes include removing NS prefixes, converting most classes to structs (although the underlying implementation is copy-on-write, see the ReferenceConvertible protocol), and removing duplicate semantics from the API. If you can see that Swift and Objective-C have the same roots when it comes to using Foundation or developing apps at the moment, things will probably be quite different when Swift 3 is released.

The conversion of reference types to value types will also lead to a change in the way we think about developing with Swift. Historically, the variability of types in the Foundation framework was distinguished by immutable types and their mutable versions, such as NSData and NSMutableData. In Swift 3, there will generally only be immutable types (such as Data) that are used as constructs, and changes to such constructs will be safer copy-on-write behavior rather than the risky memory operations of mutable objects. In many cases, in addition to ensuring the security of data sharing, the internal reference feature also ensures the speed of calls. In fact, using Foundation through the Swift 3 API will actually be faster than before because of the reduction of unnecessary copying (such as creating mutable objects from an immutable object)!

For more on Swift 3, I’ll cover it in a supplementary chapter in my book Swifter – 100 Swift Must-Have Tips. At the same time, the book’s existing Descriptions and examples related to Swift 2 will be updated to accommodate the latest version, in accordance with the syntax specifications and features of Swift 3. You can learn more about this book at Swifter.Tips.

Apple Ecology and others

The other big news is that the ATS introduced in iOS 9 will be more stringent next year. Starting in 2017, newly submitted apps will no longer be allowed HTTP access, and all in-app web requests will have to be encrypted and done over HTTPS. So if your app’s server or some of the access pages are still HTTP, make the transition to HTTPS early.

In addition, watchOS 3 and tvOS also have some new content. One of the most important is the availability of SceneKit and SpriteKit in watchOS. Although these two frameworks are intended for games, the Watch’s small screen and low performance may not be enough to support our good work on such a limited platform. But both frameworks provide a nice complement to the tedious interactive watchOS animation, and may be more appropriate for their use on watchOS.

Finally, OS X was renamed macOS, which was interpreted by some in the press and developers as de-Jobification, but I prefer it to be a basic need for obsessiveness and perfectionism. Regardless of the name change, Apple’s four product lines — iOS, macOS, watchOS and tvOS — are complete and the ecosystem looks healthy for now. Apple’s emphasis on user rights and privacy, and its push for things like HTTPS, are certainly the driving force of the era.

conclusion

As in previous years, I’ll fill in the Session notes later with some simple examples of how to use the new framework. You can also find relevant links in this article, or subscribe to ensure that you get relevant content in the first time (please do not use QQ email when subscribing, you will not receive email). But a faster way to get this knowledge is to go directly to the Apple developer website WWDC.

Happy WWDC. Happy Coding!