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

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

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

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

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

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

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

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

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

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

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

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