19/08/2018, 18:00

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 ...

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-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
view rawtop100AppProjects.csv hosted with ❤ by GitHub

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.

Techtalk via Techmaster

0