一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情。
Flutter是什么?
使用一个技术之前,我们必须要知道这个技术究竟是怎么回事,这也是我们在学习一门新技术之前必须要了解的一些事情。
定义:Flutter是基于OpenGL跨平台绘制库实现了一套基于dart语言的框架,也就是说dart代码调用了OpenGL,OpenGL调用不同系统API来进行渲染页面。因为是直接调用的系统API,所以性能方面没有任何损失。
可以理解Flutter仅仅是针对不同操作系统在底层封装了一套通用的跨端UI工具集。
Flutter框架结构:
Fragmwork dart ui 层
纯dart实现的基础API库。
Engine Flutter引擎 C++层
纯C++实现的Sdk,代码调用dart.ui包时,调用它实现真正的UI绘制。
优点:一套代码,多端显示,一致性高,交互、性能跟原生一致。
缺点:只能绘制UI展示,对于系统的功能只能通过和原生通信交互实现。
为什么用Flutter?
经过去年使用Flutter完整开发应用直至上线过程中,再回到我们技术选型时候的疑问,发现当初的疑问比如:性能体验问题?后续维护问题? 学习成本问题?等基本都被一一解决。
性能: Flutter在跨平台近几年飞速发展目前github上star已经超过老牌跨平台RN,也是基于Flutter底层UI渲染性能媲美原生的优势,用户原生级别体验。
生态: 除了性能优势以外,目前Flutter的生态也已经达到了非常活跃的地步,尤其在国内Flutter社区,一些互联网大厂,例如:BAT、字节等均已将Flutter作为主力进行投入生产。
设计模式: 响应式框架,Flutter在与用户交互时,开发者负责提供应用状态与界面状态之间的映射,框架则在运行时将应用状态的更改更新到界面上。与原生开发不同。
代码编写: 基于dart集百家之长优点的特性,因为是状态编程,将UI布局和逻辑处理进行了合并,我们只需要关系页面的状态,不再需要单纯的写UI布局了,相信我你习惯了Flutter之后再也不愿意回到原生了。
官方更新: 2021年可以说是Flutter元年 从发布2.0到2.15,官方近乎以神速的速度发布大小版本。这也是让我们使用FLutter的一个重要原因,下图为Flutter2021年发布的重要更新。
Flutter后记
目前Flutter又发布了Android、iOS、Web端之外的又一成员PC桌面端的稳定版本,相信在未来Flutter可以成为跨平台中会越来越好,当然对于Flutter开发者来说,并不是学了Flutter就不需要学习其他平台的知识,Flutter从始至终都是在UI层进行了接口的封装,在学习Flutter的同时,也要同时学习其他平台相关的知识,只不过Flutter会极大的降低你学习其他平台的知识量,降低了学习成本。虽然有其他平台稳定版发布,但是目前使用最多的还是移动端,而且生态来讲移动端也是最丰富、最活跃的,从这方面来看,Flutter未来任重道远。
END