Các libraries được sử dụng trong top 100 iOS apps

Tôi là 1 thằng luôn tò mò và tọc mạch. Đấy cũng là 1 trong những động cơ lớn nhất thúc đẩy tôi phát triển trình debug FELEX (tool này dùng để đọc ngược code của các app iOS) dùng để nghiên cứu và khám phá các apps cũng như tìm hiểu cách mà họ ngăn chặn các vấn đề thường gặp. Vào một ngày thứ hai đẹp trời, cùng với con iPhone 2G đã được jailbreak và phiên bản mở rộng của FELEX tôi đã tiến hành phân tích các apps iOS nằm trong top 100 trên US Apple Store.

Tôi đã bắt đầu xây dựng 1 cơ sơ dữ liệu các classes objective-c cho từng app. Số lượng classes trung bình của mỗi app là 1,175. Tổng kết lại thì cơ sở dữ liệu của tôi đang chứa hơn 181,000 classes. App có nhiều classes nhất gấp 15 lần con số trung bình =)). Tôi cá là bạn đã biết đó là app nào rồi.( chắc là Facebook ). Top 7 apps có nhiều classes nhất đến từ Facebook và Google.

Tiếp theo, tôi tìm kiếm những cái tên thường gặp của các classes và thử gán nó với các open source projects cũng như các thư viện bên thứ 3 (3rd party libraries). WOW, tôi đã tìm ra được có gần 5000 classes giống nhau từ 100 projects.

Project được sử dụng nhiều nhất là Facebook iOS SDK, được dùng tới trong 67 / 100 apps. Tiếp theo là AFNetworking thư viện dùng cho networking có mặt trong 39 apps, CrashLytics (thằng này là Fabric của Twitter xài hơi bị mượt) dùng để report các crash xảy ra trong app của bạn có mặt trong 38 apps. Các sample code được cung cấp bởi Apple cũng xuất hiện khá thường xuyên, ví dụ như Reachability 38 lần. Cuối cùng, trình quản lí depedence Cocoapods chỉ xuất hiện có 30 lần, điều này chứng minh 1 điều là rất nhiều lập trình viên vẫn đang add các thư viện vào project của mình theo cách cũ là kéo thả. Bên dưới là 1 bảng đẩy đủ danh sách các thư viện và số lần được sử dụng của nó trong top 100 apps.

Project# of Top 100 Free Apps (US)
facebook-ios-sdk67
Bolts-iOS48
AFNetworking39
Google-Mobile-Ads-SDK38
Reachability (Apple)38
Crashlytics37
Flurry-iOS-SDK31
CocoaPods30
GoogleConversionTracking29
SDWebImage26
Fabric25
mopub-ios-sdk25
Unity23
AdColony22
GoogleAnalytics20
GTMLogger19
comScore-iOS-SDK18
google-plus-ios18
OpenUDID17
CocoaLumberjack17
Adjust16
ChartboostSDK16
MBProgressHUD16
OpenInChrome15
TTTAttributedLabel15
HockeySDK14
google-breakpad14
CocoaAsyncSocket13
AppLovin13
SBJson13
FMDB12
GLImageProcessing (Apple Sample)12
pop12
SSZipArchive12
Appirater12
BPXLUUIDHandler11
VungleSDK-iOS11
Protobuf11
UnityAds11
SSKeychain10
KeychainItemWrapper10
PLCrashReporter10
secureudid10
libPhoneNumber-iOS10
oauthconsumer10
InMobiSDK9
MobileAppTracker9
TapjoySDK9
TrustDefender Mobile9
iRate9
OnePasswordExtension8
SFHFKeychainUtils8
Tweaks8
cocos2d8
GPUImage8
KVOController8
Nimbus8
google-cast-sdk8
HPGrowingTextView7
Localytics7
thrift7
FormatterKit7
Kochava7
Mantle7
Mixpanel7
AppNexusSDK7
JSONKit7
NJKWebViewProgress7
cocos2d-x7
TouchJSON7
SupersonicAds6
TPKeyboardAvoiding6
SponsorPaySDK6
PhotoScroller (Apple)6
TwitterKit6
SpeechKit6
ReactiveCocoa6
UICKeyChainStore6
WeChatSDK6
XMLDictionary6
SVProgressHUD5
SocketRocket5
libextobjc5
Shimmer5
TransitionKit5
AsyncDisplayKit5
SnowplowTracker5
aws-sdk-ios5
SVPullToRefresh5
MMWormhole5
Masonry5
UIAlertView+Blocks5
FLAnimatedImage5
AppsFlyer-SDK5
CardIO5
TMCache5
youtube-ios-player-helper5
Weibo4
Parse4
MagicalRecord4
GoogleMaps4
GoogleAds-IMA-iOS-SDK4
Braintree4
PSPDFTextView4
FXBlurView4
ASIHTTPRequest4

Việc nghiên cứu các apps là 1 cách tuyệt vời để mở rộng kiến thức của bạn. Nếu bạn là 1 người tò mò và ham hiểu biết, tôi khuyến khích các bạn hãy đào sâu và tìm hiểu thêm.

Khóa học lập trình online iOS Swift cũng như thực tập của Techmaster sẽ giúp cho bạn có những kiến thức nền tảng vững chắc trong con đường lập trình ra những ứng dụng iOS cực lớn như top 100 apps ở trên.

ITZone via Techmaster

Chia sẻ bài viết ngay