silolme
V2EX  ›  程序员

小白想问个跨平台开发 app 的问题,请指教

By silolme at 5 月 21 日 · 5314 次点击

是这样的,我想开发一款 app ,同时运行在安卓和 ios 上,以后可能还有小程序版本,我准备用 codex 写,想请教下: 直接让他用跨平台的语言写,比如 flutter,RN ? 还是用 swift 写一个 ios 的版本,然后都写完了再让他翻译成 android 原生? 或者还有更合适的方法?

本人对上面的语言都不了解,所以最合适的推荐是?感谢!

62 条回复  •  2026-05-23 13:11:31 +08:00
Nasdaq
   1
Nasdaq  
   5 月 21 日
有硬件交互=原生
偏动画效果=flutter
jonty
   2
jonty  
   5 月 21 日   ❤️ 1
个人拙见,既然都纯 vibecoding 了,每个平台开发一个原生的效果应该会更好吧!
carverReal
   3
carverReal  
   5 月 21 日
有小程序?那可以上 rn 吧
SilenceLL
   4
SilenceLL  
   5 月 21 日
@jonty 保持一致性可能都很难,尽量搞成一套代码会更好一些。
SilentOrFight
   5
SilentOrFight  
   5 月 21 日
@jonty #2 是的,1 楼说的“偏动画效果=flutter”,实际情况 Flutter 在中低端 Android 上很卡,别说动画了,没动画都卡。
chenquanjun
   6
chenquanjun  
   5 月 21 日   ❤️ 1
邪道用游戏引擎写
Desiree
   7
Desiree  
   5 月 21 日
app 都用 flutter ,小程序用 Uniapp
CFM880
   8
CFM880  
   5 月 21 日
都 AI 了,那就都原生,主写一个平台,功能拆细一点,后面的用 ai 迁移到另一个平台,AI 很快就能弄好;你可以先尝试找一个开源的 app ,先用 ai 迁移到另一个平台,先练练手
wjv22019
   9
wjv22019  
   5 月 21 日
借楼,想问问,有没有好用的、开源的安卓脚手架呀?
alleluya
   10
alleluya  
   5 月 21 日
@SilentOrFight #5 flutter 很吃硬件配置吗
silolme
   11
silolme  
OP
   5 月 21 日
多谢楼上各位的回答,看来 flutter 和原生开发好像都是可以的,大家也有不同意见,发帖后我又问了下 codex ,他是这么回答的:
----------------------------------------------------
如果你想同时跑在 Android 和 iOS 上,通常有这几种主流选择:

最推荐给新项目的跨平台方案:

Flutter / Dart

一套代码同时开发 Android 和 iOS
UI 表现一致,性能好
适合从 0 开始做 App 、工具类、商城、内容类、管理系统等
语言:Dart
React Native / JavaScript 或 TypeScript

也是一套代码跨 Android/iOS
如果你或团队熟悉前端,学习成本低
生态成熟,适合和 Web 项目共用部分技术栈
语言:JavaScript 或更推荐 TypeScript
原生开发方案:

Android 原生

语言:Kotlin
性能和系统能力最好,但只能做 Android
iOS 原生

语言:Swift
体验最好,但只能做 iOS
如果你是一个人或小团队,想尽快做出 Android + iOS ,我会优先建议:

Flutter + Dart

原因很直接:跨平台体验好,UI 稳定,开发效率高,发布 Android/iOS 都比较顺。
如果你本身已经会前端,那可以考虑 React Native + TypeScript 。

-------------------------------------------------

哈哈,我再考虑下
susunus
   12
susunus  
   5 月 21 日
都 vb 了,android 用 compose ,ios 用 swift , 小程序用原生,先做小程序,再做 android 再做 ios , 如果不是存展示类 App ,RN flutter 都要写 bridge ,如果是 uniapp 也是要插件的,不如一部到位,就是可能非点 token ,主要 android 一定不要用 view 那一套了,写完记得开源出来
lemontrees
   13
lemontrees  
   5 月 21 日
@susunus 哈哈哈哈写完记得开源出来
Allvirus
   14
Allvirus  
   5 月 21 日
肯定是 webview 套壳啊 搞笑噢
remarrexxar
   15
remarrexxar  
   5 月 21 日
小白的话套壳 HTML 吧
sentinelK
   16
sentinelK  
   5 月 21 日
如果想完全一致,混合应用是最方便的。顺带还解决了热更的问题。代价就是小程序这侧不太支持( API 缺失严重)

如果想体验最好,各自平台一份原生是最理想方案,你维护一份功能定义和产品设计文档,然后各自实现。

跨平台语言框架在现今来看,性价比不高。
1 、各自平台还是要各自匹配特性。只有逻辑和 UI 代码可以共用。
2 、性能不强。
3 、如果考虑跨到小程序,好像只有 uniapp 能符合吧?
f5a599
   17
f5a599  
   5 月 21 日
不要用原生,iOS 开发的 vibe coding 是个灾难
Hilong
   18
Hilong  
   5 月 21 日
别搞那么多版本,就 uniapp 一把梭,别听那些人有 vibe 就都搞原生,每个版本的兼容性都要搞死人。
flytsuki
   19
flytsuki  
   5 月 21 日
你要是给普通用户使用没什么调用硬件的用 uniapp 糊弄一下就行了;好一点就是 uniapp 写小程序,flutter 写 app
TimPeake
   20
TimPeake  
   5 月 21 日
最近刚 vibe 了 app ,类似 nas 音影的那种,用的 flutter ,个人感觉体验很好。
piaomiao0315
   21
piaomiao0315  
   5 月 21 日
月初刚刚上线了一款 web 后台,小程序用户,双端 app 服务方的应用。
模型用的 claude 4.5 ,先创建了后台并对应生成 api 文档,小程序是原生的,双端 app 用的 flutter ,整体下来还是挺顺利的,flutter 对于手机权限的适配还是很超乎意料的,本来觉得会在定位和后台运行上占用大量调试时间。
lancevps
   22
lancevps  
   5 月 21 日
我觉得用 expo 开发 iOS 和安卓,然后让 AI 把 expo 的 react 代码转成 taro 小程序
susunus
   23
susunus  
   5 月 21 日
@Hilong 先手动友善,想问下您这里说的版本兼容,是什么兼容。
susunus
   24
susunus  
   5 月 21 日
@remarrexxar 套壳要处理和原生之间的 bridge 交互,还是需要一个跨端的壳子或者原生的壳子,可能还有有 ios 上架的困难
Hilong
   25
Hilong  
   5 月 21 日
@susunus 首先你的 UI 得保持一致性吧。这个就得调死人。另外各个原生版本的代码都要处理各家的设备兼容性。各种权限啊,通知之类的。真正开发的时候你就知道了
vfs
   26
vfs  
   5 月 21 日
个人感觉,你每个平台都写原生的,即使用 AI ,也能把你进度拖死,不建议。 应该挑选尽可能跨平台的技术
susunus
   27
susunus  
   5 月 21 日
@Hilong #25 UI 完全没有必要高度一致,适配各个系统的风格,比如 MD 或者 HIG
susunus
   28
susunus  
   5 月 21 日
@Hilong #25 另外,你说的权限,通知这些原生才是最好处理的,如果是跨端要么你通过 bridge ,调用原生写,要么你用三方库,这里的三方库才是最坑的,RN 和 flutter 都有大量的不再维护的主流库
zmfang1995
   29
zmfang1995  
   5 月 21 日
还要考虑鸿蒙 next 的话,建议还是 uniapp 吧,目前我感觉没有更好方案在三端和小程序之间都兼容。
BruceXu
   30
BruceXu  
   5 月 21 日
如果只是 android+ios.可以考虑 flutter

但是如果还有微信小程序..那就 uniapp.3 平台可用.
fushy
   31
fushy  
   5 月 21 日
compose 跨平台试试,AI 写的话也不用多懂代码
ca2oh4
   32
ca2oh4  
   5 月 21 日
基于需求做技术选型,要考虑需求的场景
SchwarzeR
   33
SchwarzeR  
   5 月 21 日
flutter 属于是除了多了一个 dart 的学习成本外(我个人评价为 java 样子的 typescript ),综合心智负担、历史包袱、生态支持相对更能让人写下去的了
nebu1a
   34
nebu1a  
   5 月 21 日
flutter 一把梭
MacsedProtoss
   35
MacsedProtoss  
   5 月 21 日 via iPhone
flutter 在 iOS 上用户体验一坨💩 只有搞安卓的人才喜欢这破玩意
yoyoyoyolol
   36
yoyoyoyolol  
   5 月 21 日
肯定得用跨平台框架,写个 ios 端原生再翻译成安卓的话,随着你业务的复杂问题越来越多,不一定能给你实现一样的效果。使用跨平台框架的缺点就是使用不到 ios 原生的效果比如液态玻璃之类的。
kamisamayo
   37
kamisamayo  
   5 月 21 日
独立开发我觉得 rn 吧。。。我也纠结过,我还把我 rn 写的代码,让 ai 给我用 flutter 写。写的效果不如 rn ,测试也更麻烦。主要是 ai 对于 js/ts 最熟悉,第一梯队,会少出错。
不过如果你本身这些语言,架构都熟悉,那每套原生也可以。就是耗费时间多+token 多。前期还是验证需求有没有市场更有价值。
icanfork
   38
icanfork  
   5 月 21 日
让 codex 给你重写一个其他语言的客户端,也就是一周额度的事情。
silolme
   39
silolme  
OP
   5 月 21 日
没想到这个帖子这么多人回复哈,谢谢各位大佬,目前看来两种方案,一个是 flutter ,开发小程序再转成原生写一次,还有一种是直接 uniapp ,就是不知道 vibe 用 uniapp 会不会有什么坑,我觉得可以试一下哈
sodesga
   40
sodesga  
   5 月 21 日
要看你的 app 的类型的,譬如相机类,对原生要求比较高的,flutter 只适合用来做壳,背后还是原生组件啊!
简单的就直接 uniapp 一把梭!
Aaron36
   41
Aaron36  
   5 月 21 日
@chenquanjun 这确实很邪道了。我之前只做过用原生写得像游戏的 app 。全篇到处都是 lottie 做的动画,又要适配屏幕尺寸,又要动画元素和其他动画元素对齐。。。
yufeng0681
   42
yufeng0681  
   5 月 21 日   ❤️ 2
你心大了。 试水都是先开发 小程序版本, 小程序本来就是跨平台的, 也有社交推广的能力。也不需要额外的鉴权。
等你真能做起来业务,发现必须有 app 了,才去落地 app

一上来就是宏大叙事,业务啥的没想清楚,被迫沉浸在 app 端的开发上, 属于主次不分吧
james2013
   43
james2013  
   5 月 21 日 via Android
准备用 codex 开发的话,建议原生 app ,把开发需求搞明确具体,vibecoding 一把梭 doge
icyalala
   44
icyalala  
   5 月 21 日
上面讨论那么多各说各的,是立场不同
如果你的立场是站在用户,是保证用户体验,那就原生。没有用户喜欢蹩脚的跨平台体验
如果你的立场是站开发者,保证开发一致性,节省人力和时间,那就 Flutter/RN
Imindzzz
   45
Imindzzz  
PRO
   5 月 21 日
uniapp 啊,你想一套代码三端,这是唯一选择。

并且这个更接近 WEB 技术,可能更适合 vibe
Rache1
   46
Rache1  
   5 月 21 日
@chenquanjun 之前待过一家公司,App 就是用游戏引擎写的,用的「 Cocos 」
hjw45611
   47
hjw45611  
   5 月 21 日   ❤️ 1
我在用 uniappx 写 Harmony+Android ,可以打包成原生代码,但 AI 5 分钟写出来的代码,需要 AI 20 分钟来改代码 bug
楼上推荐 uniapp 的麻烦推荐一下 AI 工具
liuliuliuliu
   48
liuliuliuliu  
   5 月 21 日
@chenquanjun 懂了,用 unity 写
ktyang
   49
ktyang  
   5 月 21 日
原生吧,无非就是多烧 token 而已,但是调试还是得自己来。
libasten
   50
libasten  
   5 月 21 日
我最近用 ai 套壳了一个 h5 ,很是牛逼,以前要给用户啥的发 h5 地址,他们一会在微信里直接打开,有的在 qq 直接打开,体验不好(上下有工具栏状态栏)。
我现在用了一个 apk 把 h5 页面包进去,挺好。
要更新,也不要更新 apk ,直接改 h5 ,那边 apk 打开正常用。
66beta
   51
66beta  
   5 月 21 日
想太多,让 AI 帮你选个方案不就行了,有用户了再谈优化和性能
lotosbin
   52
lotosbin  
   5 月 21 日
kuikly
maxmax4max
   53
maxmax4max  
   5 月 21 日
建议不要开发,相关的一门语言都不了解,迭代和修 bug 是个灾难。
dode
   54
dode  
   5 月 21 日
先做小程序吧,这样全平台先用上,再迭代,加本地 app
ynxh
   55
ynxh  
   5 月 21 日
app 的话无脑 flutter ,体验不是 uniapp 能碰瓷的
chengkai1853
   56
chengkai1853  
   5 月 21 日
App 复杂的话,小白就不建议都走原生,Ai 很多时候修不好 BUG 。
lozzow
   57
lozzow  
   5 月 21 日
我用的 capacitor 哈哈哈,套 webview
verfino
   58
verfino  
   5 月 22 日
如果是公司做商业化项目做 MVP ,老老实实的用 uniapp 做;

如果是自己体验,那就见仁见智了
kangyangqishi
   59
kangyangqishi  
   5 月 22 日
flutter 有个 MPFlutter 也能开发小程序
HTravel
   60
HTravel  
   5 月 22 日
我以前自己写了个 web 版的音乐播放器,后来有 AI 后让 AI 给我增强成了更易用、功能更多的新版,然后两个版本并行,老版本职责就是广覆盖,解决在极老浏览器上听歌问题。

然后让 AI 把该 web 播放器移植成了 iOS 和 Android 原生版,目的是为了解决车载电脑上可以方向盘切歌、可以显示封面大图问题。初始目的也包括搞定蓝牙和 CarPlay 在 HUD 的播放队列上选歌,但最终发现蓝牙协议不支持、CarPlay 不对个人、小公司开放 app 权限。然后发现几百首歌的页面,iOS 和 Android 原生滚动居然都卡顿。告诉 AI 别在 UI 线程下载封面图什么的,尽可能放到其他线程,只能说优化后有效果,但不多。

于是让 AI 进一步给我做了 Hybrid 版的 iOS 和 Android 播放器。滚动终于无比丝滑了。

于是我现在有了 6 款音乐播放器。

反正 AI 时代富甲宇宙,谁还差钱啊,国内外总有各种免费 AI 可用,往原生极致了玩就是了。
silolme
   61
silolme  
OP
   5 月 23 日
@HTravel 太能折腾了--!
silolme
   62
silolme  
OP
   5 月 23 日
@yufeng0681 有道理,可以先做个小程序试水
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 131ms · 3.9.8.5