Swift Developments is a hand-curated newsletter containing a weekly selection of the best links, videos, tools and tutorials for people interested in designing and developing their own apps using Swift.
Welcome to WWDC! I was so excited for yesterday’s Keynote and State of the Union and on balance I don’t think they disappointed with a range of new and updated features across the board. In this weeks issue, I thought I’d take a slight break from the norm and take a look at all the new goodies that were announced at yesterday’s events.
Though technically announced prior to WWDC, the first thing to mention are the recent changes to the App Store and new business models that these changes will bring.
First up, it looks like improvements in App Store review times are hear to stay with around 50% of apps now being approved within 24hours and 90% within 48hrs. According Phil Schiller it seems that new tooling and additional staff are contributing to these improvements and long may it continue.
This fall will also see all apps (including productivity apps and games) eligible for in-app purchases for auto-renewable subscriptions for services and content.
Up until now, this has been limited to apps that served media content such as videos or news but these new changes will bring this new business model to other apps as well providing a potential solution for the recurring revenue and free trial issues that have plagued the App Store for some years.
The standard 70/30 revenue split will remain but with the introduction of these new subscription changes, the revenue share will change to an 85/15 for any subscription lasting beyond a year and in fact these changes have already kicked in, with existing long-term subscriptions already moving to this new model.
There was however a word of caution. Although all apps are now eligible for this new model, Apple have gone to some pains to point out that “just because apps can, it doesn’t mean that they should” adopt this new business model. This has left some uncertainty with regards to app approval so just be careful what you implement and don’t try and force it where it doesn’t make sense.
Either way, @gruber has a good summary of the changes.
In addition to all the app store announcements, Apple have also announced changes to how apps will be discovered in the App Store.
A new paid advertising service will allow developers to place ads, vetted by the normal app store vetting process, with search results in the App Store.
Apple are obviously keeping fairly tight rein on this and to keep everything transparent, all paid-for ads will be clearly marked as such and will be limited in number to ensure that users aren’t bombarded with a slew of ads at the same time. Also to ensure that there are no unexpected bills, ads will not be shown to children of 13 or younger and will not track users between sessions.
From a monetary perspective, this new advertising mechanism will be auctiion based with developers bidding on keywords in a second-price auction system where the winning bidder will pay just enough to out-bid the second place bidder. Running ads will be paid for an a pay-per-tap / pay-per-click basis meaning developers will only pay if their ads are actually tapped / clicked. You can find more information at the link below and can also sign up for the beta program as well.
When it comes to WWDC announcements, let’s start off with Xcode.
The new release of Xcode will be Xcode 8 and will contain both Swift 3 and Swift 2.3. It will also provide a number of migration assistants to help port your Swift code from 2.3 to 3 when the time is right. There were also a number of improvements to Xcode’s editor including line highlighting and in-line colour and image literals. Beyond this, Apple have also decided to open up access to Xcode itself through Xcode App Extensions a mechanism much akin to Alcatraz which will allow developers to create third-party extensions for editing and manipulating code. Maybe this will be the route to the new refactoring tools that I and many other people are after.
Xcode’s documentation has also seen an overhaul, this time with a new unified interface which I’m actually quite enjoying and the documentation is also now included by default without the need for an additional download which is a bonus.
Another focus of Xcode’s improvements has been debugging. With a number of new notifications and additional static analysers, the biggest change are around run-time debugging with new tools for UI, thread and memory debugging. The memory debugger looks particularly compelling providing a graphical view of your object graph, leak identification and full integration with the code editor as well.
Interface builder has also seen a number of improvements. Firstly, the canvas will now work at any zoom level rather than having to zoom out to place items (which was one of my pet peeves) and also now shows a full live render preview of your apps interface within the canvas. There have also been a number of improvements for working with adaptive layout and size classes that provide a much cleaner view of how your interface will look in different scenarios.
The other big change with Xcode is that the whole provisioning mechanism has been re-built from the ground up. No more Fix It button issues! Two new provisioning workflows have been added – an automatic mode that takes care of the provisioning for you and a custom mode that allows you to specify the individual signing assets that will be used. The other great news is that Xcode will also now support multiple development certificates meaning you don’t have to copy and paste developer certificates between machines any more, just enter your Apple ID and you’re done.
As predicted, there were no big surprises with regards the Swift language itself but the big news was the release of a new iPad app called Swift Playgrounds.
The new app is designed for touch interfaces but also incorporates a coding keyboard and will allow developers both new and old to learn and experiment with Swift code through a series of in-built lessons and challenges. It’s not just targeted at kids and people just learning to code. The new app also provides full access to the iOS SDK including the underlying hardware APIs of the host device making Swift Playgrounds as fully featured as its counterpart as Xcode and in fact the playgrounds will supposedly be fully interchangeable. Great news for coding on the go and a great resource for people just getting started.
When it comes to platforms, the next release of iOS, iOS 10 is a huge release with pretty much the entire user experience being opened up to developers.
Firstly, the iOS lock screen has been completely redesigned including 3D touch features to reply to messages directly with the lock screen. Access to the camera has also been changed with a simple swipe-right providing a simpler route than the slightly strange swipe-up action currently used. In addition, iOS 10 also sports a new raise-to-wake feature that wakes the screen without having to unlock it.
On the apps front, the Apple Music and News apps get redesigns and we get a new app called Home which is fully integrated with Siri and will provide a central hub for our HomeKit automation.
Bigger changes come to Photos, Maps and iMessage.
Photos gains enhanced on-device computer vision deep learning features that provide face, object and scene recognition and allow in-depth analysis of your photo’s library to group, and in the case of videos cut together your photos and video in a new feature called memories.
Maps also gets more proactive with enhanced suggestions and a more open API that allows developers to provide map integrations of their own through map extensions.
This opening of APIs also extends to the Phone app. Again via extensions, developers can now provide a more integrated experience for their own VoIP apps integrating them directly into the Phone app and Address Book to provide a more personalised calling experience.
Extensions also plays a big role in the changes seen to iMessage. iMessage gains a load of new features including the ability to auto emojify your messages, bubble effects and more. Again, the APIs have been opened up, and in the case will allow you to create iMessage apps of your own which can published through a new iMessage app store.
Siri has also seen some changes and is playing a far bigger role in the OS as we move forwards.
Although it gains enhanced keyboard integration and more intelligent suggestions, the biggest news is that, as so many predicted, the Siri API has also been opened up for developers. This looks like it will bring some serious power with a new framework SiriKit, that will allow you to integrated voice interaction into your own apps whilst offloading most of the heavy lifting onto Siri. It’ll be great to see what we can do with that.
The main changes on the watchOS front seem to be around performance.
Launch app launches times for your favourite apps have been significantly improved and watchOS now gains a new dock and notification centre much like on iOS with glances being subsumed into this new interface. WatchOS 3 also sports some updates to notifications, with smart replies and a new scribble feature that allows you to write on the watch screen in English and Chinese and have the watch perform automatic character recognition just like it was one of the original Apple Newtons.
WatchOS also has your health as it’s top priority. The activity app gets an update with additional sharing features that allow you to share workouts with friends and additional features to support wheelchair users. Workout apps also gain the ability to run continuously in the background even if you swap to new apps such as when changing your music. Added to the workouts app is a new feature called Breath that attempts to tackle your mental as well as your physical wellbeing by guiding you through deep breathing exercises so now mind as well as body is covered. Finally, Apple have also added a new emergency response feature that will call the emergency services and emergency contacts in your location should you get in to serious difficulties.
From a developer point of view, we are also getting access to a range of new APIs on watchOS as well. Full CloudKit access is now provided as is access to the gyroscope, crown events and additional gesture recognisers. Multimedia capabilities are also enhanced with the addition of SpriteKit, SceneKit and AVFoundation allowing much richer media to be displayed on the watch. This combined with background refresh will also allow us to keep notifications, complications and full-screen views consistently in sync.
There weren’t too many changes on the tvOS front the main features being an enhanced integration with Siri search, a new dark mode for an enhanced cinema experience and a new single-sign-on feature which will make signing into all your different apps a much easier experience.
The biggest update on the tvOS front wasn’t actually on the TV at all, instead the remote app for iOS has been updated to provide all the capabilities of the Apple remote from anyone with an iPhone. This also opens up a number of usages for group-play. On the the game front, up to four MFI game controllers are also supported and games can now require a game controller allowing them to take advantages of the additional capabilities those controllers bring.
The big news on the OS X front was it’s renaming to macOS to bring its naming in line with the other Apple platforms. This years release will also be code named Sierra with the releases main focus being continuity.
This focus on continuity is backed up with features including a new AutoUnlock feature much akin to keyless car entry which in conjunction with your Apple watch will automatically unlocked your Mac when you are in proximity. No more typing in passwords incorrectly!
Added to this, we also saw the arrival of a universal clipboard allowing you to copy text on your iPhone and then paste it on your mac.
iCloud also seems to be playing a much bigger part in the future of macOS. The macOS desktop is moving into the cloud with your files and preference synced between machines and a new Optimised Storage feature will archive your old files into iCloud to be accessed on demand thereby freeing space on your local drive. We also saw Apple pay arriving on the desktop with Apple pushing it’s new payment solution into all it’s platforms.
On the developer front, the biggest news was Siri’s arrival on the desktop. As with iOS, the same SiriKit APIs will be available on the Mac and will allow you to integrate Siri into your own Mac apps. In addition, AppKit will also now provide full tabbed support for all applications (much like in Safari) for all applications with almost no work.