通过MachO分析App技术栈

标题里的技术栈特指App里Swift/React Native/Flutter/Weex的应用情况。

实现

  1. Swift
    dyld libs里是否包含libswiftCore.dylib

  2. React Native
    是否有包含RCTView类

  3. Flutter
    dyld libs里是否包含Flutter.framework

  4. Weex
    是否有包含WXSDKInstance类

dyld libs指类型为LC_LOAD_DYLIB的load command。

在实现的时候,有两点需要注意:

  • 需要对binary,binary引用的dyld Framework,以及dyld Framework引用的dyld Framework,进行1-4.
  • dyld Framework下的binary,在获取class list的时候需要通过Symbol Table获得类名。

数据

基于 SnakeKit ,使用以上方法分析中国区App Store 免费榜单应用,得出以下数据。


iOS中国区Swift/React Native/Flutter/Weex应用现状

App Swift React Native Flutter Weex Version
1. 钉钉 5.0.5
2. 腾讯会议 1.3.0
3. 剪映 2.7.1
4. TestFlight 2.6.0
5. 微视 6.6.0
6. 快手极速版 2.1.3
7. 抖音 9.9.0
8. 企业微信 3.0.13
9. 腾讯视频 8.0.0
10. 拼多多 5.3.0
11. 微信 7.0.11
12. QQ 8.2.9
13. 快手 7.1.5
14. 旅行世界 1.2.0
15. 番茄小说 2.7.5
16. 支付宝 10.1.87
17. 手机淘宝 9.5.0
18. 学习强国 2.9.2
19. 百度 11.19.0
20. 韩剧TV-追剧大本营 4.6.8
21. 哔哩哔哩 5.54.1
22. 京东 8.5.2
23. 小红书 6.36.1
24. 爱奇艺 11.2.5
25. 闲鱼 6.6.50
26. 优酷 8.5.4
27. WPS Office 10.0.3
28. 网易云音乐 7.0.20
29. 腾讯课堂 4.8.5
30. 淘宝直播 1.6.1
31. 交管12123 2.4.4
32. QQ浏览器 10.1.0
33. 西瓜视频 4.3.0
34. 百度网盘 10.0.91
35. 美图秀秀 8.7.70
36. 喜马拉雅 6.6.54
37. 酷狗音乐 10.0.4
38. 好省 2.2.0
39. 七猫小说 3.0
40. QQ音乐 9.8.5
41. 京东金融 5.3.50
42. Keep 6.36.0
43. 微博 10.3.0
44. BOSS直聘 7.200
45. UC浏览器 12.8.6.1274
46. 人人视频 4.3.6
47. 58同城 9.6.1
48. 全民K歌 6.19.8
49. 轻颜相机 2.9.1
50. 网上国网 2.0.2
51. 皖事通 1.6.11
52. 安居客 12.26.4
53. 淘宝特价版 3.14.1
54. 今日头条 7.6.1
55. 高德地图 10.28.0
56. 芒果TV 6.5.6
57. 菜鸟裹裹 5.9.0
58. 得物(毒) 4.33.5
59. 贝壳找房 2.27.1
60. 美团 10.7.401
61. 第一弹 2.36.5
62. PP体育 5.20.2
63. 知乎 6.31.2
64. 手机天猫 9.5.1
65. Zoom 4.6.7
66. QQ邮箱 5.7.4
67. WiFi万能钥匙 5.8.3
68. 中国建设银行 4.3.2.001
69. 作业帮 12.7.4
70. 农行掌上银行 4.2.0
71. 团油 5.2.2
72. 美团外卖 7.31.1
73. 虎牙直播 7.10.0
74. 中国工商银行 5.1.0.1.1
75. 搜狗输入法 10.5.0
76. 饿了么 8.30.2
77. 扫描全能王 5.17.0
78. 流利说·英语 7.14.0
79. 百度贴吧 11.2.1
80. 智联招聘 7.9.47
81. 搜狐视频 7.9.2
82. 中国移动 6.0
83. 人民智云 1.4.2
84. 腾讯新闻 6.0.41
85. 苏宁易购 8.5.0
86. 酷狗铃声 2.4.0
87. 一甜相机 2.1.9
88. 下厨房 7.3.1
89. 一直播 3.2.4
90. TT语音 5.0.9
91. 阿里巴巴 8.20.5
92. 我的常州 1.3.5
93. 刷宝短视频 2.0
94. 比心陪练 4.8.0
97. 中国银行手机银行 6.5.0
114. 招商银行 8.1.5
151. 百度地图 10.23.0
170. 星巴克中国 7.10.1
206. 滴滴出行 5.4.4
353. 网易新闻 65.1

汇总

应用总数 Swift React Native Flutter Weex ObjC 时间
100 26 23 13 14 41 2020.03.08
  1. ObjC指应用没有使用Swift/React Native/Flutter/Weex
  2. 以上均指iPhone应用
  3. 榜单来自 中国 App Store 免费榜 - iPhone - 2020年3月8日
  4. 此列表仅用于统计

结论

  1. 中国区免费榜单前100名的iPhone应用使用Swift的不到30%。
  2. React Native是使用最多的跨端方案,占用率不到30%。
  3. 极速版和原版的技术栈不同,可能是不同的开发人员在维护。
  4. 一些应用使用了React Native/Flutter/Weex之外的跨端方案。
  5. .....

Top 100 Free Apps in USA Swift/React Native/Flutter/Weex Usage

App Swift React Native Flutter Weex
TikTok
PicsArt
YouTube
Instagram
Snapchat
Messenger
Netflix
Facebook
Gmail
Amazon
Cash App
Spotify
Hulu
Whatsapp
Disney+
Google Maps
DoorDash
Pinterest
Venmo
YOLO
Twitter
News Break
Uber
Google Chrome
Google docs
Amazon Prime Video
Google
Paypal
SUBWAY®
Google Photos
Walmart
Life360
Google Drive
SoundCloud
Arrive
Roku
Lyft
Zoom
Pandora
Tinder
Hopper
AliExpress
Robinhood
Wish
SHEIN
Target
Google Duo
Reddit
Discord
Nike
YouTube Music
Credit Karma
Photomath
Uber Eats
Flo Period Tracker & Ovulation
OfferUp
Poshmark
Wayfair
eBay
Zillow Real Estate & Rentals
Indeed Job Search
Microsoft Outlook
Starbucks
Tubi
Yelp
McDonald's
Musi
Aribnb
Google Slides
VPN
Grubhub
Calm
Waze
GroupMe
Yubo
Google Classroom
Google Translate
Capital One Mobile
Audible audiobooks & originals
Slide Up
Zelle
SuperFX
Bumble
Reflectly
Ticketmaster
letgo
Amazon Music
Hoop
IRL
IRS2Go
Fonts
TextNow
Chick-fil-A
Google Sheets
Fetch Rewards
Chase Mobile
Shazam
Postmates
Duolingo
Funimate

Summary

Apps Swift React Native Flutter Weex ObjC Date
100 78 11 1 1 15 2020.03.10
  1. ObjC which means no use of Swift/React Native/Flutter/Weex
  2. Apps are on iPhone platform
  3. Apps are list on Top 100 Free Apps in USA on March 10, 2020

Github

SnakeList