A Lot Can Happen in a Decade
It’s the ten year anniversary of the original iPhone SDK.
[…]
Discoveries happened quickly. It took just a matter of weeks before the filesystem was exposed. A couple of months later, the entire native app experience was unlocked. Development toolchains were available and folks were writing installers for native apps.
[…]
There were a lot of surprises in that early version of UIKit. It took forever to find the XML parser because it was buried in the OfficeImport framework. And some important stuff was completely missing: there was no way to return a floating point value with Objective-C.
There were also strange engineering decisions. You could put arbitrary HTML into a text view, which worked fine with simple tags like
<b>
, but crashed with more complex ones. Views also usedLKLayer
for compositing, which was kinda like the new Core Animation in Mac OS Leopard, but not the same.
Still, it’s easy to see why today’s apps are much more sophisticated. They run code hundreds of times faster.
They also have screens that are a bit larger than 320 × 480 :-)
I decided to compare SpringBoard from iPhoneOS 1 to SpringBoard on iOS 11.3 (b4). Binary size back then: 691KB. Now: 11,5MB. Classes back then: 145. Classes now: 1418. The only thing I could find that’s not changed are two instance variables on the SpringBoard class.