iOS 开发高手课
戴铭
前滴滴出行技术专家
42934 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
用户故事 (1讲)
iOS 开发高手课
15
15
1.0x
00:00/00:00
登录|注册

40 | React Native、Flutter 等,这些跨端方案怎么选?

用户选择
架构
动态化能力的支持
学习资源
UI框架
热重载
UI框架的实现
虚拟机
选择 Flutter 作为跨平台开发方案
Fuchsia 系统
开发效率和体验
性能
页面框架和自动化工具
历史和流行程度
使用 JavaScript 语言开发
iOS 继续突飞猛进
Fuchsia 失败
总结
未来发展走向
道理大同小异
不足
优势
不足
优势
课后作业
选择适合自己的跨端方案
Flutter
React Native
跨端方案选择

该思维导图由 AI 生成,仅供参考

你好,我是戴铭。
为了一份代码能够运行在多个平台,从而节省开发和沟通成本,各公司都开始关注和使用跨端方案。目前,主流的跨端方案,主要分为两种:一种是,将 JavaScriptCore 引擎当作虚拟机的方案,代表框架是 React Native;另一种是,使用非 JavaScriptCore 虚拟机的方案,代表框架是 Flutter。
使用跨端方案进行开发,必然会替代原有平台的开发技术,所以我们在选择跨端方案时,不能只依赖于某几项指标,比如编程语言、性能、技术架构等,来判断是否适合自己团队和产品,更多的还要考虑开发效率、社区支持、构建发布、 DevOps、 CI 支持等工程化方面的指标。
所以说,我们在做出选择时,既要着眼于团队现状和所选方案生态,还要考虑技术未来的发展走向。
接下来,我就以 React Native 和 Flutter 为例,和你说明如何选择适合自己的跨端方案。

React Native 框架的优势

跨端方案的初衷是要解决多平台重复开发的问题,也就是说,使用跨端方案的话,多个平台的开发者可以使用相同的开发语言来开发适合不同系统的 App。
React Native 使用 JavaScript 语言来开发,Flutter 使用的是 Dart 语言。这两门编程语言,对 iOS 开发者来说都有一定的再学习成本,而使用何种编程语言,其实决定了团队未来的技术栈。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

跨端方案选择一直是开发者关注的焦点。本文从React Native和Flutter两种跨端方案出发,分析了它们的优势和劣势。React Native使用JavaScript语言开发,具有较为完善的生态和工具链,但在性能和开发效率方面不如Flutter。Flutter采用Dart语言,通过AOT和JIT编译方式实现高性能,同时具有热重载技术和统一的开发体验。此外,文章还提到了Fuchsia系统对Flutter的支持,以及未来技术发展的影响。总的来说,文章建议从长远考虑选择Flutter作为跨端开发方案,但最终结果还需取决于用户的选择。文章内容详实,对比清晰,为读者提供了全面的选择参考。文章中提到了如果Fuchsia失败,iOS继续发展并支持SwiftUI跨端开发,那么开发者可以继续使用Swift开发,无需更换技术栈。这一观点提供了对未来技术发展的另一种思考,值得读者深入思考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《iOS 开发高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • Kratos
    老是能讲下动态热更新方案吗

    作者回复: 后面就会讲

    2019-06-13
    3
  • 张松超
    SwiftUI渲染机智和UIKit有差别吗?如果没有差别,就不可能有跨安卓的那一天吧?

    作者回复: 渲染是底层的。SwitUI 是接口层

    2019-06-22
    1
  • 少林李达康
    个人认为跨平台开发始终是个真需求,伪实现。真需求说的是市场确实需要一个完美的兼容多平台的开发方式来解决人力成本和开发效率。伪实现说的是目前无论哪种方案,真正落地开发的话还是必须要掌握安卓和iOS的开发技能。之前我做过一个RN的项目就是,许多api都是iOS这边兼容,安卓不兼容,这就需要了解安卓开发再去做兼容处理,反之亦然。这样其实更降低了开发效率,而且也无形中给开发人员增加了技能要求,必须都熟悉安卓和iOS开发。而真正熟悉两套开发技能的人在市场上的薪资不见得就比一个安卓 + iOS的薪资低。 所以我认为在谷歌和苹果没有给出官方跨平台解决方案之前,一切跨平台都是小打小闹,只能小试牛刀,不能真正解决问题。 个人愚见,不喜勿喷。
    2019-06-13
    6
    100
  • 2thousand19
    期待swift UI 跨安卓平台的那一天
    2019-06-13
    2
    25
  • 从GitHub上的swift语言库来看,swift已经从底层上支持Android了,Linux系统(服务器方向)也支持的比较多,windows 也有支持,再加上今年推出的swiftUI来看,底层和应用层分步演进,再加上苹果公司这几年对metal渲染层的深耕,支持跨平台感觉是有望的!我是打算扎根swift了!
    2019-07-09
    14
  • 鑫琦
    之ggtalk的有一期“向架构师进发”,Casa Taloyum也说过跨平台开发的问题,当时给出的答案和@少林李达康 说的一样“一旦需要做兼容处理时,还是会要求熟悉Android和iOS开发技术”, 这样成本还是会不小,所以从长远来看确实不能真正解决问题。但是我的觉得从快发速度的角度来说,跨平台技术既能达到Web开发的速度,又能在一定程度上保证性能,相对HTML混合开发还是有进步的。 另外说一下Flutter我个人的影响 最近离职在找工作,刚想强化一下iOS基础知识,在复习时间突然发现Flutter越来越火了, 当明连iOS都没学的精通,Texture,SwiftUI还没怎么用过,就要开始转移阵地学其他技术了。 但是要现在不学Flutter,又要掉队了。 对我这种技术普通开发者, 还是蛮纠结的。 另外,“向架构师进发”这一期,我记得Casa Taloyum还引用了戴铭老师的话, 不知道的可以去听一下
    2019-06-13
    14
  • cocoakc
    我们就正在是用Flutter进行开发,也遇到过各种问题,但是正如戴铭所说的那样,一切都要看用户和开发者怎么去选,不过从目前来看,Flutter的增量远远高于RN,建议深耕Swift的情况下,着手开发Flutter吧!并且Flutter已经支持嵌入式/桌面端/web端 等平台了,野心蛮大的..
    2019-06-13
    2
    6
  • 蚂蚁内推+v
    不管上层建筑如何变换,目前可以做的就是打好基本功,知其所以然,而不是想当然,与各位共勉。
    2019-06-13
    6
  • 胖娃瓜
    NS性能比PSV强的多,PSV应该和3DS对比...
    2019-06-14
    1
    5
  • 李超
    跨平台方案最重要的点还是性能,性能更佳的flutter当然是首选,对于原本是native开发的人来说,rn与flutter的开发成本是相差不大的,从长远角度来看,这批人最可能选择flutter。对于原本是web开发的人来说,rn是首选,因为毫无语言切换上的开发成本,一切都是熟悉的味道~
    2019-06-13
    4
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部