本文翻譯自Medium贺氓,原作者是Ryan Olson,原文地址
我永遠(yuǎn)都保持好奇。寫FLEX debug工具的一大動力就是探索其它App斋射,看看他們是怎么處理常規(guī)問題的。
一個星期一但荤,我用越獄iPhone和FLEX的延伸版本罗岖,我分析了美國App Store的前100名免費(fèi)App。
我從建立每個App的Objective-C類數(shù)據(jù)庫開始腹躁。每個App平均有1175個類桑包。數(shù)據(jù)庫合計(jì)包含了超過181000個類。最多類的App超過了平均數(shù)的15倍纺非。我打賭你能猜到是哪個App ;)哑了。類最多的7個App都是由Facebook或Google做的。
接下來烧颖,我尋找了常規(guī)類名弱左,并且嘗試把它們和開源項(xiàng)目和第三方庫匹配。5000個最常用的類對應(yīng)了超過100個項(xiàng)目炕淮。
目前被用的最多是Facebook iOS SDK拆火,在100個App出現(xiàn)了67次。其它分類還有網(wǎng)絡(luò)用的AFNetworking(39次)涂圆,錯誤報(bào)告用的Crashlytics(38次)们镜。一些蘋果范例代碼項(xiàng)目也在很多App中出現(xiàn),最流行的就是Reachability(38次)润歉。最后模狭,依賴管理器CocoaPods的跡象只在30個App中出現(xiàn)了,意味著很多開發(fā)者還在用老方法添加這些項(xiàng)目卡辰。下面的表格給出了項(xiàng)目的完整列表胞皱,包括每個在App中出現(xiàn)的次數(shù)。
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是擴(kuò)展你的iOS知識的絕佳方式九妈。如果你曾經(jīng)好奇App內(nèi)部的東西反砌,我強(qiáng)烈推薦你自己去發(fā)現(xiàn)!