首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  程序员

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

  •  
  •   changrui0608 · 127 天前 · 7530 次点击
    这是一个创建于 127 天前的主题,其中的信息可能已经有所发展或是发生改变。
    考虑做个小工具啥的,应用复杂度应该很低,不限编程语言

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

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

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

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

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

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

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

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

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

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

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