I just returned home from WWDC 2014. It was an amazing week. There is no refuting that this year's WWDC was hyper focused on the developers. You would think this is a no brainer, being that it is a developers conference after all. But in the past, Apple has used WWDC as a means to announce upcoming products and hardware upgrades. Not this year.
It was all about new and open. The three main highlights I took away from it was that Swift is a big part of the future for native iOS and OS X development, 2/3 of the developers were new to the conference, and Apple is opening up more to developers. This is really huge for the Apple ecosystem. They introduced a new language that was a mix of many other great languages. They knocked down the barrier to entry for doing native iOS development and Mac apps. They gave developers amazing new tools that they have been requesting for years.
Swift is definitely a language you would expect out of Apple. Clean and simple, but very powerful and fast. It allows you to keep carving away syntax if you feel inclined, but you can also leave if it makes you feel more comfortable. No more header files. A lot less code to get the same job done in most cases. There is too much to talk about regarding Swift. That will be the topic of later posts.
Resources I recommend you check out.
Extensions brings the functionality of system services, going all the way back to NeXTSTEP, to iOS and Mac OS X in a new clean and secure way. They are now a sanboxed process that is attached to the extension host, which is your app most of the time. This allows developers to extend the functionality of their apps and even the operating sytems at a top level. Extensions is how Apple is allowing 3rd party keyboards in iOS 8.
There are 6 different kinds of extensions on iOS:
Today - Today extensions allow developers to extend the Today view in the Notification Center in iOS using the widget concept. For example, ESPN showed of a Sports Center extension that provides updates on games and sports news in the Notifcation Center Today view.
Share - Show your app extension in the iOS activity sheet as another sharing option along with mail, messages, etc. This will allow users to share content on your network via your exentsion.
Action - Provide UI or non UI based extension to iOS 8. This is similar to actions like Copy, Bookmark, and Print.
Photo Editing Extension - This allows you to provide a photo editing extension to apps. If you have a cool process or set of filters that can be applied to photos, you can now build it and provide the functionality to iOS 8 apps.
Document Picker - This is perfect for document based solutions like DropBox. You can provide a document source for your platform to users.
Custom Keyboard - Have a cool keyboard you want to give to users. This extension is for you. This is the extension that 3rd party keyboard provides similar to Swype will be using.
Up to this point, Xcode has allowed iOS developers to create static frameworks. It produces a library archive that you then add to your project. It has never allowed the full power of dynamic frameworks, which would allow you to custom controls and assets for those controls. There were a lot of hacky solutions to provide a solution to developers, but nothing like the real deal that Mac OS X developers have the pleasure of using. That changed with Xcode 6 and iOS 8. You can now use Live Views inside of Interface Builder and include them in your frameworks. When iOS developers use your custom controls, they get rendered live in Interface Builder with all the exposed properties that they can edit. No more white empty views where the custom controls are layed out. This is a big deal.
Frameworks are also a great place to put your extensions that you want so share between apps. You can add all your resources, view controllers, and networking code into the framework once and share it between your apps or provide to devlopers if you are a 3rd party service.
Finally, we get code sharing and custom controls done the right way.
Gaming Trojan Horse
I hope others see what is coming this holiday season with the announcement of Metal. Backed my major gaming engines like Frostbite and Unreal. Apple is about to become a major player in gaming. It has all been about the casual game play up to now. That will begin to change this holiday season. Combine Metal with AirPlay and Apple MFI Controllers, and you have a pretty compelling story for hardcore gaming. I call it a trojan horse, because you get into the hearts and minds of the next generation, they will buy and promote Apple products. It's well known that gaming is a major factor on why Apple has sold a lot of iPhone's, iPod touches, and iPad's.
We're really excited about the things Metal makes possible as a result of its 10x increase in the CPU efficiency of rendering. It really blurs the line between what's possible on high-end computers and iPhone/iPad! - Tim Sweeney, Epic Games
Yes, you read that correctly. A 10x increase in CPU efficiency. The part that struck me was the comment about blurring the lines between high-end computers, iPhone's and iPad's. That is just amazing. Apple literally has console level gaming with Metal. They could easily put an A7 chip into an Apple TV and sell it for 99.00. Imagine the disruption when comparing to 400.00-600.00 consoles that have 6-10 year lifecycles on hardware updates. They will not be able to keep up with Apple on CPU/GPU advancements. I could purchase a new Apple TV with each new generation of A chips, every year for 6 years at that price. BOOM!
What Apple did this year at WWDC, was to lay out a very strong foundation for the next 5 years. All starting this fall, with new product categories and bringing together your digitial lifestyle seamlessly, the way Apple does best. It's Steve's "Digital Hub" stragegy evolved. OS X is at the heart of all of it. Apple is targeting PC's, Smartphones, Tablets, Wearables, Automotive, Healthcare, Home Automation, and the Living Room. It's all about to come together in a big way and developers were just handed the tools they need to help put a dent in the universe. I am excited to see what is coming.
Follow me on Twitter