小弟问一下各位大佬,跨平台技术现在怎么样了? 公司有一个需求:两个设备,一个是 window 平台,一个是安卓平台,想选型一个跨平台的技术,节省成本; 1.其实我的了解夸平台技术长远看并不会节省多少成本,维护成本较高; 2.两个平台只会运行一个程序不会安装其他任何程序,就是要做的这个; 3.了解过 elctron ,但是打包安卓不行,好像得改很多东西,才能打包,容易出现平台运行的程序出现 bug ,也就是 win 没事,安卓不行的情况; 4.flutter 怎么样了,但是学习一门语言或者招聘确实现阶段成本较高,也不好招人(公司在二线城市) 5.补充一下会机器会连接一些设备
小弟真心求各位大哥给点建议,应该怎么办;
1
lsk569937453 2023-06-28 15:21:17 +08:00
我记得没有技术能跨桌面端和移动端,flutter 桌面端存疑。
|
2
yazinnnn 2023-06-28 15:24:47 +08:00
compose-multiplatform
支持的平台 iOS (Alpha) Android (via Jetpack Compose) Desktop (Windows, MacOS, Linux) Web (Experimental) |
3
ferrum 2023-06-28 15:26:55 +08:00 via iPhone
Windows 用 Electron ,安卓用 Flutter 。
两个平台的差异性太大了,设计肯定不同,没必要用一套技术。 |
4
liyang5945 2023-06-28 15:28:10 +08:00
qt 可以,你可以搜下 GPXSee 这个软件,桌面端和安卓都有,代码在 github 开源的
|
5
dabbit 2023-06-28 15:28:21 +08:00
flutter 在桌面端主要问题还是官方不支持多窗口,但是社区已经有库实现了,可以看看 Desktop_multi_window 。连外设的话不太了解,没做过相关业务
|
6
Muniesa 2023-06-28 15:29:34 +08:00 via Android
flutter 的确可以,但是得看具体需要的插件跨不跨平台,另外就是在 Windows 上用触摸的 UI 会比较奇怪
|
7
lujiaxing 2023-06-28 15:30:34 +08:00
@lsk569937453
Uno Platform ( https://platform.uno/) Open-source UI Platform for building single-codebase applications for Windows, iOS, Android, WebAssembly, macOS, and Linux Avalonia UI ( https://avaloniaui.net) Avalonia is a powerful framework that enables developers to create cross-platform application using .NET. It uses its own rendering engine to draw UI controls, ensuring consistent appearance and behavior across various platforms, including Windows, macOS, Linux, Android, iOS and WebAssembly Electron + Cordova ( https://cordova.apache.org) Mobile apps with HTML, CSS & JS Target multiple platforms with one code base Free and open source 简直不要太多... |
8
sentinelK 2023-06-28 15:31:58 +08:00
主要问题在于说,windows PC 的操作逻辑以及同屏信息量与 Android 的操作习惯截然相反。
如果两个端用不同的界面逻辑代码,只共用 IO 和业务部分的话,跨平台的意义是否还有这么大。 如果抛去产品设计的问题,依然选择跨平台的话,flutter 是可以胜任的。 |
9
jones2000 2023-06-28 15:32:35 +08:00 10
web 页面套壳。
|
10
shalingye 2023-06-28 15:33:53 +08:00
electron 做过一点应用,感觉能跨平台的业务基本都是前端,不如就用 H5 解决了。如果要调用系统接口啥的,还是得根据不同平台重新开发。
|
11
lbllol365 2023-06-28 15:34:03 +08:00
本职 Java 后端,在学 Flutter ,用它做了个 windows 平台的 demo ,flutter build windows 打出 release 包,双击 exe 运行,好多次都是在后台运行,不显示界面,得多点运行几次才行,搞得后台全是这个 demo 的进程。借楼问一下有没有懂的大佬
|
12
dreasky 2023-06-28 15:35:50 +08:00
flutter 现在桌面端也勉强可以 web 才是最省成本
|
13
lujiaxing 2023-06-28 15:37:18 +08:00
@shalingye 对. 其实 Pornhub 的方式是最最合适的.
一个可以放在应用抽屉的快捷方式. 用户点击之后打开的是 chrome. 里面全 H5 展现, 只要网络速度够快完全用起来跟原生 APP 没有任何的区别. 只不过大部分国内企业做 app 的根本目的并不是提供服务, 而是收集数据喂给自己的广告营销平台. 这点这种 H5 就完全没办法做了. |
14
qingting 2023-06-28 15:39:34 +08:00 1
@lbllol365
flutter 引擎有 BUG , 在 runner 项目的 flutter_window.cpp 里面修改代码 // 添加以下代码 this->Show(); // 注释以下代码 // flutter_controller_->engine()->SetNextFrameCallback([&]() { // this->Show(); // }); |
17
totoro52 2023-06-28 15:46:06 +08:00 1
真正的跨平台:Chromium
|
18
murmur 2023-06-28 15:46:14 +08:00
h5 才是王道,至少国内是这样,微信小程序体量爆杀各种跨端技术
|
19
felix0liu 2023-06-28 15:46:21 +08:00 1
微软的 MAUI 框架,或者用 Unity 也可以,虽然 Unity 是用来开发游戏的,但是单纯用它的 UI 框架也可以当 APP 开发
|
20
NoManPlay 2023-06-28 15:48:12 +08:00 2
Tauri 可以关注一下,现在支持 WIndows+MacOS+Linux,2.0 的 Alpha 版本支持了 iOS 和 Android
|
22
NoManPlay 2023-06-28 15:49:58 +08:00
|
23
AaronLee01 2023-06-28 15:52:21 +08:00
UI 设计之类的都不一样,可以用 KotlinMultiplatform 实现 Model 层 和 业务层 的跨平台,UI 层用各自的技术实现即可
|
24
weilanwl 2023-06-28 15:57:40 +08:00 1
试试 pwa? 不知道实际业务场景允不允许? pwa 是成本最低的了。
|
25
realpg 2023-06-28 16:26:40 +08:00 1
你要找的是不是:
网页 |
26
nikenidage1 2023-06-28 16:31:59 +08:00 1
考虑下 avalonia , 可以看他们的 showcase
https://avaloniaui.net/Showcase |
27
karott7 2023-06-28 16:32:45 +08:00
可以结合 #3 和 #9 的想法,写一套响应式 web ,然后用 electron 和 flutter 套壳
|
28
DOLLOR 2023-06-28 16:40:37 +08:00
固定设备的话,windows 平台用 electron ,android 平台用 webview 。
这样可以共用 UI 交互部分,然后为各自平台开发底层部分。 |
29
unclemcz 2023-06-28 16:57:02 +08:00 via Android
win 装一个安卓虚拟机。
|
30
meteor957 2023-06-28 16:57:14 +08:00
react-native
|
31
debuggerx 2023-06-28 17:07:52 +08:00 via Android
我自己拿 flutter 做的小工具(远程系统性能监视器)可以在手机和电脑上完美运行使用,体验一致。
技术上可行,关键看你要做的东西本身能不能同时适应移动端和桌面端 |
32
UFc8704I4Bv63gy2 2023-06-28 17:15:32 +08:00
@liyang5945 qt 要开源,商业授权非常昂贵,设计编码 qa 一起差不多又够一个程序员工资了,这仅限桌面和手机,嵌入式更贵,分发还要收钱
可以选择给聪明的程序员加工资,让他们解决这个问题 |
33
sunnysab 2023-06-28 18:13:28 +08:00
flutter 拿来跨端没什么问题,上手难度不高的,可以通过招 Java 骗进来再改学 dart (逃
一种方式是像前面说的套壳 Webview ,但是移动应用平台(尤其苹果)不太喜欢开发者这么搞,太“动态”容易使他们审核机制失效。 另一种是用原生的方案写 UI ,把逻辑放到动态链接库中,大部分软件是这样做的。 |
34
israinbow 2023-06-28 18:27:25 +08:00
安卓跨平台就没有好的方案, 开发维护一起火葬场, 最好的办法就是不夸写原生. 其他跨平台有邪派 tauri, 我全套 rust 写的 web 服务连 kernel 都能 OTA, OTG; 虽然安卓也支持 rust, 我技术验证过继续全套 rust 也未尝不可.
坏处就是招不到人, 至于学习成本高, 计算机基础知识掌握牢固的我不信他一个月内写不明白 rust. |
35
janus77 2023-06-28 18:33:58 +08:00
你都跨 windows+安卓了,那只有 flutter 可用了。。。。
|
36
iorilu 2023-06-28 18:35:37 +08:00 2
我研究了一通, 反正桌面端用的 pyside6 , 其实就是 pyqt , 跨平台基本一套代码就够了, 可能有很小改动针对不同 os
|
37
xiangyuecn 2023-06-28 18:47:01 +08:00
除了 UI 部分,其他的不存在什么真跨平台,还不得每个平台单独写适配业务的代码
UI 完全可以用 h5 搞,简单省事,电脑、手机 分别适配写好本地接口,统一给 h5 撸 |
38
andytao 2023-06-28 20:29:52 +08:00
复杂界面,桌面端和手机端真的无法共用,需要在界面层做平台适配,业务逻辑可以尝试共用;
|
39
IDAEngine 2023-06-28 20:33:48 +08:00
Jsbridge
|
40
renmu 2023-06-28 20:42:08 +08:00 via Android
web 端 pc 和 h5 都要单独做两套,就别想着跨了
|
41
darkengine 2023-06-28 20:47:22 +08:00
要不做个在设备上运行的服务端,用 web 实现客户端
|
42
x77 2023-06-28 21:04:21 +08:00
刚好有个支持 Android 和 Windows 的 Flutter App ,不是推广,主要看看图,功能实现和 UI 都没问题。
https://github.com/xinlake/privch-client-flutter |
43
Mithril 2023-06-28 21:25:50 +08:00
简单的界面可以用 QT ,Avalonia 等等直接做,效果也还行。
有复杂交互的最好还是直接套 Web ,你招个前端开发远比招个能用这些玩意做出来复杂控件的容易得多。 |
44
flyqie 2023-06-28 21:29:31 +08:00 via Android
移动端跟 PC 端做跨平台。。
理论上 flutter 可以搞。 实际上。。很麻烦,因为这俩平台操作逻辑完全是不一样的。 |
45
duke807 2023-06-28 21:31:21 +08:00 via Android
先说你设备是什么接口,网络、usb 、串口?
usb 的话,是 hid 、cdc 、usb 网络? |
46
qiwuzan123 2023-06-28 21:37:19 +08:00
没有这种的吧。。
|
47
placeholder 2023-06-28 21:50:32 +08:00
只有 win 和安卓的话建议还是分开独立开发,不要合在一起,
如果跨平台是刚需的话,建议看看 .net MAUI 哈哈哈哈,不过学微软的东西总是怕突然砍 |
48
ac169 2023-06-28 21:52:20 +08:00
|
49
roundgis 2023-06-28 22:57:13 +08:00 via Android
手機 pc 是兩種不同的操作方式
|
50
Friday2333 2023-06-28 23:05:13 +08:00
quasar 了解下
|
51
xylxAdai 2023-06-29 01:27:27 +08:00
flutter 、electron 、qt 各类跨端我都详细用过,web 、android 、ios 、win 我都深入写过至少万行的代码。我的推荐是,直接上 webview 套壳,没有任何跨端方案比 web 更好。
|
52
SolidZORO 2023-06-29 02:09:30 +08:00 via iPhone
webview 套 pwa ,完美。跨任何端。如果需要小程序,用 taro 可获得 小程序+pwa 双赢。为什么是 pwa 不是 h5 ,因为 webview 套 pwa 加载速度基本是瞬间的,看不出 loading 。
|
54
dcsuibian 2023-06-29 02:37:57 +08:00
我觉得 windows 和安卓,应该要的是响应式设计技术,这可就难了
|
55
wellerman 2023-06-29 06:46:27 +08:00
React Native
|
56
zhennann 2023-06-29 06:57:27 +08:00
到目前为止,只有 CabloyJS 全栈框架实现了真正意义的“一次开发,到处运行”的跨端跨平台理念。CabloyJS 内部实现了一套 pc=mobile+pad 的自适应布局机制,因此,只需一套代码,即可同时跨端 PC 和 Mobile ,并且 Mobile 端是接近原生体验。可以参见在线演示: https://cabloy.com/zh-cn/articles/demo-online2.html
|
57
WildCat 2023-06-29 06:57:56 +08:00
|
58
zjsxwc 2023-06-29 06:59:50 +08:00 via Android
同一套 js 代码,套 electron 与 uniapp
|
59
tiezlk443 2023-06-29 07:19:50 +08:00 via Android
qt 写过,搬项目遇到个野指针,改了下就好了,正常跑,只了解过 electron ,感觉都是浏览器,内存占用有点大
|
60
tsanie 2023-06-29 08:24:49 +08:00 1
.NET MAUI
|
61
dj721xHiAvbL11n0 2023-06-29 08:39:06 +08:00
就俩个平台用夸平台是不是有点,,,话说既然都夸平台了,为什么不去适配苹果?老板怎么想的
|
62
Narcissu5 2023-06-29 08:52:53 +08:00
elctron 。。。。。能不能把名词拼对。
如果是 PC 之间或者移动平台之间跨还好说,问题 PC 和移动端之间,UI 组件交互方式都不相同,真没多少可以复用的地方 @x2420390517 看第二点显然是专用设备,买台一万多的电脑就跑一个应用?硬件多半还是定制的,你觉得苹果会给你定制? |
63
yalin 2023-06-29 08:54:30 +08:00
各个大佬公司之间的战争
|
64
p1gd0g 2023-06-29 09:44:09 +08:00
unity [doge]
|
65
VictorJing94 2023-06-29 09:52:23 +08:00 1
.net...
|
66
iOCZ 2023-06-29 09:57:46 +08:00
只是 UI 跨端而已,其他都需要 bridge native
|
67
dudubaba 2023-06-29 11:05:09 +08:00
渲染层用 js ,然后套壳 html
|
68
luoway 2023-06-29 11:43:47 +08:00
没有额外需求说明的话,最低成本方案是写 PC 、H5 两个页面
有了非原生不可的需求再考虑 h5 套壳,还是跨平台框架原生开发 |
69
DCELL 2023-06-29 12:13:27 +08:00
记住:能用 JS 的解决的,最终都会被 JS 解决
|
70
maoyikun 2023-06-29 12:28:59 +08:00
compose-multiplatform
|
71
Ixizi 2023-06-29 13:13:13 +08:00
不得不推荐 OneKey Wallet 了,这个项目用 Electron + RN 实现了大部分平台的跨平台,并且开源
https://github.com/OneKeyHQ/app-monorepo |
72
robo 2023-06-29 13:55:58 +08:00
楼上好多人提到了 Electron ,最近了解到了 tauri ,想知道 Electron 和 tauri 那个比较好
|
73
dj721xHiAvbL11n0 2023-06-29 13:56:21 +08:00
@Narcissu5 那有意思了,安卓你也去定制硬件是吧,然后自己去搞系统适配是吧。
|
75
lisongeee 2023-06-29 14:01:32 +08:00
compose-multiplatform 和 Electron 打包逻辑一样
每个 compose-multiplatform Desktop App 都自带一个 jvm 目前 compose-multiplatform 还不支持编译到 kotlin-native |
76
Bijiabo 2023-06-29 14:06:05 +08:00
|
77
mmdsun 2023-06-29 14:09:00 +08:00
|
78
mogg 2023-06-29 14:30:18 +08:00
@Bijiabo 复杂业务用跨平台 UI 框架是伪需求吧
感觉比较合理的方式应该是 逻辑层用平台无关的技术(比如编译到 wasm ),UI 还是用原生 说实话我感觉 跨平台带来的复杂度 已经比大部分业务逻辑的复杂度高了( |
79
hokori 2023-06-29 14:49:36 +08:00
qt 是可以的 但是开发成本肯定是大的
浏览器那种前端打包也是可以,开发成本底。 |
80
ryan4290 2023-06-29 15:09:35 +08:00
客户端已经死了,ok ?
|
81
hui9000 OP @x2420390517 是这样设备资金投入太多了,设备大概要好几千台,很大的一笔投入
|
82
Bijiabo 2023-06-29 22:31:17 +08:00
|
83
SekiBetu 2023-06-30 17:57:57 +08:00
electron 元年
|
84
datafeng 2023-06-30 22:23:23 +08:00
如果电脑同时开了几个 electron 打包的软件不得哭?
|