This year’s WWDC should be considered as the biggest event for an iOS developer since the release of iPhone OS 2 in 2008. During the conference, Apple introduced a huge number of new development kits as well as many improvements to the existing SDK along with the new iOS8. In addition, Apple also surprised the whole developer community with the introduction of Swift language. As a developer myself, I’ll discuss several things that I’m excited about in this blog post.
Back in 2008, Apple introduced the App Store and opened the door to thousands of developers to make all kinds of wonderful apps for the platform. As years go by, the Cupertino based company has gradually enhanced the APIs in iOS SDK to make iOS apps more capable and useful. This year, with the introduction of iOS8 SDK, developers can now do more than they ever could have done. First, let’s start with some fun. Last year, Apple introduced SpriteKit for 2D game development and it has instantly become one of the greatest competitors to the popular 2D iOS gaming framework Cocos2D. This year, in addition to the improvements of SpriteKit, Apple also brought two new 3D gaming frameworks, SceneKit and Metal. Like SpriteKit, SceneKit offers easy ways to create 3D animated scenes in apps. And it even incorporates a physics engine and a particle generator for more complex 3D effects. For more professional 3D game developers, Metal offers the abilities to directly harvest the power from A7 processor’s GPU without going through a layer of Open GL ES. All these new APIs will enable developers to create even better user experiences and awesome graphical effects in different kinds of apps. The gaming related frameworks are just a small part of iOS8 SDK’s improvements. In iOS8, apps can now have more capabilities. Apart from being an iOS developer, I’m also a photographer. Therefore I have to talk about PhotoKit, manual camera controls and extensions introduced in iOS8. As you may have seen in the keynote event of WWDC, developers can now make apps that are able to access iCloud Photo assets directly in Camera roll and share the photos across different apps and platforms. Manual camera controls such as focus, white balance and exposure settings are now provided by AVFoundation framework for apps to use. All of these new features can add up to a pretty good camera app with the already-wonderful camera hardwares in iPhones. Now you may ask what are the extensions and why they are important to a camera app. Extensions are custom functionalities provided by apps that can be accessed within the context of some other user task. And well, they are not only important for camera apps, but also for all kinds of other apps. In our example of a camera app, the app can have a photo editing extension and the user can use that extension to edit any picture in any app. The extension can also incorporate with Notification Center to provide extensive photography related functions. One of the most request feature in iOS now can also be realized by extension. That is custom keyboards. With the ability of extensions, developers can now make keyboards for users to carry out all kinds of specific actions. I wouldn’t be surprised if someone makes a keyboard just for entering camera shutter speeds and exposure stops or, a keyboard dedicated for mathematical equations. Next thing I want to talk about is the CloudKit. iCloud has been there for quite some time. It seems like that this year Apple has finally take the iCloud from a “hobby”to something serious. With CloudKit, iCloud now can act like a web server for app’s data. And features such as authentication, private and public databases are also provided by CloudKit so the developers can focus on the client-side development and let iCloud handle the server-side logic. What’s even better? With some pretty high allowance on usage, all of these wonderful features come for free with Apples developer program. iOS8 is truly a milestone for iOS. With APIs mentioned above and new features like HealthKit, HomeKit and Handoff, the possibilities for what an app can do now is really endless.
Xcode and Swift: Good has just become better
Like many iOS developers, Xcode is one of my most often used applications on my Mac. I don’t always like Xcode. But I have to say, as the go-to iOS development tool, Apple is making Xcode a better tool each time a new version is released. Xcode 6 is no exception. Before we dive into Xcode, let’s talk about the Swift language first. I think Swift is the biggest surprise from Apple since the introduction of Macbook Air. There was absolutely no prediction that Apple was going to introduce a brand new language in this year’s WWDC keynote. Swift has really shocked the iOS developer community (in a good way, mostly) and you can tell that by looking at the expressions on the faces of developers attended the keynote. Given several advantages over Objective-C and ease to learn, Swift has become an instant hit among iOS developers and even potential developers who are trying to find a new language to learn. As the software quality company TIOBE pointed out, by the time they post the programming language popularity rank for July, Swift will probably be in the top 20. Swift is designed to be modern, safe and powerful. The modern character of Swift comes from the new features such as closures, tuples and generics. The syntax is easier to read and maintain than Objective-C and features like generics in Swift will also enables developers to do things they could never be able to do with Objective-C. Safety in Swift is ensured by eliminating classes of unsafe code and always initializing variables before use. Swift is also designed with the idea of being a powerful language in mind. It uses the high-performance LLVM compiler just like Objective-C and will be transformed into optimized native code to get the most out of Macs and iOS devices. With all that being said, Apple didn’t just released Swift as a single new language. All of Cocoa and Cocoa Touch as well as other libraries in iOS and OSX SDKs are updated to support Swift. And of course so it is with the latest Xcode 6.
Xcode 6 comes with many new features and some interface revamping. One of them is the Playground. Playground offers great ways to learn Swift, try new codes and develop custom views. The code is executed automatically and result appears immediately. Developers can see visualized results, imported resources, and created views in assistant editor. Several other features such as timeline slider are also available in the Playground to offer more functionalities.
Playgrounds are more just for trying out new stuff. When it comes for developing the interface, Apple now offers live rendering in the Interface Builder. Developers don’t have to build and run then switch between Xcode and simulators (or devices) to see the result of a custom view. In Xcode 6, the changes are automatically applied into your custom views in the Interface Builder. And for debugging the views, Apple has introduced the View Debugging feature which will turn the UI into a 3D rendering of each layer in the stack of views. Developing and debugging custom views has never been easier before. Speaking of Interface Builder, in addition to the newly introduced OSX Storyboard, Interface Builder now works with Size Classes. Instead of specifying Storyboards for different screen sizes and devices, developers now can use one Storyboard with Size Classes and Auto Layout for all screen sizes. And there is also the Preview mode to quickly check the interface without having to run the app. Last but definitely not the least, I want to talk a little bit about debugging. LLDB debugger became the foundation for debugging in Xcode 5. In Xcode 6, it has just become better with Swift REPL. Swift REPL, or Read-Eval-Print-Loop is an interactive version of Swift lives in the debugging console in Xcode or Terminal. Developers can use LLDB just as before but now it will also give debug information for Swift codes. It is also possible to validate existing code or even trying new codes right in LLDB with Swift REPL.
iOS8 and Xcode 6 has really opened more possibilities for both developers and Apple itself. iOS8 has laid the foundations for Apple to make more interesting new products such as iWatch and potentially some automated home control devices. Xcode’s new Storyboard with Size Classes also make it easier to develop apps for existing iPhones, iPads or even for the future iOS devices with larger screens. I believe when Apple releases their next generation devices and lifts the NDA on iOS8, the excellent iOS developer community will surprise the users with some pretty interesting apps we have never seen before. 2014 is going to be a good year for all iOS and OSX developers.