Don’t Fight the Future

Last week at CocoaConf Columbus I was given the privilege of offering up a keynote address to kick off the event. This is the first time I’ve ever been asked to do something like this, which sparked both excitement and horror simultaneously. Excitement because it was an honor to be asked to do something that’s designed to set the tone of the event. Horrified because I have no earthly idea what I’m supposed to talk about.

A good keynote speech has three qualities:

  1. It sets the tone for the conference.
  2. It offers a message that may be rooted in something technical, but isn’t a technical talk.
  3. It leaves you thinking, inspired or (hopefully) both.

With that in mind I decided the best course of action for my talk was to crib something from Sports Illustrated’s Peter King. King’s weekly Monday Morning Quarterback Column always has a section called “10 Things I Think I Think”. I decided to take that idea and create 10 slides with different thoughts and ideas I had as they pertained to the current state of iOS development.

The slides for the talk aren’t much use out of context, but sharing that information in the coming weeks as a series of posts on this site will hopefully allow it to reach a wider audience. Hopefully they’ll even find it beneficial.

And now with the exposition out of the way…

Don’t Fight The Future

Apple is a company that doesn’t spend much time looking back. Just try compiling an app for the iOS 5 SDK using the latest version of Xcode. It’s not exactly something the company cares to support going forward. Apple is always coming out with new products and technologies that it believes are superior to what was available before.

The iPhone 5s is a better device than the 5, which was a better device than the 4s, and so on.

By the same token, SDK advances are treated the same way. The overarching theme of the year is usually outlined through Apple’s WWDC sessions. You can get a pretty good idea what technologies the company is very high on and looking for developer’s to embrace. With iOS 7, I’d argue that they’re main focus is on:

These are all new technologies that are a core of iOS 7 and had multiple sessions dedicated to them at Apple’s major developer event. You can be damn sure that the company is proud of them, and looking for developer’s to highlight who have integrated them into their apps.

It’s completely possible to keep building apps without supporting any of these features today, but your code (and in this case visual style) quickly begins to show its age the longer you delay embracing it.

Take Auto Layout for instance. Apple has been pushing Auto Layout on the Mac for three years now and now two years on iOS. What seems like a very large majority of people have struggled with the technology and stuck with springs and struts in its place. Springs and Struts are fine, but don’t think they’re going to keep getting improved going forward with Auto Layout now reaching maturity. That’s where Apple is focusing its efforts on layout technology. You’d be wise to get on board.

Similarly, as much as it frustrates me Storyboards continue to be a key focus of Apple each year with them adding additional improvements that almost make them not suck. Admittedly, each year I try to give Storyboards another chance and end up punting back to standard Xibs, but I’m aware that there are times where Apple does focus their Interface Builder improvements to features that are only available for Storyboards. That’s the way they are.

Apple dictates the direction fo the platform with their yearly OS X and iOS releases. Your skillset is only as useful as your ability to adapt to these emerging frameworks and new functionalities.