2024 年了,跨平台开发框架有啥推荐的吗

2024-04-02 07:30:14 +08:00
 whywei8

要求支持 WIN ,MAC ,安卓,坑少点就行。 想着开发一次,处处能运行的,或少量修改就行运行的。 那些独立开发者多平台开发用的啥框架呀。

7615 次点击
所在节点    程序员
49 条回复
benG
2024-09-16 12:12:53 +08:00
怎么都没有提到 ArkUI-X ?我来补充一下:华为跨平台方案 ArkUI-X 初探 https://github.com/DZby1990/ArkUI-X-Survey-Repoet
akaHenry
343 天前
我比较关注的方案:

1. Tauri 2.0, 支持 desktop(macOS, Windows, Linux) + mobile ( iOS, Android) 跨平台, 偏前端方案。

2. 鸿蒙 ArkTS + ArkUI + ArkUI-X(跨平台),支持 moible ( iOS, Android, 鸿蒙 5.0 ),偏前端方案。

3. Kotlin + Kotlin Multiplatform(KMP + KMM),支持 desktop + mobile 跨平台,能力完备,偏原生方案。

4. C# + Unity , 支持 mobile ( iOS, Android), 偏游戏开发,不适合常规 app UI 交互。

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

不推荐的方案:

1. Flutter ,相比上述方案,有明显短板.(原因很多,不赘述,flutter 是我唯一觉得投资失败的技术栈, 收益极低)

2. Electron ,有争议,用的人很多,但我个人不喜欢。( Tauri 解决不了的,换其他,我也不用)

2. Qt 类( PyQt 等),跨端的平台多,开发效率和兼容性,都跟不上,能接受 qt ,大概可以看看 Kotlin 方案。

3. 其他未提到的: React Native, Wails(go+js), NiceGui(python+js).

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

技术方案投资,关注点 & 指标:

1. 好爹(爹不行,后继乏力,爹不靠谱,不兼容升级太多,都别用)

2. 技术品味 & 技术先进性(性能合格,开发效率够高,易于复用 & 易于迁移 or 移植他领域)

3. 符合市场发展趋势(注意是市场, 市场, 市场!)

4. 生态完备度(插件库够多,易于移植/白嫖其他生态,易于造轮子)

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

拿这些指标,反复检验如上技术栈,评估符合自己需求的技术,做技术投资 & 技术储备。

选对方向,早做投资,早吃红利。
skymanv2
322 天前
@akaHenry 你的答案比较全,比较好,请问你最后选择了什么方案呢?
akaHenry
320 天前
@skymanv2 #43

新增一个方案 flet:

https://github.com/flet-dev/flet


我是在使用多个方案: Tauri, Flet, ArkTS+ArkUI-X, Kotlin.

根据具体场景, 选择适合的方案.

Tauri: 嫖 rust + js 库时使用. 搭配 vue.js 快速糊 GUI 小工具.

Flet: = Python+Flutter. 单纯的 Flutter 不建议使用, 没有太大优势. 但是 flet, 可以用. 这个是白嫖 flutter 的绘图能力, 100% python 代码写应用. 利用 flutter 的能力, 糊个漂亮的 gui 还是很轻松的. python 库也最多, 最方便.

ArkTS: 技术储备, 为华为鸿蒙开发原生应用首选. 配合 ArkUI-X 跨平台能力也是完备的. 本身大量"借鉴/抄" flutter + kotlin 等特性, 熟悉 flutter, 上手也很快.


Kotlin: 备胎方案, 以上方案不满足的时候, 考虑. (本身跨平台能力也完备, 至少 Desktop 生态比较弱)
skymanv2
319 天前
@akaHenry 感谢,我也决定用 Tauri 和 ArkUI-X
vectorization
253 天前
我来补充一些跨平台框架需要评估的点:

1. 动态化:
Flutter 是可以跨平台的,但是没有官方的动态化方案,业界动态化方案很多,但是基本处于自用,对外只有宣传 PR 的效果,腾讯有个 conch 的高性能动态化方案,应该是市面上屈指可数的基于虚拟机指令的动态化方案。
https://shiply.tds.qq.com/docs/doc?id=4012359582

2. 持续部署:
动态化的下一步就是实现持续部署,也叫热更新。这需要一个强大的客户端资源发布平台,市面上几乎没有选择,腾讯的 Shiply 平台对跨平台产物热发布支持的不错,能够差量更新和灰度发布。

大部分团队只实现了跨平台开发节省人力,但是动态化和持续部署受限于团队规模,没有经历持续投入,这块可以看看成熟的大厂解决方案。
vectorization
253 天前
@vectorization 补充一个 Shiply 平台链接: https://shiply.tds.qq.com/
lijie33402
240 天前
@akaHenry 请问下 arkui-x 现在成熟吗?是不是还属于 ppt 阶段
akaHenry
227 天前
@lijie33402 #48

官方提供多个 arkui-x 的 demo, 包括多页面, 日常的 电商, 新闻类 App 的模板页的示例.

我编译 + 安装到 Android 手机, 实测效果, 体验挺流畅.

我并没有用 arkui-x 开发比较大的 App, 无法给你一手体验.


不过, 这算华为主推的跨平台解决方案, 原因:

1. 华为也要适配自己老的 Android 设备, 跨平台是自身刚需.

2. 吸引其他平台的 App 能够更多迁移到 鸿蒙 next 上, 有足够的动机, 来兼容其他平台.

3. 新增 app 开发, 不会有开发者会为了他一个平台, 单独搞一套.(市场份额决定)


综上推理, 可以分析, arkui-x 不会是个 KPI 方案, 反而是决定能否吸引到开发者的决定成败的方案.

我个人不认为是 PPT 方案. (官方文档非常详细)

一家之言, 仅供参考.

如果是从 0 到 1 的新项目, 可以尝鲜.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1028974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX