changrui0608
V2EX  ›  程序员

有没有一套代码通吃 PC、安卓、iOS 的客户端技术栈...

By changrui0608 at 2018 年 6 月 13 日 · 15334 次点击
考虑做个小工具啥的,应用复杂度应该很低,不限编程语言

我大概听过 QT 能跨平台,但实际上构建可能移动、PC 要分别调?而且 QT 做移动似乎用的人很少啊
然后各种基于 JavaScript 的技术让我有点乱,RN 和 Weex 似乎无视了 PC 端?

总之求大佬指路吧
96 条回复  •  2018-06-15 12:29:53 +08:00
tinycold
   1
tinycold  
   2018 年 6 月 13 日 via Android
Node 在桌面端也有 Electron。
zhujian198
   2
zhujian198  
   2018 年 6 月 13 日
nodejs
swuzjb
   3
swuzjb  
   2018 年 6 月 13 日
前两天京东是不是开源了一个 啥的
flyingfz
   4
flyingfz  
   2018 年 6 月 13 日   ❤️ 2
必须 Cordova 啊 。
EvilCult
   5
EvilCult  
   2018 年 6 月 13 日   ❤️ 1
@swuzjb
顺便回楼主

京东开发的是奥特曼(误)............是.........Taro.........

不过是说 6 月底猜支持 rn,现在只有微信小程序和 h5
flyingfz
   6
flyingfz  
   2018 年 6 月 13 日
哦, 不好意思, 貌似 cordova 搞不来 PC . 它支持的 平台包括: ios, android

http://cordova.apache.org/docs/en/8.x/guide/support/index.html
razor1895
   7
razor1895  
   2018 年 6 月 13 日   ❤️ 3
微软开源 reactxp 了解一下?同时还有 react-native-windows
ptrees
   8
ptrees  
   2018 年 6 月 13 日
我知道 kivy 可以,用 python 写的,但是好不好用就不敢打包票了...
pezy
   9
pezy  
   2018 年 6 月 13 日 via iPhone
最接近实现这个需求的就是基于 v8 的客户端技术了,浏览器已经通吃了几乎全部平台,基于它的应用自然符合要求了。
linnn2
   10
linnn2  
   2018 年 6 月 13 日 via Android
如果浏览器的功能能够满足你的软件的话可以看看 PWA
applehater
   11
applehater  
   2018 年 6 月 13 日 via iPhone
react native for iOS Android Windows macOS 支持 WPF 甚至可以运行在 Xbox 和树莓派。
edsheeran
   12
edsheeran  
   2018 年 6 月 13 日 via iPhone
node
Torpedo
   13
Torpedo  
   2018 年 6 月 13 日
@flyingfz rn 也有 fork 的 pc 端,也有 mac os 端。但是我觉得还是浏览器+原生交互的好。cordova 在移动端,pc 用 electron 就挺好吧
CFO
   14
CFO  
   2018 年 6 月 13 日 via Android
ionic 了解一下
WildCat
   15
WildCat  
   2018 年 6 月 13 日
Torbolinks iOS/Android/Web
sampeng
   16
sampeng  
   2018 年 6 月 13 日
原则上 c++封装业务逻辑。然后根据平台套壳(可以 QT 解决 pc 的,其他的用 rn )。比一套通吃的方案强 100 倍。
一套通吃应该理论上做不到,编译器复杂度太高了,完全不同的芯片,完全不同的架构,完全不同的 api。
rb6221
   17
rb6221  
   2018 年 6 月 13 日
为什么你的「小工具」需要有全平台的需求
MonoLogueChi
   18
MonoLogueChi  
   2018 年 6 月 13 日 via Android   ❤️ 1
C#
agagega
   19
agagega  
   2018 年 6 月 13 日
Qt 好像可以,可惜大家都不用(
qnwx1
   20
qnwx1  
   2018 年 6 月 13 日 via iPhone
打扰了 php
WildCat
   21
WildCat  
   2018 年 6 月 13 日
@sampeng 封装业务逻辑还可以是 C/Golang 甚至 Rust/Kotlin native
liuzhedash
   22
liuzhedash  
   2018 年 6 月 13 日
@MonoLogueChi #18
想了想好像就 C#通吃
frozenwood
   23
frozenwood  
   2018 年 6 月 13 日 via Android   ❤️ 1
c #,xamarin
yhzwy
   24
yhzwy  
   2018 年 6 月 13 日
qt 不行吗。。
jowuIM
   25
jowuIM  
   2018 年 6 月 13 日
Electron!
realpg
   26
realpg  
   2018 年 6 月 13 日
html
目测你说的每个平台都有浏览器
whypool
   27
whypool  
   2018 年 6 月 13 日
JS 大法可以通吃
vitalis
   28
vitalis  
   2018 年 6 月 13 日
Qt 跨平台,而且代码设计的非常漂亮,可惜是上一代的技术了。这个时代的话,用 Electron、Cordova 吧。
nicevar
   29
nicevar  
   2018 年 6 月 13 日   ❤️ 2
小工具直接 Qt 就行了,android、iOS 都支持,win/linux/mac 就不用说了,不用 widget 那套,考虑用 qml 来做
如果是复杂的程序,没有什么跨平台方案能做到,坑太多了,如果有人跟你说有,那就是让你跳坑
picture2200
   30
picture2200  
   2018 年 6 月 13 日 via Android
angular 支持 uwp,不知道符不符合要求?
artandlol
   31
artandlol  
   2018 年 6 月 13 日 via iPhone
Pwa
chengzi
   32
chengzi  
   2018 年 6 月 13 日   ❤️ 2
这不就是 xamarin 吗, 除了这个还有谁做的像个样子的。
楼上一堆都是 web 吧,其实简单的东西一个 html5 足以,简单实用。
如果真想客户端,可以 xamarin 来一套。传送门 https://www.xamarin.com
newmlp
   33
newmlp  
   2018 年 6 月 13 日
Qt 啊,
Tink
   34
Tink  
   2018 年 6 月 13 日 via iPhone
qt 可以
zyqzyq08
   35
zyqzyq08  
   2018 年 6 月 13 日
kivy 可以用,但是打包环境比较麻烦。感觉适合个人玩,不太适合商业项目
shijingshijing
   36
shijingshijing  
   2018 年 6 月 14 日
比较好奇楼上说 C#写的应用能在 Linux 上怎么运行?特制 desktop application 不是 web application
loqixh
   37
loqixh  
   2018 年 6 月 14 日
@shijingshijing 可以的.........winform 程序都能跑
FeifeiJin
   38
FeifeiJin  
   2018 年 6 月 14 日 via Android
@flyingfz ionic , cordova。
但这东西也是一堆坑,谁用谁知道。
FeifeiJin
   39
FeifeiJin  
   2018 年 6 月 14 日 via Android
@flyingfz cordova 支持 uwp 吧。那么走 uwp 这条路来实现 pc 怎么样?
em70
   40
em70  
   2018 年 6 月 14 日 via Android
有这样的技术,但强烈建议你不要走捷径,最后都是浪费时间
iMakar
   41
iMakar  
   2018 年 6 月 14 日 via Android
c# 可以支持安卓和 iOS 的应用,桌面平台就更不用说了
GG668v26Fd55CP5W
   42
GG668v26Fd55CP5W  
   2018 年 6 月 14 日 via iPhone   ❤️ 1
flutter,不过感觉不太成熟。
flynaj
   43
flynaj  
   2018 年 6 月 14 日 via Android
后端用 golang,前端用 HTML5,其实就是 bs 结构
Jeepeng
   44
Jeepeng  
   2018 年 6 月 14 日
fancyhan
   45
fancyhan  
   2018 年 6 月 14 日
Electron,electron 目前的问题是新窗口需要一秒钟初始化,无论多大规模

未来的 killer 项目,Fultter
fancyhan
   46
fancyhan  
   2018 年 6 月 14 日   ❤️ 1
electron,skeype 和 slack 都是用这个包的,特定场景效果很好,我给你讲个项目,某公司用 qt 和 nodejs 同时实现了一个类似钉钉的东西,结果 qt 的开发人数是前端的十倍,性能缺远低于 nodejs 包个壳子的,内存占用高三倍,cpu 耗电也高几倍。有时候糟糕的 cpp 程序员真不如一个聪明的 v8 js 引擎
fancyhan
   47
fancyhan  
   2018 年 6 月 14 日
flutter 现在官方支持 react native,react native 支持 pc,但是 flutter 目前是 beta,不建议商业化大规模使用,相比坑不少
ericgui
   48
ericgui  
   2018 年 6 月 14 日
你们前端圈真乱。。。。。

正在学 vue,然后你们一堆 flutter,reactxp,都又出来了

这潮流太快了。。。。
shjanken
   49
shjanken  
   2018 年 6 月 14 日 via Android
@EvilCult 坚决不用,他们居然说泰罗是最强的奥特曼,不能忍
jsun
   50
jsun  
   2018 年 6 月 14 日
RN
fishcat
   51
fishcat  
   2018 年 6 月 14 日
看完发现说 RN 的比较多,说 Xamarin 的比较少,话说 Xamarin 确实可以。
Clarencep
   52
Clarencep  
   2018 年 6 月 14 日
RN+1
murmur
   53
murmur  
   2018 年 6 月 14 日
基于 electron 就算了 electron 目前最靠谱的应用居然是个超级记事本 还是微软出品
ysjiang4869
   54
ysjiang4869  
   2018 年 6 月 14 日
顶一下 C#
ebingtel
   55
ebingtel  
   2018 年 6 月 14 日
google 的 flutter 框架 也能吃透……
qq976739120
   56
qq976739120  
   2018 年 6 月 14 日
JS 肯定可以,如果现在不可以,那就再等等 :)
isbase
   57
isbase  
PRO
   2018 年 6 月 14 日 via Android
jennifertxwoodma
   58
jennifertxwoodma  
   2018 年 6 月 14 日
portable C 了解一下
missdeer
   59
missdeer  
   2018 年 6 月 14 日
@flynaj 好像 Deepin Linux 的桌面环境 DDE 就是这种方案,事实证明是个大坑
ai277014717
   60
ai277014717  
   2018 年 6 月 14 日
H5 把比较成熟
auroraccc
   61
auroraccc  
   2018 年 6 月 14 日
@murmur electron 也没那么差吧 , '超级记事本' 和微软也不差吧
maxzhang1985
   62
maxzhang1985  
   2018 年 6 月 14 日 via Android
你说的需求要编译成全平台原生的只有 Xamarin 可以满足你
dhssingle
   63
dhssingle  
   2018 年 6 月 14 日
Xamarin 怎么说也是原生的,总比那一系列的 js 方案靠谱点。
l9rw
   64
l9rw  
   2018 年 6 月 14 日
一套代码能通吃所有端的只有 html 了吧,只要不是命令行操作系统就有浏览器
huiyadanli
   65
huiyadanli  
   2018 年 6 月 14 日
Xamarin
hjc4869
   66
hjc4869  
   2018 年 6 月 14 日 via iPhone
@shijingshijing Xamarin 有 GTK backend,虽然还是 WIP
CoderGeek
   67
CoderGeek  
   2018 年 6 月 14 日
你说的像这个 https://taro.aotu.io
salamanderMH
   68
salamanderMH  
   2018 年 6 月 14 日   ❤️ 1
精通一个领域就可以了
zhouyg
   69
zhouyg  
   2018 年 6 月 14 日
js 大法,连硬件都支持
ivydom
   70
ivydom  
   2018 年 6 月 14 日
手机用 react native 或者 ionic
PC 用 electron
Web 用 ng、react 或 vue

以上都基于 JavaScript,小程序也是 js
diyisoft
   71
diyisoft  
   2018 年 6 月 14 日
delphi 最新版适合你
uleh
   72
uleh  
   2018 年 6 月 14 日
我觉得,lz 说的可不就是 HTML + JS 么
natforum
   73
natforum  
   2018 年 6 月 14 日
golang
F1024
   74
F1024  
   2018 年 6 月 14 日
@diyisoft delphi 还没死透吗
jsq2627
   75
jsq2627  
PRO
   2018 年 6 月 14 日
嗯... 说 Xamarin 的人不多呀

Xamarin Forms 支持 iOS/Android/macOS/GTK#/WPF/UWP/Tizen,属于 write once run anywhere 类型,不是 learn once run anywhere,而且对原生能力的调用比 React Native 方便多了,不用自行封装 module 就可以直接调用平台 API

不过缺点就是生态差,没有成熟 UI 库。平台这么多,开发调试起来非常费力。
jsq2627
   76
jsq2627  
PRO
   2018 年 6 月 14 日
@shijingshijing #36
一种是 Mono WinForm
一种是 Xamarin Forms 的 GTK# backend
ZhLTE
   77
ZhLTE  
   2018 年 6 月 14 日
xamarin.Forms
zijung
   78
zijung  
   2018 年 6 月 14 日
@missdeer 然后 Deepin 现在转了似乎是 Go + C++ 了
hizoubin
   79
hizoubin  
   2018 年 6 月 14 日
@murmur vscode 复杂度还不够吗?我感觉 electron 足够题主要求了
naver1
   80
naver1  
   2018 年 6 月 14 日
C#。nodejs 还是算了吧,拒绝 js 不务正业!
AlphaGL
   81
AlphaGL  
   2018 年 6 月 14 日
javascript 一统天下。
nowheretogogo
   82
nowheretogogo  
   2018 年 6 月 14 日
也就 Xamarin 能撑起来
defunct9
   83
defunct9  
   2018 年 6 月 14 日
为什么没人说 meteor ?!,这个是真的 PC/IOS/Android 三位一体。
menc
   84
menc  
   2018 年 6 月 14 日
@shjanken 泰罗是奥特之子,当然是最厉害的奥特曼,看装备都比别人多很多的
murmur
   85
murmur  
   2018 年 6 月 14 日
@hizoubin 问题是 vscode 开发者是微软,能把 electron 用的这么牛逼一般开发者做不到吧
alexzhou
   86
alexzhou  
   2018 年 6 月 14 日
js 和 c++
edwinxe2v
   87
edwinxe2v  
   2018 年 6 月 14 日
edwinxe2v
   88
edwinxe2v  
   2018 年 6 月 14 日
iX
   89
iX  
   2018 年 6 月 14 日
说的不就是 Delphi 么。。。
iX
   90
iX  
   2018 年 6 月 14 日
还有.net 也可以( xamarin )
diyisoft
   91
diyisoft  
   2018 年 6 月 15 日 via iPhone
@F1024 去认真的了解了解:)
xiaoqiang730730
   92
xiaoqiang730730  
   2018 年 6 月 15 日
https://github.com/mimecorg/vuido 这个东西了解下
bakujin
   93
bakujin  
   2018 年 6 月 15 日
@jsq2627 为什么我家 vs17 的 Xamarin.Forms 好像只 iOS 和 Android,没看到 macOS。。。 用 VS for Mac 也没看到支持 macOS 的 Xamarin.Forms。。。
bakujin
   95
bakujin  
   2018 年 6 月 15 日
有 dotnet 大佬能对比下 Xamarin,Xamarin.Forms,Mono GTK#,Avalonia,platform.uno 吗
cjw1115
   96
cjw1115  
   2018 年 6 月 15 日
Xamarin.Forms 了解一下
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 234ms · 3.9.8.5