首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
iOS 开发实用书单
iPhone App Development: The Missing Manual
Cocoa and Objective-C: Up and Running
Cocoa Programming for Mac OS X
深入浅出设计模式 Head First Design Patterns
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
V2EX  ›  iDev

跨平台开发, RN、Flutter、Weex、uni-app 该如何取舍?

  •  
  •   darkninght · 42 天前 · 7919 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    iOS 互联网民工一枚,想学习点跨平台开发,寻求下突破,大佬们觉得标题里几个方案哪个更适合学? 目前我更加倾向 uni-app,但是对 flutter 也抱有一些期待。

    第 1 条附言  ·  42 天前
    sorry、我之前没有阐释清楚,其实我也想着借跨平台开发多学习点大前端的知识。
    另外,没有最好的技术,只有适合的方案。不希望这篇帖子会引起任何喜欢某一种跨平台方案的同学的不适,也希望大家理性交流。
    75 回复  |  直到 2019-11-08 18:07:30 +08:00
        1
    andj4cn   42 天前
    Flutter 还处在尝鲜的阶段吧,不过阿里有闲鱼实践上了,dart 语言又是一个学习成本。RN 相对成熟,可以开搞
        2
    murmur   42 天前
    为啥不继续学 iOS 底层高阶开发,你底层牛逼了到时候用 RN、Flutter、Weex 的还得排队求你帮忙填坑
    跨平台永远是个梦
        3
    darkninght   42 天前
    @murmur 没说不继续学习 iOS 啊,我的主业就是 iOS 这个丢不掉的。技术的扩充肯定不能只是纵向的啊,还是要有横向发展的。
        4
    darkninght   42 天前
    @andj4cn flutter 确实坑还很多,而且代码写出来太难看了。RN 我打算观望一下,等 facebook 再重构下
        5
    1OF7G   42 天前
    Weex、uni-app 和以忽略。RN 现状好一点,不过未来发展还是看好 Flutter。
        6
    paradoxs   42 天前
    @murmur iOS 的岗位为啥越来越少了。。。 我在拉勾上面看,真的,一天比一天少。 深圳, 去年这个时候好像是接近 400 个的。。
        7
    murmur   42 天前
    @paradoxs iOS 外面没足够多的流动人才,靠谱的内推都解决了,现在的架构划分对 native 要求越来越高
    @darkninght 你确定你现在够深入么,有考虑过逆向工程发展么
        8
    Desiree   42 天前   ♥ 1
    RN 吧,RN 都摸爬滚打了这么多年了,应该大多数坑都有先驱者,而且生态社区比较大,也不怕踩坑
        9
    lagoon   42 天前
    实际上,大陆市面上 RN 多。(主要是比 Flutter 早)
    但个人觉得 Flutter 明显比 RN 好。
    虽然没有实际写过上线项目,但写过个人 app。
    不知道 RN 后来是否改善,但当初,光它的实现方式,性能就是大问题。
        10
    paradoxs   42 天前
    @murmur 其实严重的问题是,很多人技术虽然好,但是市场和需求,并不需要那么好的技术。

    甚至。。。。。。很多公司根本不需要 APP, 直接微信小程序就解决了。
        11
    Hanggi   42 天前
    @darkninght 这个真没什么好纠结的,肯定是 Flutter。Flutter 坑是多,但是目前应该影响不到你做一个完整的 APP。代码写出来难看是你的问题,可以找一些开源项目看一下怎么组织代码。RN 感觉都不用考虑了。
        12
    darkninght   42 天前
    @Hanggi 老哥,flutter 代码难看是公认的,有必要人身攻击?我在上文没有阐释清楚,其实我也想着借此接触一些前端的东西,所以还是最倾向于 uni-app
        13
    darkninght   42 天前
    @murmur 哈哈哈你是神仙吗?我刚刚备好了个越狱的 iphone5 想着有时间尝试下逆向
        14
    fyxtc   42 天前
    @darkninght 又被公认了吗。。。。我觉得不难看啊
        15
    lk920724   42 天前
    在用 ionic 学习 Flutter
        16
    darkninght   42 天前
    @fyxtc 不是被公知啊,写过点 flutter 代码,发现构建 UI 时全是箭头代码,感觉维护起来有点难受
        17
    Sniper416   42 天前
    uniapp 真香,不过文档真心差。
        18
    lloydsheng   42 天前
    RN 0.6x 优化了很多,值得搞搞
        19
    dioxide   42 天前
    Flutter 的生态仍不是太行, 感觉后劲不足.
    RN 要用好的前提是, ios 和 android 原生端要先精通.
        20
    tanranran   42 天前
    如果有小程序 并且项目不复杂(没有音视频 地图 各种对于性能要求很高的) [ uni-app] (里面有个 nvue 就是基于 Weex 的)

    如果没有 [Flutter]
        21
    17681880207   42 天前
    这玩意还得看爹。
    Flutter 和 RN 随便学一个都可以。毕竟 2 个爹都挺靠谱,而且挺有钱的。
    weex 和 uni-app 有兴趣看下,但是实际上市场太小了。
        22
    KuroNekoFan   42 天前
    我只提醒一下,google 对于无法带来收益的产品是说砍就砍的
        23
    neverfall   42 天前
    继续学习前端的东西有点重复了,不如学个后端技能
        24
    Hanggi   42 天前
    @darkninght 我没有攻击你,我一开始也是一个 Widget 嵌套 1 万层,难看的要死。但其实都可以模块化分出来,抽象整理。
        25
    Leonard   42 天前
    学 Java 吧
        26
    wobuhuicode   42 天前
    看到 LZ 回复一个:技术的扩充肯定不能只是纵向的啊,还是要有横向发展的。非常认同。
    入行做 web 到现在多端并行。说说我自己的方向就是:RN - 原生 - 类小程序架构。
    RN 和 weex 本质差不多。理解起来做个小玩意不难。
    Flutter 不看好,号称游戏级别渲染引擎,但是内置动画不多,做起来的 IOS APP 相比原生开发的差很远(可以参照安卓和 IOS 的过渡动画)。虽然是 G 家的东西,但是安卓端不是 Google 说了算的,国内行业还是用原生开发方便点。
    而我说的类小程序架构,就是目前市面上大部分小程序的实现架构。看起来是和 uni-app 差不多,但其实有些许差距。详细之处自己实现起来会才会明白。
        27
    ajaxfunction   42 天前
    如果是 top 系列互联网公司就用原生,
    其他就用 uniapp 吧,毕竟 sdk 和 api 接口都成熟的一批,
    但其缺点是功能有限,涉及到底层的调用就有点捉急了
        28
    Creolophus   42 天前 via iPhone   ♥ 1
    @fyxtc 看完 swiftui,我觉得 flutter 代码巨恶心
        29
    anmie   42 天前
    我就说我用过的,rn:臃肿,时常出问题。uni-app:性能不好,本质就是小程序引擎上运行小程序,不过 vue 一把嗦,加上官方编辑器,开发体验一级棒 一级流畅,除了写代码之外的部分 官方都帮忙做了,真傻瓜式开发。并不是吹它,虽然着么好,但是因为性能问题确实不推荐。
        30
    fyxtc   42 天前
    @Creolophus 害,我可能适应性还可以吧。。。任何代码风格都觉得没什么不适。。。
        31
    ngn999   42 天前
    iOS 搞逆向的话, 能作为一个发展方向吗? iOS 招聘中没多少要求动逆向的吧
        32
    sidegem   42 天前
    最近在学 flutter,感觉上手没有那么快,还需要学习 dart 语言.
        33
    darkninght   42 天前
    @17681880207 有道理
        34
    darkninght   42 天前
    @sidegem 是的,而且写起来略微难受
        35
    darkninght   42 天前
    @ngn999 没搞过逆向开发不太了解行情,但是我觉得逆向妥妥的是一个高光加分项,大厂肯定喜欢有逆向经验的 RD,而且玩逆向的话也可以不止拘泥于打工上班。
        36
    darkninght   42 天前
    @ajaxfunction 好的 我决定还是先从 uni-app 下手,感觉比较省心,而且没准没事干了还可以接点小活,一套输出 iOS、android、小程序,还是比较舒服。
        37
    mamahaha   42 天前
    先看一遍手册或教程了解一下,如果你不是零基础没学过编程,一般用不了几天,然后再决定用哪个,我觉得当前 RN 比较靠谱些,未来就不好说了。
        38
    Aether   42 天前
    @Sniper416
    @darkninght
    uniapp 真香,不过文档真心差 +1

    哈哈哈。
    文档主要靠猜和搜索。很多内容可以实现但并没有什么文档……
        39
    xiangyuecn   42 天前
    讲真,我要歪个楼,一定要 app 吗? h5 不香吗,pwa 不香吗😏 h5 才是真跨平台,10 年前的诺基亚都能运行,其他的算球😂
        40
    xlui   42 天前 via Android
    管他语法丑不丑,写起来爽就行了,看好 Flutter
        41
    IvanLi127   42 天前 via Android
    @darkninght 怎么就难看了?
        42
    U2Fsd   42 天前
    以前不喜欢 uni-app 觉得社区不行。

    现在发现外包和简单的项目用 uni-app 不错。快速实现,简单好用。 缺点可能就是不太适用于复杂的原生需求。
        43
    cnscorpions   42 天前
    用过一点 ionic,基于 cordova 的,weex, uni-app 也是吧,不会 native 的话,调试难 :(
        44
    ChangQin   42 天前
    @Hanggi 我就是因为嵌套 1w 层弃坑大军中的一员(手动滑稽.jpg)
        45
    5200   42 天前
    这个问题我也问过,强烈推荐 Flutter。
    第一次构建项目也是用 uni-app,再也不想用了。。。
    很多原生组件调用的比较麻烦,社区里面很多库和 UI 都挑机型。
    后面被迫放弃重新用 Flutter 写了。
    如果你为了快速出项目,而且是不用调用太多底层的话,
    用 uni-app 开发比较快,学习成本也比较低,了解过 vue 就行。
    如果为了长远的计划,推荐 Flutter。
    RN 就不用考虑了,他火是因为出来 比较早,有很多坑还没修复。
    同事之前写 RN 的亲身经历,
        46
    SolidZORO   42 天前
    首选 RN 没错,RN 现在正在大面积重构的路上,就快完成了。

    Flutter 我估计还没火起来就被砍了。
        47
    exploreexe   42 天前
    说 RN 好的真不知道到底有没有用过。很多公司都弃坑了。
    flutter 也是,闲鱼产品做的多垃圾就不说了,之前闲鱼团队遇到 app 体积大的问题都是直接和谷歌对接,你一个个人开发者没事也找谷歌吗?
        48
    YUyu101   41 天前
    要么就用最简单的,不考虑性能,这样投入大量时间的风险降到最低,要么就全部原生,一般人应该没时间一个个去踩坑。
        49
    railgun   41 天前
    不要用 uniapp,原生核心不开源,有问题都改不动。不用动 OC JAVA 代码的项目可以试试。
    推荐 Flutter,跨平台里面性能最好,配套的开发工具用起来也很流畅。
    RN 只跑过 demo,不评价。
        50
    ericgui   41 天前
    RN
        51
    ericgui   41 天前
    @SolidZORO +1 RN 现在有了微软的加持,微软正在帮助 FB 重写 RN on windows

    Flutter 不行,搞不好 Flutter 2.0 你又要重新学一遍,如果没被砍掉的话。
        52
    skenan   41 天前   ♥ 1
    推荐 React Native

    一个 app,要考虑开发成本,现在前端程序员基本都会 React, 从 React 迁移到 React Navie 基本无压力

    而且配合 https://expo.io/ 框架,不需要写任何原生代码,全是 JS

    React Native 新推出的 https://facebook.github.io/react-native/docs/hermes/ 也在提高 android 端性能

    相比之下,基于 flutter 营销的 远大于 真正使用 flutter 的

    大部分人学了几天 flutter, 写了几篇公众号,就开始狂吹,来给自己涨粉

    React Native 拥有的是 React 的生态,这是 Flutter 不可能达到的
        53
    ddup   41 天前 via Android
    不要用 uniapp,原生核心不开源,有问题都改不动。
    官方文档看了整合进现有项目去失败找不到说法
        54
    hacksth   41 天前
    管他啥,挑一个技术赶紧开始学一学,搞起来之后再挑。要不纠结来纠结去,大家的建议也五花八门,你内心又摇摆不定,最后八成不了了之。
        55
    geekdocs   41 天前
    flutter+1
        56
    Sniper416   41 天前
    @xiangyuecn 用 H5 帮我拿个设备 id 试试!?
        57
    maomaomao001   41 天前
    RN 吧, 更成熟,相关资料也多
    flutter 说不定真有一点会搞出 dsx ( jsx ) ,下载写法实在难看
        58
    palxie   41 天前
    rn 吧
        59
    qfdk   41 天前 via iPhone
    @darkninght 哪里公认了?!
        60
    a4390509   41 天前
    RN 写自定义控件不方便,要 IOS Android 两端都实现,flutter 就不用。
    说 flutter 嵌套的,就好像 RN 不嵌套一样,感觉 RN 和 flutter 的写法出奇的相似。
    而且如果之前 js 没有基础的话,讲道理 dart 上手比 js 快。
        61
    xiangyuecn   41 天前
    @Sniper416 #56 拿设备 ID 就看要什么样的了,宽松有宽松的解决方案,严格有严格的解决方案,设备 ID 不是说想拿就能轻易拿到的😏😏😏
        62
    Sniper416   41 天前
    @xiangyuecn 那不就对了,不是所有场景 H5 都可以覆盖的,该上 APP 只有老老实实上。
        63
    MarginK   41 天前
    哈哈哈哈哈哈 这贴有意思

    我一个写了 4 年 iOS 的,在这贴里硬是插不进一句嘴你敢信?
        64
    xiangyuecn   41 天前
    @Sniper416 #62 你说的是事实。不过大部分 app,就算没有 app 仅靠 H5 来实现,就能实现 98%的界面和功能。事实也如此,尤其是那种网购类的,不但有 app 还喜欢在小程序里面搅屎😂😂
        65
    solgh   41 天前
    这年头还是得学学安卓原生,物联网,还是得靠原生.....
        66
    KeyboardManAnAn   41 天前 via iPhone
    个人还是比较看好 flutter,其实她这种完全自 UI 的方式,并不完全是原创的,在桌面端本来就是有原型的,QT 就是完全的自绘 UI 不也一样是玩的很溜吗?
        67
    darkninght   41 天前
    @MarginK 我也是四年 iOS,畅所欲言吧兄弟,你们的跨平台经验对我都是很有指导意义的
        68
    uleh   41 天前
    Flutter 是 Google 官方的跨平台方案,已经上了 Google 开发者大会了,不会差的
        69
    lizhuoli   41 天前 via iPad
    你是为了“寻求下突破”,还是为了“找下一家工作,升 P”。前者 Flutter,你可以深入学习如何构建 GUI 系统,绘制引擎,事件循环等,往底层走广。后者选 React,能向 Web 方向发展,往端上走
        70
    nanjia   41 天前 via Android
    uni-app 上手确实快,做一般的应用也够了,flutter 更纯净
        71
    wly19960911   40 天前 via Android
    @lizhuoli flutter 的底层我感觉看着真的不错…比 Web 强多了。很多实现方面 Web 根本不接触。


    另外说一下…微信里面也用了 flutter,至少这样的重量级生态也选择 flutter,我感觉没问题
        72
    axer0912   40 天前 via iPhone
    最近在写 flutter,感觉写 widget 嵌套的问题通过封装抽象不太会搞得很深,jsx 嵌套写深了其实也挺烦的。dart 感觉上手没啥压力,构造函数这块有名参数初始化列表需要看下别的和 ts 差不多
        73
    iXInbo   34 天前
    Flutter 吧,SwiftUI 和这个很类似,会减少点以后转 SwiftUI 的学习成本
        74
    laibin2   32 天前
    短期 RN,长期 flutter
        75
    error   28 天前
    Flutter +1,Flutter 我们公司已经用了一段时间,感觉还好。而且 Flutter 的这个技术方向我比较看好
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2107 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 28ms · UTC 15:41 · PVG 23:41 · LAX 07:41 · JFK 10:41
    ♥ Do have faith in what you're doing.