The ultimate guide to WWDC for app developers
After WWDC, a huge amount of sessions have appeared on Apple’s website. Figuring out what is worth watching can take a ton of time. After spending the entire week at the conference and watching a lot of presentations, I gathered a short list of novelties and videos to look out for each topic in one place.
This article is relevant to mobile developers who use the capabilities and built-in frameworks of iOS when developing native applications.
The sessions are arrayed in the suggested watch order where possible.
You definitely should start with
▸ 101 — Keynote and
▸ 102 — Platforms State of the Union,
these sessions provide an overview of all news with pictures and hands-on examples.
iOS
SiriKit
Perhaps the best news of the conference is that in iOS 10, third-party applications will have access to SiriKit. More precisely, Siri gets access to what is going on in your applications and will be able to activate the function and even display the application interface directly in the system panel.
Configuring Siri for a specific application can be done only in a limited way, by:
- Specifying the vocabulary specific to the application (name, services, locations)
- Specifying the terms which are important for a particular user (eg, contact names)
- Writing intent handlers (there are a limited number of recognised intents available)
- If desired, providing an interface in the form of an App Extension to display in a Siri dialog with the user.
Siri behaves differently on the watch, in the car, on your iPhone, or via voice activation. This behavior is fully transferred to third-party applications. A language processing engine is able to handle both single and multi-step dialogues for you.
The most annoying is a pre-defined set of recognized domains: voice calls, getting a taxi, sending messages, and some others. Of course, Apple engineers promise to add domains in the future. However, the included domain recognition is top-notch: users can choose different formulations, add slang words and naturally handle the conversation. This is a dramatic improvement compared to what is happening in the chat bot market, which basically solves the same problem.
▸ 225 — Extending Your Apps with SiriKit
Search APIs
SiriKit is not the only entry point into an application. Content can be searched through Spotlight or promoted on the basis of Handoff, messages created in your application may appear in iMessage, and Geofencing and iBeacon allow system to offer applications based on location. Check out the following sessions to learn how to work with multiple points of promotion:
▸ 240 — Increase Usage of Your App With Proactive Suggestions
▸ 223 — Making the Most of Search APIs
Notifications
On iOS 10, the user will receive newly designed alerts. In addition to them being displayed as identical banners throughout the entire system, there will be several new fields in the interface. If user makes a Force Touch on your notification, it is possible to display a portion of the application interface through App Extensions, but it will be static and non-interactive. Also, media files (pictures, GIFs, audio, video) may be added to notifications as links in the payload fields.
▸ 708 — Advanced Notifications
▸ 724 — What’s New in the Apple Push Notification Service
▸ 707 — Introduction to Notifications
iMessage
Lots of new features have been added to iMessage, but for us, the developers, two are important: Stickers and App Extensions.
Stickers can be created directly in Xcode, both static and animated versions are supported. Stickers can be placed in a separate iMessage AppStore, so it isn’t necessary to create a parent application.
For larger applications, extensions for iMessage can be written. For example, an app to reserve tables can be used in order to send a reservation card to friends. This card is shown even to someone who does not have the application, and serves as an additional channel for viral spread.
Of course, applications can embed images and links in a chat. All of this works through App Extensions: the interface is displayed directly in iMessage. Sent messages will be visible on mac and Apple Watch.
Cocoa Touch
There are a lot of new developer tools. In addition to renaming tons of system API’s (see the Swift section), many new features were added.
It’s worth paying attention to the session about working with AutoLayout and Size Classes in the Xcode section.
- The GCD interface has been redesigned for SWIFT, private queues were added
- NS prefixes were gotten rid of in Foundation classes
- Additional methods for working with Remote Clipboard are new to third-party applications
- App-based dictionaries can be used with the QuickType system keyboard, such as contact names or menu items that are specific to a particular application
- RefreshControl is now available for ScrollView and all of its subclasses
- The UIView animation system has been reworked, now it easier to create reversible and controllable animation
- Last but not least, possibilities to integrate into system calls using CallKit were added.
▸ 205 — What’s New in Cocoa Touch
▸ 213 — Improving Existing Apps with Modern Best Practices
▸ 216 — Advances in UIKit Animations and Transitions
▸ 230 — Enhancing VoIP Apps with CallKit
▸ 220 — Leveraging Touch Input on iOS
iOS Frameworks
There are always many changes in the system frameworks, which stems from competition with Android and the need to provide developers with the most current tools. For the user, it’s not very noticeable at first sight (except for extended RGВ color support on the new iPads and iPhones), but developers see the opportunity to expand.
▸ 720 — Concurrent Programming With GCD in Swift 3
▸ 716 — Core Location Best Practices
▸ 711 — NSURLSession: New Features and Best Practices
▸ 714 — Networking for the Modern Internet
▸ 719 — Optimizing I/O for Performance and Battery Life
▸ 712 — Working with Wide Color
▸ 242 — What’s New in Core Data
There were several sessions about optimizing launch speed and polishing iOS-applications:
▸ 406 — Optimizing App Startup Time
▸ 420 — Optimizing Web Content in Your App
▸ 221 — Optimizing On-Demand Resources
Last year, the mechanism of working with XLIFF was introduced. This time, the sessions focused more on best practices as opposed to new mechanisms:
▸ 238 — Measurements and Units
▸ 201 — Internationalization Best Practices
▸ 232 — What’s New in International User Interfaces
Security
In Cupertino, they make a huge deal about privacy and security. Most experts recognize that the iOS security model is much more robust and secure than such in Android. Full control over the software and hardware allows you to organise multi-layer protection, which is why in almost 10 years of existence, the platform has not seen a single case of mass theft of user data or resources.
Enterprise, Medical, Education
In iOS 9.3, the shared iPad mode was introduced, in which one device can be used by several appleID-accounts. This mode is especially relevant for schools or businesses.
In fact, the entire mechanism of saving and loading content is via iCloud: between sessions, all data remains blocked and separated. Due to optimizations, the iPad will not reload all the data again if it has already been downloaded. This applies to on-demand resources, keychain, and loaded UserPreferences.
The earlier presented frameworks of HealthKit, ResearchKit and CareKit have not yet been widespread globally, but several success stories speak for themselves.
▸ 304 — Best Practices for Building Apps Used in Business and Education
▸ 237 — Getting Started with CareKit
▸ 209 — Getting the Most Out of HealthKit
▸ 234 — What’s New in ResearchKit
▸ 713 — Health and Fitness with Core Motion
watchOS
In watchOS 3, most innovations relate to fixing the defects which made the previous versions of the platform unusable. The AppDock has appeared, which not only includes links to launch your favorite applications, but also causes the system to keep them running and launch in a split second. To do this, the update mechanism is provided in the backgrounds of all application components: the screenshot at the dock, Complication on the main screen, and the iPhone app.
All digital crown events, full control over touch input processing (swipe, drag, pan, long press gestures) and continuous access to the data of the accelerometer are accessible for third party applications. Hopefully, all of this can make applications as fast and responsive as on iOS.
Notifications in watchOS can now be local: that is, shown only on the watch and not on the phone.
▸ 235 — Building Great Workout Apps
▸ 208 — What’s New in watchOS 3
Frankly, you can stay on session 208. All the rest is the same, but with a different sauce:
▸ 211 — Quick Interaction Techniques for watchOS
▸ 227 — Architecting for Performance on watchOS 3
▸ 218 — Keeping Your Watch App Up to Date
Design
There were fewer design sessions this year, and the content was not very interesting. Of course, all information is gathered in the guidelines, but a couple of words won’t hurt.
As you know, Apple systems have been using a new font family, San Francisco, since last year. This year, monospaced variations have been added to all fonts: SFMono. In Xcode 8 they will be enabled by default. The width of symbols will be the same in every style, numbers and symbols will be specially customized for developers, and the fonts will have Cyrillic characters.
Apple’s designers have a few recommendations for watchOS. Applications must first be “glanceable”, i.e. delivering content in a minimum number of steps. The typical reaction time on the watch should be within 2 seconds.
▸ 804 — Designing Great Apple Watch Experiences
This year also saw the continuation of traditional sessions about design in Keynote. Prototyping and previews were examined in detail.
The Design Awards are held every year. Inspiration here:
Swift 3
For Swift 3, in addition to syntax changes, thousands of methods in system frameworks were renamed. Apple calls it the “Grand Renaming”, and system APIs finally got rid of the old baggage.
▸ 403 — Swift API Design Guidelines
▸ 419 — Protocol and Value Oriented Programming in UIKit Apps
▸ 207 — What’s New in Foundation for Swift
▸ 404 — Getting Started with Swift
▸ 416 — Understanding Swift Performance
Since Swift was laid out in open source a year ago, Apple has been promoting it as a server development language.
▸ 415 — Going Server-side with Swift Open Source
The Swift Playgrounds app will be released soon on the iPad, which is a code editor to teach the Swift programming language to children.
Xcode 8
Xcode is getting better every year, although there are still nasty mistakes and problems.
The system of app signing for testing on devices has been seriously altered. While the Fix Issue button was previously enjoyed only by thrill-seekers, the signing logic now allows the system to resolve most of the problems itself. Now, it is recommended to switch on Automatic Signing in the project settings, and all certificates and provision profiles will be generated and configured via the AppleID account of the developer. This means that you can easily work on multiple machines and boldly commit to project settings for colleagues. Capabilities settings will also work automatically.
Of course, everyone still has the ability to do everything on their own in order to evade problems with sending a build to the App Store.
▸ 401 — What’s New in Xcode App Signing
▸ 213 — Improving Existing Apps with Modern Best Practices
▸ 409 — Advanced Testing and Continuous Integration
▸ 417 — Debugging Tips and Tricks
▸ 414 — Using and Extending the Xcode Source Editor
▸ 410 — Visual Debugging with Xcode
▸ 222 — Making Apps Adaptive, Part 1
▸ 233 — Making Apps Adaptive, Part 2
There are also new updates and features in these instruments.
▸ 412 — Thread Sanitizer and Static Analysis
▸ 418 — Using Time Profiler in Instruments
iTunesConnect
The changes in iTunesConnect are small but important:
- Apple continues to work on reducing app review time, with the results being visible in the past months
- The subscription mechanism is now available for all categories in the App Store
- If the user’s subscription lasts longer than a year, the developers get 85% of its value in their hands: this policy is already live
- In the autumn, promo codes will be added for the In-app Purchases
- The AppStore Analytics adds a new dimension, Impressions. This allows tracking your app visibility anywhere: in the banner, in Featured, in search results
- iTunesConnect screenshots can now automatically resize down. That is, you can fill them for the iPhone 6s Plus, and all others will be generated automatically.
- A new AppStore category of applications for iMessage and stickers was added
- The App Review Guidelines requirements were seriously altered. They have become more readable and understandable by normal humans. In addition, they have been translated into new languages.
▸ 305 — What’s New in iTunes Connect
▸ 301 — Introducing Expanded Subscriptions in iTunes Connect
All other sessions (and there are many more about game development, MacOS and tvOS) can be viewed on developer.apple.com