🐻各大厂商对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等『新技术』的真实填坑情况

百度网盘

整体情况如下:

  • 运用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出来的不多

看下 icon的命名方法如下:
🐻各大厂商对Swift、Flutter等『新技术』的真实填坑情况

下划线命名,也比较混乱,有的是功用开头,也有btn、dt、oa这样的存在。

钉钉仍是纯Objective-C了,许多库都是自己的,我只看到了MWPhotoBrowser,在深度挖掘下,应该能够看到更多,你g h Z需求准备一步越狱机,以a X J Z N ^ R及以下软件。
🐻各大厂商对Swift、Flutter等『新技术』的真实填坑情况

这些我不行专业,避免误导大家,所以暂不在本文评论范围内。大佬们能够尝试,记住在本 , 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
  • 竟然用中文直接命名,真接地气
    🐻各大厂商对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

🐻各大厂商对Swift、Flutter等『新技术』的真实填坑情况