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.

https://techmaster.vn/posts/33583/thuc-tap-lap-trinh-web-mobile

https://techmaster.vn/khoa-hoc/8217/lap-trinh-ios-swift

Bài viết được dịch từ bài của tác giả Ryan Olson trên Medium.

https://medium.com/ios-os-x-development/libraries-used-in-the-top-100-ios-apps-5b845ad927b7#.8y1hgbvjx

 

Khóa học lập trình di động tại Techmaster:

Để cài đặt MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:

  • Nguyễn Minh Sơn: 01287065634
  • Huỳnh Minh Sơn: 0936225565
  • Website: caidatmacos.com