我目前了解到的跨平台开发框架有
我入门的编程语言有
目前大一在读,专业是游戏开发相关的, 自己也经常写点小程序,现在想学一些跨平台开发,请问有框架推荐嘛?
Thanks for replying~
1
acidsweet 2022-07-15 16:06:50 +08:00 1
大一的学生好强鸭;
结合你的技术栈,首推 Electron 了; 结合你的年级,可以尝试一下 Flutter ,就当一乐呗; Qt 我想不到选择的理由; |
2
ysc3839 2022-07-15 16:07:00 +08:00
建议 Electron
|
3
xygod 2022-07-15 16:07:58 +08:00
可以用 ue 做(逃
|
4
NueXini OP @acidsweet 我看过同类似的跨平台开发框架推荐,都推荐的 electron,但是都说性能渣,内存占用大,我就没敢学
|
5
janus77 2022-07-15 16:26:00 +08:00
看起来你不需要移动端。那就 electron 一把梭
|
6
RockShake 2022-07-15 16:28:32 +08:00
反正写个 Demo 也不需要多少时间,都尝试一下就知道优劣了,Electron 虽然性能渣,内存占用大,但是打包方便啊,只要网页写出来,应用程序基本也出来了
|
7
timothyye 2022-07-15 16:29:35 +08:00
|
8
timothyye 2022-07-15 16:29:55 +08:00
活 -> 火
|
9
wangtian2020 2022-07-15 16:33:44 +08:00
https://quasar.dev/
quasar 全家桶。vite 毫秒级热更新开发体验,JavaScript 一把梭。electron 、web 、cordova webApp 全都有 |
10
stevexu 2022-07-15 16:36:39 +08:00
|
12
HFX3389 2022-07-15 16:48:26 +08:00
直接上 electron 啊
|
13
tanranran 2022-07-15 16:53:14 +08:00
electron 没有之一
|
14
flyqie 2022-07-15 16:56:25 +08:00 via Android
PC 端,对性能 /占用 /兼容性没有过多要求的话选 electron ,否则 qt 。
移动端,目前来看似乎 flutter 不错,小程序什么的有需求的话最好上 uniapp 这类的。 |
15
icyalala 2022-07-15 16:57:11 +08:00
目前来说,偏重移动端就 Flutter ,否则 Electron 。
相对 Native 开发来说,上面方案在包体积、内存等性能指标上肯定差些,如果你非常在意那还是 Native 。 |
16
dcsuibian 2022-07-15 16:57:15 +08:00
①游戏开发相关,性能要求高 ② 跨平台 ③个人学习
这种情况能放心推荐 Flutter HTML 、CSS 、JS 确实是目前比较好的跨端方案,但写的一般就是增删改查应用。 |
17
cyp0633 2022-07-15 17:00:54 +08:00
electron 毕竟省事点,上手了解一下也不亏
|
18
asuraa 2022-07-15 17:02:30 +08:00
跨平台?
开发框架? boost |
19
ysc3839 2022-07-15 17:04:51 +08:00
@timothyye 个人觉得 Tauri 主要问题是要用 Rust 写后端,但是目前 Rust 各类库没有 Node.js 那么完善,写起来可能会遇到一些坑,甚至要自己造轮子。
|
20
pengtdyd 2022-07-15 17:10:31 +08:00
pc 已死,客户端技术没啥搞头
|
21
musi 2022-07-15 17:11:01 +08:00
移动端 flutter ,桌面端 Electron
另外跨平台不是银弹,或多或少都有各种各样的问题,就看你能不能忍了 |
22
southsala 2022-07-15 17:24:02 +08:00
flutter
|
23
NoNewWorld 2022-07-15 17:32:22 +08:00
直接 flutter
|
24
IGJacklove 2022-07-15 17:57:30 +08:00 via iPhone
游戏开发搞这玩意干啥…
|
25
rusteer 2022-07-15 18:01:58 +08:00
Tauri 牛逼,我猜你们不知道这是个啥
|
26
dssxzuxc 2022-07-15 18:27:21 +08:00
等你毕业了 tauri 发展好的话差不多也有岗位了
|
28
q474818917 2022-07-15 18:50:10 +08:00
瞎折腾啥,谈谈恋爱,好好享受大学时光不好吗
|
29
ysc3839 2022-07-15 18:52:51 +08:00
@kinboy 个人觉得 Tauri 主要问题是要用 Rust 写后端,但是目前 Rust 各类库没有 Node.js 那么完善,写起来可能会遇到一些坑,甚至要自己造轮子。
|
30
zuosiruan 2022-07-15 18:55:57 +08:00 via iPhone
现在大学都有游戏开发岗位了?
|
31
iwdmb 2022-07-15 19:10:14 +08:00
flutter
|
32
shoreywong 2022-07-15 20:12:12 +08:00 via Android
capacitor
|
33
1more 2022-07-15 20:35:11 +08:00
Tauri ,唯一的不便之处是需要 rust 生态支持,上手难度可能大一些
|
34
duke807 2022-07-15 21:35:33 +08:00 via Android
wxWidgets 或 web page
|
36
iloveios 2022-07-15 22:12:31 +08:00 via iPhone
tarui 注定小眾 還是得 js 生態的東西
|
37
beginor 2022-07-15 22:38:09 +08:00 via Android
游戏开发难道不考虑 unity3d
|
39
424778940 2022-07-15 22:57:58 +08:00
游戏 还要跨平台 难道不应该先考虑 unity 么
Qt 跨平台没问题 游戏就算了 |
40
immerink 2022-07-15 23:00:11 +08:00
使用 Kotlin 一把梭的 JetBrains/compose-jb ;使用 golang+前端技术的 wailsapp/wails 。
|
41
u823tg 2022-07-15 23:23:46 +08:00
@ysc3839 #38 Node.js for running the CLI (deno and pure rust are on the roadmap)
看下文档很难么。 你还是没仔细看过,我两个都没用过但是看文档这两个区别是 Interface Service Provider WRY Chromium Backend Binding Rust Node.js (ECMAScript) rust 为 wry 的后端,node.js 为 chromium 的后端。 剩下代码用 node.js rust deno 都可以。 闲的蛋疼可以自己弄 python 。php ,对接下 rust 封装的后端就行 |
42
NueXini OP 非常感谢大家的回复,我看推荐`Electron`和`Flutter`占据多数,其次是`Tauri`我会优先尝试他们两个,我虽然是游戏开发方向,但是偶尔也写写其他一些小工具,所以像 UE 和 Unity 也是我的必修课,会在往后的时间学习的
|
44
damowang777 2022-07-16 00:16:33 +08:00 via Android
Electron/Tauri 并没有完全的跨平台,而是把 web app 打包成 desktop app (给 Windows, Linux 和 MacOS )。Web App 直接打包成 Desktop App 通常是比不上 Native App ,需要做很多修改。所以到最后你会有两个 codebase ,学习过程也较为复杂。如果有些特化需求,还得自己写插件。。。(所以要学 web 和 desktop 的沟通方式等等)
Flutter 才是真正意义上的跨平台,但生态还在发展,虽然该有的都有,还有待完善。玩玩可以,不然每次更新都给你来个大改版。 你既然都学 Unity 了,直接用 Xamarin 不香吗?最近新的.Net MAUI (跨平台)就是基于 Xamarin 的。 其实上面几个大佬说的在理,客户端已死,大家都活在手机里了,Web 搞起来。按着脉络发展下去,再不久,手游都可以像原生环境,直接在 web 运行了。 |
45
minami 2022-07-16 00:18:54 +08:00
游戏开发不应该折腾 SDL 、GLFW 、Godot 、Unity3D 这些吗。。。如果只是自己写一些小程序,imgui 就挺好的了
|
46
ysc3839 2022-07-16 00:43:13 +08:00
@u823tg 我看了文档呀,文档里 JavaScript / TypeScript 部分完全没提到 Node.js 好吧?里面的 API 全都是 Tauri 自己在 JS 基础上搞的,根本不是 Node.js 。https://tauri.app/v1/api/js/modules/app
再者进行搜索也能找到一个 discussion: “Tauri doesn't use nodeJS for server stuff, in fact Tauri doesn't use a localhost server, you have to use Rust crates and redo your SQLite logic with the rust backend” https://github.com/tauri-apps/tauri/discussions/2592 你说的这句话“Node.js for running the CLI”我在文档里也找不到,而且 CLI 也指的是生成 Tauri app 的命令行工具吧?不是指最终生成的 app 中的后端。 至于你说“闲的蛋疼可以自己弄 python 。php ,对接下 rust 封装的后端就行”,那正好印证了我说的“目前 Rust 各类库没有 Node.js 那么完善,写起来可能会遇到一些坑,甚至要自己造轮子。”关键不是可不可行,而是没有现成的轮子,要用户自己去适配这些东西,那还不如直接用 Electron 呢。 |
47
secondwtq 2022-07-16 00:55:45 +08:00
快五十楼只有一个 imgui ...
|
48
ysc3839 2022-07-16 00:56:19 +08:00
@u823tg 我又去搜索了下,原来你提到的那几句话是在 README 中,官网 tauri.app 反而没有。
去看 CLI 的 README 可以看到“Written in Typescript and packaged such that it can be used with npm, pnpm, and yarn, this library provides a node.js runner for common tasks when using Tauri, like yarn tauri dev.” https://github.com/tauri-apps/tauri/tree/dev/tooling/cli/node 就只是个辅助脚本来的,根本不是 Electron 那样在 app 中用 Node.js 跑后端代码。 |
49
u823tg 2022-07-16 01:06:01 +08:00
@ysc3839 #46 额,我感觉你连这两原理都没搞懂。
tauri 完全可以用 nodejs 的生态啊 Electron 和 tauri 两个最根本的区别一个直接封装 chromium , 一个是把主流的浏览器内核做了个抽象层。 至于用啥语言没啥区别。 别人说的是 Tauri 需要 rust 生态的意思是类似于 Electron 之于 nodejs 的 c++插件 |
50
ysc3839 2022-07-16 01:27:16 +08:00
@u823tg
“tauri 完全可以用 nodejs 的生态啊” 那你说说现在怎么用?该不会是理论上可行,只是没人实现吧? 我说的问题就是没人实现,所以目前要用 Tauri 就必须会写 Rust ,但是目前 Rust 各类库没有 Node.js 那么完善,写起来可能会遇到一些坑,甚至要自己造轮子。还有学习新语言成本的问题。 在我看来 Electron 和 Tauri 最根本的区别是后端语言的区别,Electron 能火很大程度上是因为后端语言是 Node.js ,搞前端开发的人简单学习就能上手。在 Electron 之前的 node-webkit 用的就比较多了,曾经很火的代码编辑器 Brackets 也是选择 CEF+Node.js 。同期用 CEF 配合 C++方案的应用则非常少,目前我只知道网易云音乐和 Spotify 仍在持续开发。 |
51
u823tg 2022-07-16 01:39:06 +08:00
@ysc3839 #48 好我的大哥啊,给你说了后端语言用啥没关系。 上面再封装一层就可以了。人家也封装了 js api
最主要是你写的代码通过后端语言封装和界面去通信。 或者你可以去 github 搜搜肯定有用 Tauri 写的开源 app Tauri 这玩意真除了界面,其他都得 rust 。 这就成了 rust 社区一个玩具。没必要对标 Electron 。它不配 |
52
ysc3839 2022-07-16 01:46:36 +08:00
@u823tg
“给你说了后端语言用啥没关系” 问题是搞开发的人有关系,这就是我说的问题,需要用 Rust 写后端,那就得学习 Rust ,而且 Rust 本身的生态可能也不一定好,最终要实现某些功能可能没有现成的代码,还得自己造轮子。 感觉你一直再强调技术上可行,我当然知道技术上可行,但是实际开发还得看成本的。“最主要是你写的代码通过后端语言封装和界面去通信”,那你说说为啥用 CEF 配合 C++方案的应用那么少? |
53
u823tg 2022-07-16 02:07:20 +08:00
@ysc3839 #52 https://juejin.cn/post/7110842588852125710 自己去搜下这种教程。或者自己实际操作下。
都没用过,我大概搜了 CEF 只对 Chromium 做了精简和封装。提供最基本的。 Electron ( nodejs->Electron api ) cef (就提供了 JavaScript 和 C++互操作) 好多工作得开发者做。 你完全可以自己封装出来 Electron api 类似的,只不过绝大多数人没能力而已 Tauri Electron 这两个是对标的啊。 建议你文档看不明白,试试 Tauri 和 Electron ,实际操作下。 |
54
klo424 2022-07-16 08:22:59 +08:00
c#.NET
|
56
zxCoder 2022-07-16 12:34:16 +08:00
tauri
|
57
chuhemiao 2022-07-16 13:17:32 +08:00
先学好 C++和 Rust 吧, 其它的慢慢实践.
|
58
Roojay 2022-07-16 13:39:00 +08:00 via Android
推 tauri 的别坑新手了,这个现在生态不完善,做起来费时费力
|
59
lightjiao 2022-07-16 14:10:00 +08:00
我都用 Unity 做跨平台客户端开发的
然后 C# 最近推出了跨平台的 MAUI 可以了解一下 最后,目前最强的桌面跨平台开发平台是 QT (性能和兼容性),要加上移动端的话似乎是 Flutter 或者 Electron 这种基于 web 的(我没了解过)? |
60
Features 2022-07-16 15:33:00 +08:00
- 我精通各种跨平台框架
- Electron 还是 Flutter - Uniapp - 噗... |
61
tairan2006 2022-07-16 15:56:52 +08:00
Qt > Flutter > Electron
|
62
nicevar 2022-07-16 19:50:49 +08:00
真正想要做东西肯定是 Qt ,想要自己爽就 Electron ,把痛苦留给用户,Electron 只要是 c++/rust 有相应能用的软件,肯定就直接删除了,之前用 Electron 给一个软件做了个外壳,安装后 490M ,modules 就到 300M 。
|
63
FrankHB 2022-07-16 20:17:38 +08:00
要是实际项目,如果甲方有意见,你没本事洗甲方爸爸脑子,那就该用啥用啥,要么跑路撂担子。
自己玩倒是随便。反正知道这些东西的缺陷也都要轮一遍。(除了你已经知道的性能问题。)但是不建议没项目需求就浪费时间在具体一种上。 需要提醒的是,这里没给出项目背景就随便推荐的理由(什么生态……)多数不上道,你得多长点心眼。特别是不要遗漏不会对你的长期发展有好处,反而会锁死技术栈的风险。 其实有些重要问题不需要多熟练就能看出来,特别是你已经有很多不同基础技术打底的情况下。 比如性能问题……为什么会有? 嗯,很好,正好有人推荐 Flutter……就顺带有部分答案了。 https://github.com/dart-lang/language/issues/490 (1/1) 另外 imgui 这种画网页不鸟 DOM 一样不鸟 WIMP metophor 的 GUI 之耻就算没人提我也要比 Flutter 多黑一下的。当然,我不反对观摩一下所谓 immediate mode 的实现,这样才能理解它们如何拉胯。 |
64
xmsz 2023-04-18 22:17:31 +08:00
我最近需要开发一个 PC 端的套壳应用
首选 electron 生态好 也不用学些新东西 但是这玩意其实就是安装了一个浏览器,所以对于用户环境还是蛮尴尬的,大小还好,主要是内存占用 那优化就是用 tarui ,但是这玩意除了大小和内存变小,带来的更多的问题,比如生态,比如需要学习 rust ,比如有很多 webview2 的限制... 根本还是不能代替... 现在蛮卡壳的 |