美文网首页
我为什么痛恨 iOS 原生 UIKit 开发

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

作者: SwiftFun | 来源:发表于2024-08-17 17:43 被阅读0次

<p>做 iOS 原生开发的头十年浑浑噩噩的,也没觉得有什么不妥。直到 2022 年我用 SwiftUI 开发了几个 App,才发现之前原生开发方式有很大的问题。</p><p>使用 UIKit 开发时,只能一遍又一遍地运行项目。每次改动一行代码,为了查看效果就得重新运行项目。虽然项目可以只编译改动的文件,但是每次运行项目不仅仅是在编译,还包含很多其它的流程,例如将代码和资源拷贝到设备中,这些流程都非常占用时间。</p><div class="image-package"><img src="https://img.haomeiwen.com/i2564398/7f06b7c595bde6e4.jpeg" img-data="{"format":"jpeg","size":28761,"width":854,"height":480,"space":"srgb","channels":3,"depth":"uchar","density":72,"chromaSubsampling":"4:2:0","isProgressive":false,"hasProfile":false,"hasAlpha":false}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>特别是做 UI 的精细调整时,需要对照设计稿和设计师的需求进行像素级的调整,这让我对一次又一次运行项目产生了巨大的怀疑和抵触。</p><p>一天下来可能要运行几十次到上百次,每次运行都要等待 30 秒到 3 分钟左右。如果按照一天运行一百次来算,所消耗的时间大约有 1.5 个小时。</p><p>一个 iOS 开发者每天都要被白白消耗掉 1.5 个小时的生命,想想实在是太可怕了。但是公司的工作又让我不得不用 UIKit 来开发。如果允许使用 Storyboard 和 Xib 会稍微有所缓解,但仍然无法避免需要一次又一次运行项目的问题。而且我现在所在的公司是禁止使用 Storyboard 和 Xib 的,可能是出于性能等原因的考虑。</p><p>因此在工作之余,我就用 SwiftUI、Vue.js 等来做自己的项目,以此获取内心的平衡。相比之下,我觉得开发前端实在是太爽了。配置好 LiveServer 这样的工具,加上 VSCode 这类开发工具的自动保存功能,改动完代码后立刻就能看到效果。可以用两个显示器,一个编写代码,另一个实时看代码的结果,简直不要太爽。</p><p>SwiftUI 虽然也能实时预览,但是一旦项目复杂起来,某个视图依赖的东西太多、层次太复杂,实时预览就很容易失败,或者需要很长时间才能刷新出来。经过多个版本 Xcode 的迭代,苹果还是没有解决这个问题。</p><div class="image-package"><img src="https://img.haomeiwen.com/i2564398/f8e672d33918d9c0.jpeg" img-data="{"format":"jpeg","size":6632,"width":683,"height":295,"space":"srgb","channels":3,"depth":"uchar","density":72,"chromaSubsampling":"4:2:0","isProgressive":false,"hasProfile":false,"hasAlpha":false}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p>我现在经常很怀疑人生,为什么我当初要选择做 iOS 开发。而且 iOS 开发现在可能是最难找工作的领域之一。</p><p>好在最近公司准备用 RN 了。用 RN 写了几个简单的 App demo 之后,我觉得实在是太爽了。基本上和前端开发一样,可以做到实时预览效果。</p><p>人是需要反馈的动物,行为如果没有得到反馈,那么就会非常沮丧。相比于可以实时获得反馈,等待一分钟以上才能获得反馈同样令人沮丧。</p><p>考虑到现在还有大量的公司没有开始用 SwiftUI 开发,SwiftUI 只能用于开发苹果生态中的应用,并且越来越多的公司开始提供对鸿蒙的支持,跨平台技术的前景应该会越来越好。</p>

相关文章

网友评论

      本文标题:我为什么痛恨 iOS 原生 UIKit 开发

      本文链接:https://www.haomeiwen.com/subject/ubmukjtx.html