我为什么痛恨 iOS 原生 UIKit 开发

做 iOS 原生开发的头十年浑浑噩噩的,也没觉得有什么不妥。直到 2022 年我用 SwiftUI 开发了几个 App,才发现之前原生开发方式有很大的问题。

使用 UIKit 开发时,只能一遍又一遍地运行项目。每次改动一行代码,为了查看效果就得重新运行项目。虽然项目可以只编译改动的文件,但是每次运行项目不仅仅是在编译,还包含很多其它的流程,例如将代码和资源拷贝到设备中,这些流程都非常占用时间。

45c6e255c59fcb3d98a8e4372537a7d6.jpeg

特别是做 UI 的精细调整时,需要对照设计稿和设计师的需求进行像素级的调整,这让我对一次又一次运行项目产生了巨大的怀疑和抵触。

一天下来可能要运行几十次到上百次,每次运行都要等待 30 秒到 3 分钟左右。如果按照一天运行一百次来算,所消耗的时间大约有 1.5 个小时。

一个 iOS 开发者每天都要被白白消耗掉 1.5 个小时的生命,想想实在是太可怕了。但是公司的工作又让我不得不用 UIKit 来开发。如果允许使用 Storyboard 和 Xib 会稍微有所缓解,但仍然无法避免需要一次又一次运行项目的问题。而且我现在所在的公司是禁止使用 Storyboard 和 Xib 的,可能是出于性能等原因的考虑。

因此在工作之余,我就用 SwiftUI、Vue.js 等来做自己的项目,以此获取内心的平衡。相比之下,我觉得开发前端实在是太爽了。配置好 LiveServer 这样的工具,加上 VSCode 这类开发工具的自动保存功能,改动完代码后立刻就能看到效果。可以用两个显示器,一个编写代码,另一个实时看代码的结果,简直不要太爽。

SwiftUI 虽然也能实时预览,但是一旦项目复杂起来,某个视图依赖的东西太多、层次太复杂,实时预览就很容易失败,或者需要很长时间才能刷新出来。经过多个版本 Xcode 的迭代,苹果还是没有解决这个问题。

262d0b13e8e00a40e0e156216b82cf9a.jpeg

我现在经常很怀疑人生,为什么我当初要选择做 iOS 开发。而且 iOS 开发现在可能是最难找工作的领域之一。

好在最近公司准备用 RN 了。用 RN 写了几个简单的 App demo 之后,我觉得实在是太爽了。基本上和前端开发一样,可以做到实时预览效果。

人是需要反馈的动物,行为如果没有得到反馈,那么就会非常沮丧。相比于可以实时获得反馈,等待一分钟以上才能获得反馈同样令人沮丧。

考虑到现在还有大量的公司没有开始用 SwiftUI 开发,SwiftUI 只能用于开发苹果生态中的应用,并且越来越多的公司开始提供对鸿蒙的支持,跨平台技术的前景应该会越来越好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值