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

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

  •  
  •   changrui0608 · Jun 13, 2018 · 14910 views
    This topic created in 2893 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
        1
    tinycold  
       Jun 13, 2018 via Android
    Node 在桌面端也有 Electron。
    zhujian198
        2
    zhujian198  
       Jun 13, 2018
    nodejs
    swuzjb
        3
    swuzjb  
       Jun 13, 2018
    前两天京东是不是开源了一个 啥的
    flyingfz
        4
    flyingfz  
       Jun 13, 2018   ❤️ 2
    必须 Cordova 啊 。
    EvilCult
        5
    EvilCult  
       Jun 13, 2018   ❤️ 1
    @swuzjb
    顺便回楼主

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

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

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

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

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

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

    以上都基于 JavaScript,小程序也是 js
    diyisoft
        71
    diyisoft  
       Jun 14, 2018
    delphi 最新版适合你
    uleh
        72
    uleh  
       Jun 14, 2018
    我觉得,lz 说的可不就是 HTML + JS 么
    natforum
        73
    natforum  
       Jun 14, 2018
    golang
    F1024
        74
    F1024  
       Jun 14, 2018
    @diyisoft delphi 还没死透吗
    jsq2627
        75
    jsq2627  
       Jun 14, 2018
    嗯... 说 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  
       Jun 14, 2018
    @shijingshijing #36
    一种是 Mono WinForm
    一种是 Xamarin Forms 的 GTK# backend
    ZhLTE
        77
    ZhLTE  
       Jun 14, 2018
    xamarin.Forms
    zijung
        78
    zijung  
       Jun 14, 2018
    @missdeer 然后 Deepin 现在转了似乎是 Go + C++ 了
    hizoubin
        79
    hizoubin  
       Jun 14, 2018
    @murmur vscode 复杂度还不够吗?我感觉 electron 足够题主要求了
    naver1
        80
    naver1  
       Jun 14, 2018
    C#。nodejs 还是算了吧,拒绝 js 不务正业!
    AlphaGL
        81
    AlphaGL  
       Jun 14, 2018
    javascript 一统天下。
    nowheretogogo
        82
    nowheretogogo  
       Jun 14, 2018
    也就 Xamarin 能撑起来
    defunct9
        83
    defunct9  
       Jun 14, 2018
    为什么没人说 meteor ?!,这个是真的 PC/IOS/Android 三位一体。
    menc
        84
    menc  
       Jun 14, 2018
    @shjanken 泰罗是奥特之子,当然是最厉害的奥特曼,看装备都比别人多很多的
    murmur
        85
    murmur  
       Jun 14, 2018
    @hizoubin 问题是 vscode 开发者是微软,能把 electron 用的这么牛逼一般开发者做不到吧
    alexzhou
        86
    alexzhou  
       Jun 14, 2018
    js 和 c++
    edwinxe2v
        88
    edwinxe2v  
       Jun 14, 2018
    iX
        89
    iX  
       Jun 14, 2018
    说的不就是 Delphi 么。。。
    iX
        90
    iX  
       Jun 14, 2018
    还有.net 也可以( xamarin )
    diyisoft
        91
    diyisoft  
       Jun 15, 2018 via iPhone
    @F1024 去认真的了解了解:)
    xiaoqiang730730
        92
    xiaoqiang730730  
       Jun 15, 2018
    https://github.com/mimecorg/vuido 这个东西了解下
    bakujin
        93
    bakujin  
       Jun 15, 2018
    @jsq2627 为什么我家 vs17 的 Xamarin.Forms 好像只 iOS 和 Android,没看到 macOS。。。 用 VS for Mac 也没看到支持 macOS 的 Xamarin.Forms。。。
    bakujin
        95
    bakujin  
       Jun 15, 2018
    有 dotnet 大佬能对比下 Xamarin,Xamarin.Forms,Mono GTK#,Avalonia,platform.uno 吗
    cjw1115
        96
    cjw1115  
       Jun 15, 2018
    Xamarin.Forms 了解一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1229 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 248ms · UTC 17:42 · PVG 01:42 · LAX 10:42 · JFK 13:42
    ♥ Do have faith in what you're doing.