When Tim Cook opened up by saying that iOS 8 accompanies the biggest release of the Apple SDK since the launch of the App Store, I thought it might just be hyperbole. It wasn't. There are tremendous changes in store for iOS app developers that will drastically change the way you create apps. I'll start with the biggest change first.
1. The Swift Programming Language
One of the biggest complaints you hear from developers moving to the iOS development platform is that they have to use Objective-C—a programming language that is over 30 years old.
In answer to some very valid complaints, Apple has introduced a brand new programming language called Swift. Apple uses the adjectives fast, modern, safe, and interactive to describe Swift.
A slide was shown briefly that listed the following features of Swift:
- Functional patterns
- Concise syntax
- Native collections
- Operator overloading
- Namespaces
- Tuples
- Clear mutability syntax
- Interactive playground
- Closures
- Protocols and extensions on structs
- Generics
- Multiple return types
- Pattern matching
- Fast iteration
- Optional types
- Object orientation
- Type inference
- Read-Eval-Print-Loop (REPL)
- Compile to native code
If you are familiar with other modern C-based language such as Java and C#, you will know that Apple is looking to match and supersede the capabilities of these languages.
Personally, I've been programming long enough to be around for the introduction of many new languages and it always produces both anxiety and excitement in the developer base. Ultimately, once you master the new language and feel comfortable using it (probably about three months worth of full time development in a language will do this for you) you welcome the ease with which you can create your apps. A great feature of more modern languages is that they prevent you from making errors common to programmers (who hasn't forgot to put a break statement in their switch?) so the compiler ends up catching more of your errors.
The good news is that since Swift is built with the same compiler, ARC management and runtime as Objective-C, your Swift code can run alongside your Objective-C code.
One of the more interesting features demonstrated is Xcode's new Playgrounds. This new feature provides a visual representation of your code. In Playgrounds, Xcode runs your code in a sidebar as you type it.
The new Xcode Playgrounds |
To learn about the Swift programming language, you can download The Swift Programming Language book available in the iBooks Store at this link.
2. App Store Enhancements
Apple is making some very welcome changes to the App Store that will improve users ability to find your app, and for you to market it. This is especially important due to the fact that there are over 1.2 million apps in the App Store.
Apple is adding an Explore tab to the App Store that helps users find the apps they're searching for. It will allow them to search by categories, subcategories along with top-trending searches and related searches.
Another great new feature allows developers to create an App Bundle so users can purchase multiple apps at a discounted price with a single tap. Personally, I'm hoping this feature also finds its way to the iBooks Store!
One of the best new App Store features allows developers to create short video previews of their app. This allows developers to show off their apps capabilities and allows users to determine if this is the app that meets their needs.
Finally, Apple is introducing the ability to provide wide-scale beta testing of their iOS apps by means of the TestFlight platform they acquired earlier this year. Previously, developers could only roll out their app to a few hundred devices. Now iOS developers can get the same large-scale testing abilities that have been available on the Android platform.
3. Extensibility
The extensibility features offered to developers in iOS 8 are phenomenal. It's common knowledge that Apple has not been known for their openness and extensibility. This time around, there are a number of features of iOS that have now been opened up:
- The iOS Share sheet - Developers can now add their own custom apps to the Share sheet (Pinterest was shown as an example)
- The Action sheet - Developers can add their custom apps to the Action sheet (Bing Translate was given as an example)
- Safari extensions - Bing translate was demonstrated translating a web page
- Photo filters
- Third-party document providers
- Widgets for Notification Center
- System-wide third-party keyboards
- Touch ID can now be accessed from third-party apps. Look for apps coming your way that allow you to sign in via the popular Touch ID (the fingerprint information is never opened up to custom apps).
- Camera APIs for manual control of exposure, white balance, and focus
- Photo Kit API has faster performance and allows you to read and write to the Photo Library
4. Home Kit
Apple introduced a brand new framework called HomeKit. Currently, there are a number of apps on the market that allow you to control devices in your home with their own network and security protocols. HomeKit provides a common network protocol that allows more centralized control of apps in this genre. You can group devices together and control them from Siri. For example, you can tell Siri "Get ready for bed", and it can close your garage door, lock the doors of your house, and lower the temperature on your thermostat and dim your lights.
5. Cloud Kit
In this blog I've written recently about hosting the web portion of your app with Google App Engine, and Amazon Web Services. Apple has upped the ante by providing server-side authentication, data storage, asset storage, search, and notifications for what it calls "effectively free." Here's what you get:
- 1 PB of assets
- 10TB database
- 5TB/day asset transfer
- 50GB/day database transfer
Once more details become public, I'll dedicate a blog post to these new Cloud Kit features.
6. 3D Graphic Enhancements
Apple introduced a new graphics technology that they call Metal. Until now, Open/GL was the primary technology used to create games, but it can tend to be resource-hungry. Metal is an alternative to Open/GL that can provide up to 10 times the speed. This is great news for game developers who can now provide an incredible animation experience based on these new possibilities.
7. Sprite Kit and Scene Kit
In iOS 8, Apple has made a few enhancements to Sprite Kit, which allows you to create "casual" games on the iOS platform. These include support for:
- Enhanced light sources
- Field forces
- Per-pixel physics
- Inverse kinematics
The big news is Apple's support for Scene Kit on the iOS platform (previously available on the OS X platform). Scene Kit is a scene renderer that has been enhanced to work with casual games.
Conclusion
As an app developer working on all the major platforms, I speak from experience when I say that these exciting new developments continue to make iOS the best platform for app development, bar none.