It’s tough work just to keep up with Apple. Developers are three years into a radical visual change for iOS and two years into similar changes on Mac.
If these visual changes were not enough, consider the four iPhone sizes: iPhone 4s, iPhone 5/5s, iPhone 6, and iPhone 6 Plus. Not to be outdone, iPad piled on in 2015 when iOS 9 introduced split-screen multitasking1.
In barely three years, design consideration for iOS has gone from two sizes to twelve. When accounting for orientation, twenty-four distinct layouts are required. Twenty-four to account for devices which support iOS 9. Madness.
Consider technologies like CloudKit, HomeKit, and CarPlay in addition to nearly continuous updates and improvements to familiar frameworks. Earlier this month, Apple announced an iOS 9.3 public preview. The updates are non-stop. Gone are the days when WWDC contained all the new shiny.
Were that not enough, Apple also introduced a new programming language—Swift—in 2014. Swift received a major update in 2015 and was open-sourced along with public plans for the next major revision.
Still think Apple isn’t innovating enough under Tim Cook? Don’t let an app developer hear that talk—they want a vacation, and the end of 2015 showed no signs of relief.
More Platforms, More Inputs.
Consider the number of new inputs Apple announced during their September event and their pace of innovation becomes more apparent. Pencils. Remotes. Voice. These are all indirect inputs—meaning you interact with an object that interacts with the screen contents on your behalf. On the Apple TV you have to build for two specific controllers: (1) the supplied remote and (2) licensed third party game pads. Before this event, an iOS developer only had to consider direct input.
It will take years for most developers to take full advantage of these different inputs.
Apple Watch and iPhone 6 Plus were introduced at the end of 2014. The screen on the iPhone 6 Plus behaves like an iPhone in portrait, but in landscape it behaves more like an iPad.
At the end of 2015, Apple TV and iPad Pro were introduced. We’re now seeing a pattern Apple has repeated two years in a row. One event, two new platforms.
Forest for the Trees.
Apple is moving at a blistering pace. Everywhere you look, a bearded neck slams Apple’s software quality. I agree that Apple has shipped some terrible bugs the past few years, but what did you expect? Apple is shipping software at an absurd rate.
When you consider the amount of technology they’re putting out to support new hardware and the number of people who use their software, it’s a mathematical reality that bugs will get out. Some of them can be nasty.
Those assailing Apple’s software quality fail to recognize the particulars of what Apple has shipped and how they have to ship it. If you take time to understand the problems facing a platform vendor and consider Apple’s scale, you might wonder how more bugs haven’t slipped out.
What Apple has accomplished in the past few years is astonishing, but you need to understand the details of how software frameworks are developed and shipped before you can truly appreciate it.
The Basics.
I have observed Apple for many years, but I also know a thing or two about shipping software. Good software is rigorously tested under a variety of circumstances, on a variety of hardware.
Want your software to feel fast? Run it on the slowest hardware where it can be run. For iOS 9, this starts with the lowly iPhone 4S and original iPad Mini.
Want to ensure killer network performance without latency? Test your software while changing between a wifi and cellular data network. Test it on 3G and low-bandwidth networks, such as GPRS.
Sounds simple, right? Be rigorous and test in all known conditions. If you do the hard work, you’ll catch a lot of bugs. Application developers have it easy, since we can theoretically describe every circumstance under which our software will run. But we ship applications. Apple ships frameworks and platforms.
For Apple to test their framework performing its intended purpose, they have to test applications of that framework. So while the application developer can know their entire environment, Apple must rely on third parties. Only with outside developers can they rigorously test their code in its intended environment. Sure, they can test internally, but final validation only arrives after their framework is out in the wild and in the hands of third-parties.
Unlike app developers, it is impossible for platform developers, like Apple, to articulate every circumstance and application of their software.
The Other Shoe.
Apple is also a company of secrets. I believe their latest and greatest software is often intended for hardware that hasn’t shipped. We’ve already established proper testing requires testing all possible devices. But that can’t happen for Apple software developers who target hardware still on the drawing board. Worse still, app developers can’t test an application of a framework without the necessary hardware.
So if Apple relies on third parties to test their frameworks, they have to wait until the target hardware also ships. Only then can they observe a true, rigorous test of their new frameworks.
Classic chicken and egg problem.
But it’s an even harder problem. Apple needs to accompany a hardware product with software that takes advantage of new features. They also want to announce hardware and ship it weeks later, which leaves little time for third party developers to adapt their applications.
For third parties to have any chance of shipping software for new hardware, they’ll need the new frameworks ready when Apple first announces the hardware.
It is an extremely hard problem and one that has long plagued Apple. Even Steve Jobs never had a good solution to it.
Remember the year between owning an iPhone and developing software for it? Apple’s solution (observing from the outside): wait until after iPhone shipped to announce a third-party developer platform for it. This gave developers months to build apps for iPhone. But it meant the world changing App Store was delayed by two years.
The Genius of Tim Cook.
Waiting for the SDK worked well enough for iPhone, but iPhone’s App store changed the landscape permanently. By the time Apple shipped iPad two years later, they had to ship an SDK ahead of the hardware. The App store was now a feature.
Apple’s apparent solution for iPad was not ideal. They simply gave developers a month after announcing the software to adapt their iPhone apps. As a result, iPad was flooded with an ill-conceived first run of apps, which did not highlight its unique features.
It would be four years before Apple shipped another major addition to the iOS family.2 But next time, Tim Cook was at the helm.
Consider the skills required of Tim Cook’s role—Chief of Operations—before becoming CEO. Apple is a large manufacturing business. From the outside, this would require an elaborate logistical machine to manufacture and procure enough hardware components for a future product. Timing must be planned years in advance. If the right components don’t exist when Apple wants to ship a new product, they can’t deliver that product. It appears Tim Cook’s ascent during his tenure at Apple is due to their manufacturing pipeline becoming the most efficient in the world.
Tim must have a mind for logistics to understand and grapple the manufacturing problems faced by a company of Apple’s size and complexity.
That is the same mind I believe tackled Apple’s biggest problem: How do they ship frameworks and new technologies to support hardware that won’t exist for years? Harder even, how do they keep it a secret and share this technology with millions of developers so it can be properly tested?
The Long Con.
Do you remember when Auto-Layout was first introduced? It was for Mac and it replaced a system that no one thought was broken. Auto-Layout is technologically sophisticated, with a descriptive short hand syntax. A year later it came to iOS, but was, again, thankfully optional. It was another two years before the iPhone 6 and 6 Plus were released, the platform become more fragmented, and Auto-Layout was desperately needed.
Why did Apple ship it so early? It needed to be tested. A lot.
Auto-Layout represented a brand new way to layout applications and there was a lot of complicated technology below the surface. It needed to be tested in the real world, with actual third party developers. The technology started out rough—as expected—but Apple steadily improved it with each successive release.
By the time iPhone 6 and 6 Plus shipped, it was generally accepted by developers as the preferred way to layout apps. As a result, many third party apps required only minor tweaking for iPhone 6 and 6 Plus.
Mission accomplished: a brand new hardware platform, complete with software tailored to take advantage of its unique features. Critically, the specific sizes of iPhones 6 remained a secret until launch.
The end of 2015 gave us a similar example: Size Classes. Announced almost two years earlier at WWDC 2014, many pundits pointed to Size Classes as the clue bigger phones were imminent. But size classes did little to help iPhone 6 and 6 Plus.
It was iOS 9, announced the following year at WWDC 2015 and split-screen multi-tasking for the iPad that made Size Classes necessary. When iPad Pro was announced, developers didn’t have to worry about adapting their apps for the larger screen. If developers had already adopted size classes, they were 90% there.
Once again, a major selling point of a brand new device—split-screen multitasking—and developers were prepared to support this feature. It was expected. By customers, and by developers.
The Future is Apps.
Many pundits consider Tim’s role purely operational. They consider him the great organizer, and give him little credit for the amazing products which continue to pour out of Cupertino. I believe Tim is fueling Apple’s product ambitions like never before.
Tim Cook’s Apple recognizes third party developers are critical to the success of Apple products—as much as any hardware component supplier. I believe installing third-party developers as part of the product supply chain is Tim’s greatest achievement.
iPad, Apple Watch, and Apple TV need software to make them enticing to Apple’s customers. Tim said it during the Fall 2015 event: “The future of TV is apps”. More telling are his actions that state “The future of everything is apps.” Thanks to Tim Cook’s Apple, we have apps for our wrist, our TV, and coming soon, our pencil.
But only if developers can keep up.