🐻各大厂商对Swift、Flutter等『新技术』的真实填坑情况
假如你们leader,还不让你用Swift,不让你运用xib、storybard,你能够把这篇文章给他看下。本文剖析了百度网盘、钉钉、抖音、京东、快手、b612、喜马拉雅……等众多app,从是否拥} ; J [ 6 o抱新技能如swift、flutter以及用c r e到& Z V N的开源库等维度进行剖析,期望能对各位大佬工作或是面试有所协助
阐明
- 本文通过爱思助手,直接拿到的ipa; l –
- 剖析不行全面,大家见I x U a } 4谅,前后一共2个小时时刻,有些匆促
- app并未挑选,随机剖析的
- 就我个人而言,是喜欢s : w b ` U 6wift、storyboard、xib的,所以app拥抱了这些,会心生欢喜。
app列表

百度网盘
整体情况如下:
-
运用swift -
运用flutter -
有四个 app extension -
有自定义字体 -
许多 xib -
有sto( l K N 3 $ !ryboard -
用到了Metal
用到的开源库(熟悉的滋2 L V c #味)
-
ZFPlayer -
MJRefrsh -
lotX : B 8 W gtie -
weibosdk、a8 3 $ +lipay
想去百度网盘的兄dei,能够I 4 ` P b看看Swift、xib、Storyboard、flutter方面的知识。没想到百度网盘对新技能仍是很跟进的,有点意外。
哔哩哔哩
被前浪后浪刷屏,我I S ^们来看看B站[ W u b o d Y的app。
整体情况如下:
-
运用swif, ; ) } ~t -
无flutter -
有自定义字体 -
许多 xib -
无 storyboard -
运用OpenGL ES
用到的开源库:
-
lotp A 7 Etie -
FFmpeg -
ijkplayer -
AFNetworking -
AFDownloadReqL _ V * H muestOpA = ;eration -
AMTagListView -
Base64 -
CocoaAsyncSocket -
DAPagesContainer -
DMCircularScx 1 U : TrollView -
FileMD5Hash -
FMDB -
google-toolbox-2 y ! k x 5 l tfor-mac -
JSONKit -
Mantle -
Masonry -
NSObject-ObjectMap -
NullSafe -
OTPScannerOverlayView -
PSCollectionVT | p [iew -
Reachability -
weibosdk、alipay -
ReactiveCocoa -
SVProgressHUD -
VVImageTint -
ZipArchive
额。。。这么多,开眼界,B站拥抱了swift、xib,没有拥抱flutter、storyboard。此外这些库,感Q W z S觉都是oc的,结构都是经典结构。
钉钉
统治阶级操控韭菜们的大杀器
整体情况如下:
-
支持iwatch -
无Swift代码 -
少数 x_ * + Y . Cib -
有storyboard
用到的开源库:
-
MWPhotoBrowser
钉钉I i U W p能看l A ) + a L 0 t出来的不多
下划线命名,也比较混乱,有的是功用开头,也有btn、dt、oa这样的存在。
钉钉仍是纯Objective-C了,许多库都是自己的,我只看到了MWPhotoBrowser,在深度挖掘下,应该能够看到更多,你g h Z需求准备一步越狱机,以a X J Z N ^ R及以下软件。
这些我不行专业,避免误导大家,所以暂不在本文评论范围内。大佬们能够尝试,记住在本 , 5 @ %文下方丢链接。
抖) b G 5音
包名是:Aweme
整体情况如下:
-
无swift -
无xiP p /b -
无storyboard -
有coreml -
有lottieN i . – , { 4 ; -
有MJRefreshu u ~ G % P P 0
里面非常多的bundle,纯OC工程,能剖析出来的较少,期待其他大神共享。
剪映
抖音中没有swift,我们看看另一团队剪映的情况。
包名:videoFusioA a + R , 0 T gn
-
用了swift,并且 $ i还有swiftUI,coreImage,metal等引证 -
有MJRefresh -
无xib -
无storyboard
我看到少部分bN / a pundle是和抖音通用的,绝大都是自己的东西。字节跳动内部看起来不欢迎i ~ 2 $ | w ?xib、storyboard。flutter也没有影子,听说懂车帝有。。。
京东
我发现C o I P M了这个,贴出来。
# configuration.plist 文件中key命名标准
一、按“小驼峰”规矩命名
二、最前面拼接归属模块(具体业务模块名或common)
三、整个key中只能有一个下划线Q + s ] B
1、业务模块
规矩:业务_标识
实例: JDAppManagerModule_appDownloadUrl
2、公共模块
规矩:common_标识
实例: common_debugModel cX $ g { U d P N kommon_channelTypes
-
有swift -
许多nib(熟悉的滋味) -
有storyboard -
react -
有MJRc = l q _ jefresh -
lottie
京东,拥抱了swift、xib、sX ( mtoryboard,点赞。
铁路12306
看看官方的app怎么样
少数xib,无swift,微博,阿T C ; , L e k .里P w @ bsdk,没什么可说的
喜D – D N A马拉雅
每晚都听,看看这货。
-
无swift -
lottie -
AFN8 j ( a s N , W wetwork -
POP -
iWatch -
很少的xib -
YBImageBrowser -
MJRefresh
纯OC的代码,比较原始,没有拥抱新技能。
天天P图
-
无 swift -
包巨细应该是能够优化的,图片管理有点。。 -
许多xib -
MJRefresh -
直接干中文姓名 -
SVP. v srogressHUD
B612
-
有sws 5 m –ia p ] U y s Kft,用到了ARkit、Coreimage、Gz t SLkit、Metal等许多switft{ I H D c ? ~的结构 -
无xib -
无storyboard -
用了lot$ f . 8 ktie -
NSRare/NST V l N U 4 B zGIF -
UIColor-HexValues -
FXBlurView -
SDWebImage -
SFBluetoothLowEnergyDevice -
AVCustomEditX i 2 g F j [https://developer.apple.com/library/content/samplecode/AVCustomEdit/Introduction/] -
iOSInstalledApps -
GrowingTextView -
Ge2 3 _ w . onericKeych! 8 F K oain [https://developer.app o M P 6 z Qle.com/library/ios/samplecode/GenericKeychain/Introduction/Intro.html
] -
MSWeakTimer
还有许3 l j t 3 / 9 ; N多,就不X * T 8逐个列举了。b612很好,把许多疑难杂症bug都放到文档里了,我觉得这些都是宝贵财富,应该保密才对。不过能有这样敞开的心态,点赞。本文仅仅是技能剖析,假M n = 9 @如不妥,请联系,我会及时删除。
快手
太多了,用快手结束。
-
无swift -
flutter -
竟然用中文直接命名,真接地气
-
用的是 webp格式的图片 -
亲娘啊,这么多图片直接放,最少上千了 -
有部分x: 4 w 7 x Z C [ =ib -
无storyboard -
lottie -
MJd % o p 6 M kRefresh
快手应该也是还没有拥抱swift,但拥抱了flutter。
总结
太多了,就不逐个剖析了,这些也够用了,今后慢慢弥补吧。
-
发现基本上都用lf 5 , I a eottie,应该自己加工过 -
swift 运用参半,但这应该是趋势 -
大厂有许多重度xib、storyboard运用,老程序猿,请拥抱它。 -
flutter 宣扬的热烈,真正上车的w 1 M u 1较少 -
MJRefresh为啥用的这么多,n b 哦 -
网络库AFNetwork是用的较多的 -
YBImageBrowser和MWPhotoBrowser被运用,功用虽小但做好不容易,为作者点赞 -
Masonry应该OC中公认的布局之王了 -
ijkplayer、zfplayer作为开源播放器的佼佼者,供你挑选
本文只是供给了一个途径,协助你更好的了解竞品。是我在患病时,无聊搞的,肯定不完善,剖析的不行透彻,期望能有协助,也期望有心的面试者能够看到这篇文章,你去他家面试时,很有或许面试题就藏在这儿,比如我就去过B61M v M ?2,其时就问了MSWeakTimer相关的东西,祝各位好运。假如有不同见地,欢迎入群solo。
假如你做的事一款相机类软件,你就去找竞品,然后剖析,一定能协助你走过许多弯路,技能永无止境,作为一名程序猿,我们需求规划自己的未来,这或许是更重要的s j e i i O。
入群solo
