跳到主内容
Temptation
返回博客
技术分享

为什么坚持做原生应用?

在跨平台框架盛行的今天,分享我选择 SwiftUI 原生开发 macOS/iOS 应用的理由与体会。

2026年5月10日8 分钟阅读技术分享

原生开发的选择

在这个 Electron、React Native、Flutter 等跨平台框架大行其道的时代,为什么我依然选择用 SwiftUI 做 macOS/iOS 原生开发?

这不是一个容易的决定,但经过多年的实践和思考,我越来越确信这是正确的选择。

性能是体验的基础

原生应用在性能上的优势是显而易见的:

启动速度原生应用几乎是瞬间启动,没有 WebView 或虚拟机的启动开销
内存占用一个典型的 SwiftUI 应用内存占用通常在 20-50MB,而 Electron 应用动辄几百 MB
流畅度60fps 甚至 120fps 的流畅滚动和动画,不需要额外的性能优化
电池续航原生应用对 CPU 的使用更加高效,不会让你的风扇狂转

与系统深度集成

原生应用可以充分利用平台提供的一切能力:

通知中心完美的系统通知体验
小组件iOS 和 macOS 的桌面小组件
快捷指令与 Shortcuts 应用无缝集成
Spotlight系统级搜索集成
上下文菜单原生的右键菜单和触控板交互
Handoff在设备间无缝切换

这些集成不是「锦上添花」,而是构成了完整的用户体验。

SwiftUI 的开发效率

很多人认为原生开发效率低,但 SwiftUI 改变了这一点:

声明式语法与 React 类似的思维模式,描述你想要的界面
实时预览修改代码的同时看到实时效果
原生组件不需要自己实现导航栏、列表、标签页等基础组件
无障碍访问系统组件自带无障碍支持
深色模式几乎不需要额外适配

跨平台的代价

跨平台框架确实有「写一次,到处运行」的诱惑,但实际代价是:

平台感缺失在 macOS 上感觉像网页,在 iOS 上感觉像 Android
调试困难框架层的 bug 往往难以定位和修复
版本滞后新系统功能发布后,需要等待框架支持
体积臃肿内嵌浏览器引擎导致应用体积巨大
维护负担框架升级经常带来 breaking changes

我的建议

如果你的目标平台只有 Apple 生态,强烈推荐原生开发。SwiftUI 的学习曲线并不陡峭,而且你能获得最好的用户体验和最高的性能。

如果你需要同时覆盖 Android,可以考虑共享业务逻辑层(如网络请求、数据模型),但 UI 层仍然建议各平台原生实现。

总结

做原生应用不是为了「炫技」,而是为了给用户最好的体验。当你打开一个应用,感受到它和系统浑然一体、丝滑流畅的时候,你就会理解这份坚持的意义。