本文翻译自Libraries Used in the Top 100 iOS Apps
感谢原作者Ryan Olson
我一直怀有好奇心。促使我编写FLEX调试工具的一个很大动机就是为了探索其他apps以及它们是怎么处理常见问题的。在周一时,我用一个越狱的iPhone和一个改进版的FLEX,对美国App Store上的前100个免费apps做了一些统计分析。
我创建了一个数据库专门用来保存每一个app里用到的objective-c类,最后这个数据库里包含的类数超过181000个。每一个app用到的类的中位数为1175,最多的那个app里用到的类的数量比这还大15倍。我想你应该能猜出来是哪个app ;)。类数排名前7的apps都是来自Facebook和Google。

下一步,我开始通过类名来匹配一些常见的开源项目和第三方库。最终得出用得最多的前100个第三方库,这些库涉及到的类将近5000个。
用得最多的库是Facebook iOS SDK,共有67个apps涉及到了。网络请求用的最多的是AFNetworking(39个),崩溃统计用的最多的是Crashlytics(38个)。 这其中还出现几个苹果的示例代码,比如Reachability(38个)。涉及到CocoaPods的只有30个,这似乎说明大部分开发者还是使用传统的方式来添加第三方库。
Project | # of Top 100 Free Apps (US) |
---|---|
facebook-ios-sdk | 67 |
Bolts-iOS | 48 |
AFNetworking | 39 |
Google-Mobile-Ads-SDK | 38 |
Reachability (Apple) | 38 |
Crashlytics | 37 |
Flurry-iOS-SDK | 31 |
CocoaPods | 30 |
GoogleConversionTracking | 29 |
SDWebImage | 26 |
Fabric | 25 |
mopub-ios-sdk | 25 |
Unity | 23 |
AdColony | 22 |
GoogleAnalytics | 20 |
GTMLogger | 19 |
comScore-iOS-SDK | 18 |
google-plus-ios | 18 |
OpenUDID | 17 |
CocoaLumberjack | 17 |
Adjust | 16 |
ChartboostSDK | 16 |
MBProgressHUD | 16 |
OpenInChrome | 15 |
TTTAttributedLabel | 15 |
HockeySDK | 14 |
google-breakpad | 14 |
CocoaAsyncSocket | 13 |
AppLovin | 13 |
SBJson | 13 |
FMDB | 12 |
GLImageProcessing (Apple Sample) | 12 |
pop | 12 |
SSZipArchive | 12 |
Appirater | 12 |
BPXLUUIDHandler | 11 |
VungleSDK-iOS | 11 |
Protobuf | 11 |
UnityAds | 11 |
SSKeychain | 10 |
KeychainItemWrapper | 10 |
PLCrashReporter | 10 |
secureudid | 10 |
libPhoneNumber-iOS | 10 |
oauthconsumer | 10 |
InMobiSDK | 9 |
MobileAppTracker | 9 |
TapjoySDK | 9 |
TrustDefender Mobile | 9 |
iRate | 9 |
OnePasswordExtension | 8 |
SFHFKeychainUtils | 8 |
Tweaks | 8 |
cocos2d | 8 |
GPUImage | 8 |
KVOController | 8 |
Nimbus | 8 |
google-cast-sdk | 8 |
HPGrowingTextView | 7 |
Localytics | 7 |
thrift | 7 |
FormatterKit | 7 |
Kochava | 7 |
Mantle | 7 |
Mixpanel | 7 |
AppNexusSDK | 7 |
JSONKit | 7 |
NJKWebViewProgress | 7 |
cocos2d-x | 7 |
TouchJSON | 7 |
SupersonicAds | 6 |
TPKeyboardAvoiding | 6 |
SponsorPaySDK | 6 |
PhotoScroller (Apple) | 6 |
TwitterKit | 6 |
SpeechKit | 6 |
ReactiveCocoa | 6 |
UICKeyChainStore | 6 |
WeChatSDK | 6 |
XMLDictionary | 6 |
SVProgressHUD | 5 |
SocketRocket | 5 |
libextobjc | 5 |
Shimmer | 5 |
TransitionKit | 5 |
AsyncDisplayKit | 5 |
SnowplowTracker | 5 |
aws-sdk-ios | 5 |
SVPullToRefresh | 5 |
MMWormhole | 5 |
Masonry | 5 |
UIAlertView+Blocks | 5 |
FLAnimatedImage | 5 |
AppsFlyer-SDK | 5 |
CardIO | 5 |
TMCache | 5 |
youtube-ios-player-helper | 5 |
4 | |
Parse | 4 |
MagicalRecord | 4 |
GoogleMaps | 4 |
GoogleAds-IMA-iOS-SDK | 4 |
Braintree | 4 |
PSPDFTextView | 4 |
FXBlurView | 4 |
ASIHTTPRequest | 4 |
网友评论