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

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

  •  
  •   changrui0608 · 10 天前 · 6412 次点击
    考虑做个小工具啥的,应用复杂度应该很低,不限编程语言

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

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

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

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

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

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

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

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

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