Here comes post no. 3 about WWDC 2014 (the last one in this series). So let’s see how to make users and developers happy.
Generic Size Classes
That’s in my opinion a huge improvement. So what does that mean “Generic Size Classes”?
If you develop nowadays an app for you will use a Storyboard for the visual design. As iPhones and iPads have different variations of screen real estate one would normally have two Storyboards: one for iPhones, one for iPads. And that’s the caveat – developing for two device categories doubles the work for the visual design. You may copy and paste, but often you have to change a label, the positioning of an image etc. You may do that in code, sure, but even then you’ve to setup the “frame” in a Storyboard.
You have to distinguish in code if it’s an iPhone or an iPad, if it’s position is horizontal or vertical to layout different elements right. Apple has put a lot of effort to support developers with AutoLayout which takes care of the right positioning of elements in Interface Builder. But if you use the same codebase for the Controller you may have to use a lot of double checking. Also the design element of a UISplitViewController is only available on iPad, not on iPhone.
That’ll change all.
Apple has abstracted the different device measurements. Beginning with iOS 8 you can now develop for a “Standard” size (aka iPad) and for a “Compact” size (aka iPhone) in your code. And use one Storyboard for all device sizes. Xcode takes care of the rest for you. Web-developers would call it Responsive Design. Not to forget that you now can use the UISplitViewController for Compact, too. That’ll remove a lot of error-prone actions as mentioned before. And will reduce the development time heavily.
And you – as a developer – won’t have to care about possible, in the future upcoming device types or sizes. May it be a wearable, a Phablet or whatever the so-called prophets foresee.
The introduction of a built-in fingerprint scanner (known as Touch ID) with the iPhone 5S was kind of a biggie last year. Then use cases were awesome (but somehow limited): device login and buying in the App Store without entering a passcode.
Now – with iOS 8 – developers finally will have access to Touch ID. That means developers can secure their own apps using fingerprint technology. Why I think it’s awesome? Because it’ll help to prevent bad security implementations for per-app passcodes without lowering the convenience for the users.
Handoff allows to share an app state between iOS devices and Mac devices.
Let’s assume you’re reading a web site on your iPhone. You’ll put the iPhone besides your Mac and will be able to proceed with the website on your Mac. Or vice versa. Same will apply to any other app. For example you’re reading a PDF file in your favorite PDF viewer on the iPad. You can pick up the read on the same page on your iPhone.
This actions are called Activities. They are built-in for certain apps like Mail.app or Safari. And can be implemented by any app. It’ll work cross-app and cross-platform. For security reasons only apps of the same developer can share an activity state.
One really missing feature for developers was to have an official channel for beta testing your apps. Enterprise app developers have no “limitations” in this but if you’re developing apps for the App Store…well…you have.
Today you aren’t allowed to distribute the code outside the App Store. You also have some technical hurdles to work around. Like having the specific device id’s of the testers devices, no controlled distribution mechanism and so on. There are 3rd party vendors who offer services for that. But it’s not as good as have it integrated by the App Store itself.
Apple will catch up in this area with Android and Windows Phone. In fall developers can deploy beta versions of their App Store apps (via the App Store!) to maximum 1.000 users on a per-invitation base. That’ll improve the quality of the final product releases significantly for sure.
Not the end but…
This post will be the end of my small series. Apple has introduced loads more of stuff that’s worth to write about. HealthKit as a central API for health- and fitness-related apps, HomeKit for home-automation, SceneKit – a 3D game engine and so forth. Direct AirPlay streaming from an iOS device to an AppleTV without the need to be connected to a network, creating screencasts for iOS devices using QuickTime on the Mac via a lightning cable etc etc.
As you can see the list is long and get’s longer. As Apple has added more then 4.000 new APIs it’s somehow difficult to filter out the cool stuff. 😉
Have you missed Swift in this series? Good finding. As it’s IMHO only “make developers happy” thing it doesn’t fit into this series. That’s why I’ll blog later about my thoughts about it.
You’ll find real great introductions, overview information and more on Apple’s website. I strongly encourage you to dig into the new things if you’re interested into mobile development (for iOS).