I am eternally curious. A big motivation for writing the FLEX debugging tool was to explore other apps and discover how they tackle common problems. On Monday, armed with a jailbroken iPhone and an extended version of FLEX, I ran some analysis on the top 100 free apps in the US App Store.
I started by building up a database of the objective-c classes in each app. The median number of classes per app came in at 1,175. In total, the database contained over 181,000 classes. The app with the most classes had over 15 times the median. I bet you can guess which one that was ;). Each of the top 7 apps by number of classes was made by either Facebook or Google.
Next, I looked for common class names and tried to match them to open source projects and 3rd party libraries. I bucketed nearly 5,000 of the most common classes into over 100 projects.
The most used project by far was the Facebook iOS SDK which appeared in 67 of the 100 apps. Other category leaders included AFNetworking for networking (39) and Crashlytics for crash reporting (38). Several Apple sample code projects show up across many apps, with the most popular being Reachability (38). Finally, evidence of the dependency manager CocoaPods only appeared in 30 apps, indicating that many developers are still adding these projects the old fashioned way. The gist below gives the full list of projects and the number of apps each one appears in.
Exploring other apps is a great way to expand your iOS knowledge. If you’ve ever been curious about what’s in an app, I highly encourage you to dig in and find out for yourself!