• 请不要在回答技术问题时复制粘贴 AI 生成的内容
changrui0608
V2EX  ›  程序员

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

  •  
  •   changrui0608 · Jun 13, 2018 · 15464 views
    This topic created in 3069 days ago, the information mentioned may be changed or developed.
    考虑做个小工具啥的,应用复杂度应该很低,不限编程语言

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

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

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

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

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

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

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

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

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

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

    不过缺点就是生态差,没有成熟 UI 库。平台这么多,开发调试起来非常费力。
    jsq2627
    jsq2627
    PRO
    Jun 14, 2018
    76
    @shijingshijing #36
    一种是 Mono WinForm
    一种是 Xamarin Forms 的 GTK# backend
    ZhLTE
    ZhLTE
    Jun 14, 2018
    77
    xamarin.Forms
    zijung
    zijung
    Jun 14, 2018
    78
    @missdeer 然后 Deepin 现在转了似乎是 Go + C++ 了
    hizoubin
    hizoubin
    Jun 14, 2018
    79
    @murmur vscode 复杂度还不够吗?我感觉 electron 足够题主要求了
    naver1
    naver1
    Jun 14, 2018
    80
    C#。nodejs 还是算了吧,拒绝 js 不务正业!
    AlphaGL
    AlphaGL
    Jun 14, 2018
    81
    javascript 一统天下。
    nowheretogogo
    nowheretogogo
    Jun 14, 2018
    82
    也就 Xamarin 能撑起来
    defunct9
    defunct9
    Jun 14, 2018
    83
    为什么没人说 meteor ?!,这个是真的 PC/IOS/Android 三位一体。
    menc
    menc
    Jun 14, 2018
    84
    @shjanken 泰罗是奥特之子,当然是最厉害的奥特曼,看装备都比别人多很多的
    murmur
    murmur
    Jun 14, 2018
    85
    @hizoubin 问题是 vscode 开发者是微软,能把 electron 用的这么牛逼一般开发者做不到吧
    alexzhou
    alexzhou
    Jun 14, 2018
    86
    js 和 c++
    iX
    iX
    Jun 14, 2018
    89
    说的不就是 Delphi 么。。。
    iX
    iX
    Jun 14, 2018
    90
    还有.net 也可以( xamarin )
    diyisoft
    diyisoft
    Jun 15, 2018 via iPhone
    91
    @F1024 去认真的了解了解:)
    xiaoqiang730730
    xiaoqiang730730
    Jun 15, 2018
    92
    https://github.com/mimecorg/vuido 这个东西了解下
    bakujin
    bakujin
    Jun 15, 2018
    93
    @jsq2627 为什么我家 vs17 的 Xamarin.Forms 好像只 iOS 和 Android,没看到 macOS。。。 用 VS for Mac 也没看到支持 macOS 的 Xamarin.Forms。。。
    bakujin
    bakujin
    Jun 15, 2018
    95
    有 dotnet 大佬能对比下 Xamarin,Xamarin.Forms,Mono GTK#,Avalonia,platform.uno 吗
    cjw1115
    cjw1115
    Jun 15, 2018
    96
    Xamarin.Forms 了解一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1429 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 148ms · UTC 16:11 · PVG 00:11 · LAX 08:11 · JFK 11:11
    ♥ Do have faith in what you're doing.