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

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

  •  
  •   changrui0608 · 2018-06-13 17:48:05 +08:00 · 10498 次点击
    这是一个创建于 516 天前的主题,其中的信息可能已经有所发展或是发生改变。
    考虑做个小工具啥的,应用复杂度应该很低,不限编程语言

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

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

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

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

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

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

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

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

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