
1 MisterQ 2024-11-20 11:29:54 +08:00 无论选择 1 还是选择 2 ,都需要写一遍 sdk ,那何不直接用 flutter 重写。 还有你提到的这 3 个三方框架,我查了下鸿蒙那边都已经适配了 |
2 beisilu 2024-11-20 11:37:28 +08:00 感觉不是技术路线问题,而是职业规划问题;你的部门领导肯定希望有人能把桃子从别的部门摘过来。 sdk 层在各路 ai 加持下,重构应该只是工作量问题。 所以取决于你的《上进心》和你领导的《人品》 |
3 zoharSoul 2024-11-20 11:44:47 +08:00 选 2 |
4 leo7723 2024-11-20 12:05:42 +08:00 感觉 2 更好 选 1 你们以前的架构不是废了么 选 3 会要求接入放强制接入 flutter 不太 OK |
5 cocomanber 2024-11-20 12:23:46 +08:00 推荐 2:尽量保持原来的框架不大改,各司其职。 最不推荐 3:flutter 现在前景不明朗,all in 后续越来越大坑。 不推荐 1:小众端,目前真不值得。 |
6 tanranran 2024-11-20 12:42:24 +08:00 2 |
7 yinmin 2024-11-20 12:50:46 +08:00 via iPhone sdk 层是另外部门的,当然要推回给这个部门。如果感觉自己有能力做 sdk 层,也要等对方扯皮再勉为其难的接下来。 |
8 stardust21 2024-11-20 13:30:14 +08:00 选 2 吧,各种插件现在社区也跟上了,多搜索下,找不到问下华为的人 |
9 huzhizhao 2024-11-20 14:16:45 +08:00 我觉得你都打算兼容鸿蒙了,肯定是用原生更好啊 SDK 我觉得 7 楼(@yinmin )说得对 |
10 Nitsuya 2024-11-20 14:30:17 +08:00 2 |
11 RightHand 2024-11-20 14:43:02 +08:00 via Android 自己维护:要么选 1 ,要么选 3 。推给别人那就选 2 。2 会把所有的坑都再来一遍 |
12 ala2008 2024-11-20 15:05:49 +08:00 套个 webview ( dog ) |
13 xiangyuecn 2024-11-20 15:26:45 +08:00 要不,改小程序得了 |
14 benster 2024-11-20 16:08:07 +08:00 选 1 ,flutter 官方不支持鸿蒙系统,那些第三方库兼容鸿蒙基本都是鸿蒙社区搞的,目前鸿蒙 flutter 适配的版本是 3.7.12 ,正在做 3.22.0 的兼容,后续的维护是大问题,要是你用的第三方库没有适配鸿蒙,后续得你自己做,还有系统升级后第三方库的适配,社区也很难保证及时更新 |
15 benster 2024-11-20 16:19:13 +08:00 与原生交互的第三方库如果社区已经做了适配,基本可以直接用,如果没有就得自己写鸿蒙系统的插件,这是社区已经适配好的库列表: https://gitee.com/openharmony-sig/flutter_packages/blob/master/README.md |
16 debuggerx 2024-11-20 16:46:12 +08:00 首先排除 1 |
17 1una0bserver 2024-11-20 23:30:45 +08:00 via Android 4 ,SDK 用 c++/rust/zig/kotlin native/golang/纯 js 重写。flutter 和 arkts 都不靠谱,鸿蒙上的 flutter 一堆坑,谁写谁知道,arkts 生态太少而且华为经常变动 API ,现在又推仓颉,难说以后会不会又抛弃 arkts 。不如学腾讯直接用 native 重构,以后就是再有别的新系统也好搞了,而且 Android 端和 iOS 端也可以用。目前支持最好的是 c++和 rust ,基本不用改多少,zig 有官方支持但是生态少,golang 和 kotlin native 只有第三方支持但是胜在自动处理 gc 和生态丰富好写,还可以试试写 nodejs 然后用 quickjs 执行 |
18 tyzandhr 2024-11-21 00:59:11 +08:00 via Android 还是用原生方案实现 ui 比较靠谱。sdk 倒可以调原来的。 arkts 现在是支持调用 js ,但不能从 js 调 arkts 。 |
19 alphaControler 2024-11-21 15:08:46 +08:00 via Android 如果你会 golang 、rust 其中一个的话,你可以把业务层用这两种语言其中一个来写,打包成 so 库给三端使用。Kotlin/Native 理论上也行,我没做过。目前我是全用 flutter 重写 |
20 vczyh 2024-11-21 16:05:34 +08:00 @alphaControler 请教一下,我用 Dart 调用某个数据库的 Go 驱动(因为这个数据库没有 Dart 驱动),创建连接后的 Connection 对象是 Go 的结构体,无法在 Dart 中表达,这种应该怎么做,现在想到的是把 Connection 对象存到 Go 动态库中的全局变量中,然后 Dart 调用动态库中的方法来使用 Connection ,这样使用有问题吗? |
21 alphaControler 2024-11-21 18:33:42 +08:00 via Android @vczyh 在 dart 中,一般用 map 传递 |
22 alphaControler 2024-11-21 18:34:18 +08:00 via Android @vczyh go 和 dart 之间,一般用 map 通讯 |
23 alphaControler 2024-11-21 19:08:30 +08:00 via Android @vczyh 更详细点就是 rust 将数据转成 json ,在给 dart 语言,再转成 dart 对象 |
24 vczyh 2024-11-22 09:51:14 +08:00 @alphaControler 我现在用的是 Protocol Buffers ,跟你意思应该一样。 |
25 liudong7351 2024-11-22 11:00:29 +08:00 肯定选 2 啊。其他选项 1 和 3 ,不是一个人能搞定的,也不是你们一个组能搞定的。 |
26 cadillac 2024-11-24 22:51:30 +08:00 由于鸿蒙 api12 比较新,貌似 AI 支持的还不是很好,不像 ios 和安卓 |
27 snowflake007 284 天前 哎呀,问题一大堆,我们放弃了, 头大 |