WWDC 2016 Initial Impressions
Check out a developer’s initial impressions of the new announcements at WWDC 2016 so far! By Chris Wagner.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
WWDC 2016 Initial Impressions
20 mins
- Swift 3
- Swiftier Objective-C APIs
- Swift Playgrounds on the iPad
- Xcode 8
- Memory Debugger
- Interface Builder Improvements
- Source Code Editing
- Performance Improvements
- iOS 10 SDK
- SiriKit
- iMessage Apps
- User Notifications
- Widget Overhaul
- watchOS 3
- Speed Enhancements
- SceneKit and SpriteKit Availability
- Complication Improvements
- tvOS 10
- macOS
- Apple Pay for the Web
- Apple File System (APFS)
- Where To Go From Here?
Performance Improvements
Apple claims that Xcode 8 is radically faster in several categories – for example Indexing Tests can be up to 50 times faster.
Speed improvements leads directly to more productivity as developers, so this is great news!
iOS 10 SDK
The iOS 10 SDK adds a number of new kits, extension points, and enhancements to existing frameworks. Below is a small pickings of the ones that stood out to me.
SiriKit
Arguably the most long awaited developer feature is the ability to integrate with Siri. Now you can in iOS 10 with SiriKit!
SiriKit defines six distinct domains that your app can use to make services available to Siri:
- Audio or Video calling
- Messaging
- Sending or receiving payments
- Searching photos
- Booking a ride
- Managing workouts
If your app falls into one of the domains listed above, you should provide an Intents Extension point within your app. Siri deals with all of the nuances of language processing and semantic analysis, and translates the user’s request into an actionable item that you handle in your Intents Extension. You can opt to provide custom UI as necessary when your app is passed an Intent from Siri or Maps.
There are a number of details that your extension must provide in order for the system to determine that your app can handle a user’s request, but if you are familiar developing App Extensions that were introduced with iOS 8 you will be on your way to creating a Siri extension in no time.
iMessage Apps
As a Slack and Facebook Messenger user, I am super excited about the enhancements to messages. Animated GIFs and fireworks, here I come! :]
In the keynote, Apple demonstrated a ton of cool new features like link/media unfurling, reactions, message bubble effects and even window effects that I don’t quite understand how to create yet. As the demos went on, I kept hoping that they’d announce an extension to allow third party developers into the messaging platform, and they did! With the new Messages framework you can create extensions that let users send text, stickers, media, files and most intriguing: interactive messages.
Sticker Packs
The simplest type of extension is sticker packs. These are ridiculously easy to build and allow you to define a set of stickers that a user can use to send to their friends. If you’re at all familiar with Facebook Messenger it looks very similar, except that stickers can be “peeled” and placed on top of other messages. Honestly, it’s a bit gimmicky, but should still be very entertaining. :]
Interactive Experiences
You can go a lot farther than sticker packs though. The APIs allow you to create entire experiences right within the Messages app, even providing a custom user interface! This is obviously interesting for services like Giphy, where providing such an extension may have a better experience than what their third party keyboard does today. But it may also be extremely powerful in business contexts as well.
Consider a service company who has a fleet of techs that use Messages to communicate. It might be useful for them to have access to data from their customer management system right within messages to get information back and forth to each other quickly. And with interactive messages each party can “build” upon a message. The Keynote demo that was given was creating a group food order where each person on the group chat could modify the food order before it was sent.
There are a ton of apps I can foresee benefiting from this and I am excited from a user’s perspective to see where it goes.
User Notifications
A new UserNotificationsUI
framework has been introduced which allows developers to create rich notifications that were never possible before.
For example, notifications can now have embedded media much like the stock Messages app. This appears to involve an intermediate server between your app and APNS but it is achieved through a new extension that is invoked when a notification is received and looks to be extremely powerful. You can even provide your own layer of end-to-end encryption features through the use of the intermediate server notification extension.
I haven’t had time to look into this much yet, but look forward to more details on notification enhancement as the sessions play out and also check out the UserNotifications framework reference.
Widget Overhaul
Widgets are getting a big overhaul in iOS 10 and I am glad to see it. I was originally pretty excited for widgets in iOS 8, but as it turned out they just weren’t that great living in the Notification Center.
Now, widgets live to the left of your home screen kind of like how they used to be on macOS. Widgets can also appear with your 3D Touch Quick Actions on above/below your app icon. This is a much more natural place to look for quick information in my opinion, it’s almost as if you’re peeking into the app’s content.
watchOS 3
It’s a common opinion that the Apple Watch platform has been a bit of a flop with regards app development. Although it’s a very fascinating device and is pretty good at its core functionality, it has been missing something since the beginning: speed.
Launching apps on the watch is simply painful. Often you’re met with a spinner that goes on and on for 20-30 seconds and even sometimes bails out completely, leaving you frustrated and confused. Eventually you find yourself stashing your watch in a drawer, selling it, or like me wearing it simply as a time piece and notification viewer.
When Kevin Lynch opened the keynote by saying that their main focus was making apps launch instantly, I was pretty excited! If this pans out to be truth, this makes me believe that watchOS development will be great again. :]
Speed Enhancements
The big things behind the speed enhancements of the watch are the introduction of Snapshots, the Dock, and Background Tasks. The three of these combined allow watch apps to stay up to date and available to the user at a moment’s notice.
Snapshots and Background Tasks are similar are just like on iOS:
- With Snapshots the system will take a screenshot of your UI so that it can be used when your app launches and during app switching.
- With Background Tasks your app is given time in the background to update its information so that it is available as soon as the app is opened.