This morning I was remarking to myself about how it felt like the breadth of knowledge you need to be a good iOS developer has gotten pretty far reaching. This isn’t anything new, iOS development has never been particularly straightforward but as I thought of all the SDKs you need to master to make your app ‘good’ it became a pretty long list.

I hate to just have a notion without numbers to back it up so I got to thinking how I could evaluate how the complexity of the iOS SDK has changed and grown over the years. In the end I found that the Xcode docsets could serve as a useful proxy for how the SDK has changed. Each documentation element is tagged with the SDK version where was introduced. I quickly aggregated the SDK elements1 by their introduction version to see the changes.

When the iOS SDK was introduced back in 2008 there were around 2,500 SDK elements total across all APIs. Since then each year has brought with it an average of around 1,400 new elements. Bringing the total for iOS 92 up to just shy of 13,000.

While you certainly don’t need to know all 13,000 of those elements for any specific app they nevertheless represent a pretty monumental body of knowledge to wrap your head around.

There was a time when I felt like I knew my way around pretty much every non-game SDK available on iOS. Now I often find myself stumbling across frameworks that are completely foreign to me, which is both kind of exciting but also extremely daunting.