Flutter 核心技术与实战
陈航
前美团点评高级技术专家
42432 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
Flutter 核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

03 | 深入理解跨平台方案的历史发展逻辑

思考题
选择适合自己的方案
三个时代
背景
跨平台开发方案

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

你好,我是陈航。
今天,我会从跨平台开发方案的诞生背景、原理和发展历史的角度,和你聊聊这些常见的开发方案,以及针对不同的场景我们应该如何选择对应的方案。

浅述跨平台开发的背景

我们当下所处的移动互联网时代,以它独有的变革方式,带给我们快捷、经济、安全和方便,改变着生活的方方面面。而对于企业来说,移动应用已然成为各类手机终端上一张必备的产品名片。
在移动互联网的浪潮下,我们开发的应用要想取胜,开发效率和使用体验可以说是同等重要。但是,使用原生的方式来开发 App,就要求我们必须针对 iOS 和 Android 这两个平台分别开发,这对于中小型团队来说就是隐患和额外的负担。
因为这样的话,我们不仅需要在不同的项目间尝试用不同的语言去实现同样的功能,还要承担由此带来的维护任务。如果还要继续向其他平台(比如 Web、Mac 或 Windows)拓展的话,我们需要付出的成本和时间将成倍增长。而这,显然是难以接受的。于是,跨平台开发的概念顺势走进了我们的视野。
所以从本质上讲,跨平台开发是为了增加业务代码的复用率,减少因为要适配多个平台带来的工作量,从而降低开发成本。在提高业务专注度的同时,能够为用户提供一致的用户体验。用一个词来概括这些好处的话,就是“多快好省”。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文从跨平台开发方案的发展历史和三个时代的角度出发,探讨了跨平台开发的重要性和发展趋势。移动应用在移动互联网时代的重要性不言而喻,而跨平台开发方案的出现则是为了提高开发效率和用户体验,降低开发成本。文章将主流的跨平台方案划分为Web容器时代、泛Web容器时代和自绘引擎时代,分别介绍了它们的特点和优劣势。在泛Web容器时代,优化了Web容器时代的加载、解析和渲染过程,采用原生自带的UI组件实现代替了核心的渲染引擎,从而简化了渲染过程,保证了良好的渲染性能。而自绘引擎时代的代表Flutter则开辟了一种全新的思路,从头到尾重写一套跨平台的UI框架,包括渲染逻辑,甚至是开发语言,以实现跨平台的一致性和高性能。在选择跨平台开发方案时,可以从开发效率、技术栈、性能表现、维护成本和社区生态等维度进行综合考虑。综合成熟度和生态,目前React Native和Flutter是最均衡的两种跨平台开发方案。对于知识学习来说,建议都学习;对于实际项目,React Native略胜Flutter,但从长远考虑,Flutter的设计理念更先进,解决方案也更彻底。整体而言,跨平台开发方案的发展抹平了各个平台的差异,使得操作系统的边界变得模糊,同时也对开发者提出了新的要求,拥抱大前端的时代已经向我们走来。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Flutter 核心技术与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(54)

  • 最新
  • 精选
  • VHJM
    方案对比表格中的页面级支持和区块级支持是什么意思啊?

    作者回复: 页面级和区块级支持表示,跨平台框架中的View和原生的View混用程度。比如Webview我们通常是打开一个新的页面,而RN和Flutter不仅可以支持打开新的页面,还可以在原生的页面中内嵌区块

    2019-07-08
    21
  • 月光疾风
    我就不喜欢web那一套,web有今天的生态是历史进程导致的,很多东西用web开发完全就是强扭的瓜的感觉,但是架不住他们人多非要这样搞。但是在移动平台web一直不算成功,甚至都不如桌面成功,桌面还有VScode这样的应用,但是桌面大多数生产力软件还不是web那一套搞的。

    作者回复: Web最大的优势是标准化和生态。我认为判断一个技术是否能成为未来大前端主流技术发展的趋势,主要看这个技术是否能减少对底层宿主环境的依赖,隔离各终端系统差异,能否从原理和运行机制及生态有领先同类产品的表现,向开发者提供统一而标准化的能力。

    2019-07-04
    2
    18
  • Frank
    老师,小白问句,动态化是指什么?

    作者回复: 指代码逻辑放到云端,以下发的方式更新应用程序原本功能的方式。可以理解成玩手机游戏下载新的关卡一样

    2019-07-04
    3
    13
  • !!!
    作者您好,请问下flutter如果遇到紧急需求,类似活动之类的,如何不发版就上线需求呢?

    作者回复: 建议你们把一些常见的活动封装成模板,让后端配置不同的模板就可以实现动态化了

    2019-07-09
    2
    6
  • 咖啡凉了
    大家觉得如果Flutter 流行起来,Apple 会对其进行限制吗?

    作者回复: 从内部看,Flutter的实现原理和运行机制是满足Apple政策的;从外部看,除了禁止热修复这种动态修改App功能的方案之外,苹果还没有限制过任何一个跨平台框架。 Google和Apple都是顶尖的科技巨头,相信他们之间会对跨平台技术的边界有过沟通,也相信Apple的胸怀。

    2019-07-08
    4
    5
  • zhaosc
    再不拥抱就晚啦。 我能说以上的跨平台框架都经历过吗?😂

    作者回复: 厉害了

    2019-07-04
    2
    4
  • Geek_45a2f1
    老师,咱们到后面是视频讲解,还是一直都是这样的图文讲解

    作者回复: 图文和音频是没问题的哈。如果有讲不清楚的地方我们会用视频。

    2019-07-04
    3
    4
  • 花有缺
    在跨平台领域,Qt和cocos都做的还不错,但是Qt用的c++语言开发,社区一直没咋起来,cocos2dx是游戏引擎,最初也是C++,后来转向lua和js,它自己封装了OpenGL ES的接口进行渲染,自己开发了一套UI框架,虽然这套UI框架并不完善,我觉得flutter和cocos有很多相似的地方,都是自己独立搞了一套渲染机制,一套UI框架,开发使用较为轻量的语言,而不是直接使用c++。

    作者回复: 赞

    2019-07-22
    3
  • 衣知世 与 计知白
    老师,Flutter在播放视频时是如何操作呢?比如android和ios两端都有,这样是不是还得要求开发人员分别会两个平台的原生需要呢?

    作者回复: 需要使用插件支持

    2019-10-14
    2
  • 信仰年轻
    老师,flutter现在android支持热修复了,图表没有修改

    作者回复: 首先,出于应用市场合规、性能和安全考虑,Flutter官方不会支持热修复能力; 其次目前市面上的热修复方案指的是产物替换(vm_snapshot_data、vm_snapshot_instr、isolate_snapshot_data、isolate_snapshot_instr),这个方案是一个单端方案,只支持Android,并且只支持纯Flutter应用,基本上就把使用场景锁死了。

    2019-11-21
    1
收起评论
显示
设置
留言
54
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部