With the rollout of iOS 8 upon us I consider two aspects of the current Apple ecosystem that appear to lie in tension.
Apple is fantastic at laying groundwork. When you take a step back and how their offerings both on software and hardware have evolved over the last few years you can clearly see how much forethought has gone into their approach. Apple doesn’t just throw things over the wall as soon as they are ready. Instead they prefer to gradually expand and enhance their capabilities over time, giving developers lots of warning and time to adapt.
I can think of many areas where this has been the case but perhaps the clearest example is the iPhone 6/6+ screens. A few years back they brought Auto Layout to iOS. Then they changed the UI aesthetic in iOS 7 to discourage designs that focused on pixel perfect layouts. They introduced Dynamic Text to add an element of variability and customization to the user experience. Then came Adaptive Layouts, Launch screen Nibs and Asset Collections. Each of these is a puzzle piece that gave the astute developer insight into what was coming down the road. This is just one example. Things like TouchID, or AirPlay have similar aspects. You can even see some of this in the Apple Watch. How it builds so neatly on top of the Extensions approach in iOS 8.
You could almost imagine room deep in One Infinite Loop with a massive product roadmap laid out. Around it, like Generals in combat, Craig and Jony push around the little pieces that comprise Apple’s ecosystem. Slowly pushing them into place so that they can combine in clean pincer movements around desired objectives.
Apple does this better than most companies I know. There are times their plans don’t quite come together but they do more often than not. It is a reminder to me as a developer to try and not focus too tightly on the direct implications of a new API or technology. Instead I should take a step back and think what this could be laying the groundwork for down the road.
Nobody likes stubbing their toes. It’s painful, expletive laden and can leave a mark. But what is really bad isn’t stubbing your toe…it’s stubbing your toe while running. That is when the real damage happens. Now it isn’t just your toe that hurts it is your entire body hitting the pavement.
The breakneck pace that Apple has been moving at over the last few years broken more than a few toes along the way. I see this especially in the areas of Developer Tools and Infrastructure. Working with these I’m often give the impression that they are straining to the limit to keep up with the complexity and pace of the platforms they need to support.
If an Army marches on its stomach, Developers march on their Tools.
Xcode is the tool I spend most of my working life in. I know it very well and for most of what I need it to do it does a great job. But each year I am confronted with a new wave of challenges, crashes, or workarounds as I try to make it do what it ostensibly can and needs to do. Some of these are excusable as early beta issues or components that weren’t quite ready for WWDC but as we get close to launch their failings become painful. If the tool isn’t sharp the sculpture won’t be smooth.
Similarly the infrastructure that supports so much of what we need to do is straining to keep up. Provisioning and iTunes Connect never quite seem finished. Having done this for a long time I know most of the workaround and ways to massage things into place but I can only imagine how tricky this must be for a new developer. They get better over time but just as soon as they stabilize some new complexity is thrown onto them to try and tackle.
I have nothing but respect of the talented folks at Apple (some of which I know personally) who try and hold these together. But it is Sisyphus-ian task to keep up with the pace of change in our toolset. What worries me most is whether we are heading to a point where our pace of change will overtake their ability to keep up and then the whole body comes crashing down.
In it together.
These two aspects of modern iOS life are both closely entwined and diametrically opposed. Apple appears to have an incredibly rich roadmap had for his platforms. As a developer I can see tremendous opportunities coming down the pipe. In many ways this is the best time to be a developer I’ve ever seen. I just hope that Apple is able to re-double their efforts on the tooling and infrastructure fronts to keep up with the colossal task ahead of them.