排行榜前 100 的 iOS App 使用的第三方库

我一直好奇心很强。编写 FLEX 这个调试工具的一个很大动机是我想研究其他 app 是如何处理一些常见的问题。

一个星期一,我用一个越狱的 iPhone 和一个 FLEX 的扩展版本对美国 App Store 排名前 100 的免费 app 进行了分析。

一开始我针对每个 app 中的 Objective-C 的类创建了一个数据库。每个 app 的类总数的中数是 1175。数据库最后收集的类总数超过了 181000。类数量最多的 app 是中数的 15 倍以上。我猜你一定知道是哪个 app ;)。类数量排名前 7 的 app 都是 Facebook 或 Google 的产品。

接下来,我搜索了常见的类名并对开源项目和第三方库进行了匹配。结果是我从超过 100 个项目中提取了将近 5000 个最常见的类。

目前最多被使用的是 Facebook iOS SDK,前 100 个 app 中有 67 个都在使用。其他类别的常用库和项目包括 AFNetworking(网络)和 Crashlytics(崩溃报告)。许多 app 中也出现了几个苹果官方的示例代码项目,其中最有名的是 Reachability。最后,只有 30 个 app 使用了依赖管理器 CocoaPods,意味着有很多开发者依然通过传统方式来添加这些库和项目。下面的 gist 给出了所有的库和项目以及它们被使用的 app 总数。

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
Weibo 4
Parse 4
MagicalRecord 4
GoogleMaps 4
GoogleAds-IMA-iOS-SDK 4
Braintree 4
PSPDFTextView 4
FXBlurView 4
ASIHTTPRequest 4

研究其他 app 是一个扩充 iOS 知识的非常好的方法。如果你对其他 app 中都有什么东西感兴趣,我强烈赞成你去动手发掘。

原文链接 on Medium
本文已获得作者翻译以及传播许可