@
Oilybear 个人体验:
即使是单一平台的 APP ,不管是古法编程还是 AI 辅助还是纯 agent 项目,用 flutter 的效率和效果都不比原生差。这里的原因我认为主要是两点:
1. flutter 相比原生的社区生态是降维打击,很多功能都有写好的库,而且很多积极维护的库不仅处理了跨平台兼容性问题,甚至平台本身的兼容性问题和 bug 都处理了,开发体验和稳定性比原生还好。
2. 不管是安卓还是 iOS 其实总的来说都还处于稳定成熟的传统原生( OC 、xml )向现代但不够成熟的方案( compose 、swiftui )转变的过程中,相比之下对于 AI 来说,flutter 是考虑到稳定性、确定性、丰富度更优的方案。
如果考虑到多平台,而且需要长期维护迭代,而不是一锤子买卖的项目,跨端方案比多端原生的优势更是巨大。这不是简单的两个平台只需要多一倍 token 这么简单的问题,下面是 gemini 的分析:
1. 软件工程的终极噩梦:状态与逻辑同步
无论 AI 多么聪明,如果在原生端分别实现,你依然会有两套完全独立的业务逻辑代码。
假设你需要修改一个电商 App 的“购物车结算逻辑”。 原生方案下,你需要分别 prompt (提示) AI 去修改 iOS 的 Swift 代码和 Android 的 Kotlin 代码。由于原生系统的生命周期、状态管理模式(如 iOS 的 SwiftUI/Combine 对应 Android 的 Compose/Flow )不同,AI 生成的代码结构会截然不同。
这就导致了:
a. Bug 的不对称性:双端可能出现完全不同的 Bug 。iOS 可能因为闭包循环引用导致内存泄漏,Android 可能因为协程未取消导致崩溃。
b. 需求对齐极难:随着业务迭代,两套代码会逐渐“漂移”( Drift ),最终导致同一个功能在两端的表现不一致。
c. 跨端方案的优势:使用跨端逻辑意味着业务核心代码只有一份。修一个 Bug ,双端自动生效,这不仅是写得快,更是错得少。
补充一下,哪怕只是最简单的业务逻辑,你让 AI 分别用 java/kotlin 和 OC/swift 去写两遍,其实都不一定能保证它们在各种 case 下的表现能“完全一致”,但如果核心业务逻辑是完全共享的,不管是用 dart 、js 、c 还是 rust ,就很难会出现不一致的问题导致的 bug 。
2. 代码生命周期中的“维护成本”公式
在软件工程中,代码的创建成本在整个生命周期中只占极小部分。代码写出来是一次性的,但阅读、重构、排查 Bug 需要持续投入。维持双端甚至多端一致性的沟通和校验成本比 AI 的创建成本要高得多。
你是愿意让人类开发者(哪怕借助 AI )去 Review (审查)一份跨端代码的 Pull Request ,还是同时去 Review 两份基于不同语言、不同架构的 PR ?代码量翻倍,意味着人类审查的认知负荷( Cognitive Load )翻倍。AI 可以生成代码,但最终为线上 Bug 负责的依然是人类。
3. 多端生态不仅是 iOS 和 Android
现代跨端框架(如 Uni-app, Taro, React Native Web )解决的不仅仅是手机 App 的问题。
现在的企业往往需要:iOS App 、Android App 、微信小程序、支付宝小程序、H5 移动端网页、甚至桌面客户端。 如果你让 AI 去写原生代码,你需要让 AI 分别写:1. Swift (iOS) 2. Kotlin (Android) 3. WXML/WXSS/JS (微信小程序) 4. GTK\Qt\Win32
即使 AI 能写,部署、测试、发版需要经过 4 个完全不同的流水线。而使用跨端框架,一套代码编译到多端,配合 AI 辅助编写这套“统一代码”,这才是真正的效率乘数效应。