分析Flutter开发,前途与发展?为何饱受争议

发布于:2022-11-09 ⋅ 阅读:(10) ⋅ 点赞:(0) ⋅ 评论:(0)

前言

从flutter上线以来,似乎就保守争议?那究竟是谁动了它的奶酪?

我们来看看flutter的发展史:

  • 2014.10 - Flutter的前身Sky在GitHub上开源
  • 2015.10 - 经过一年的开源,Sky正式改名为Flutter,低调期
  • 2017.5 - Google I/O正式向外界公布了Flutter,这个时候Flutter才正式进去大家的视野
  • 2018.6 - 距5月Google I/O 1个月的时间,Flutter1.0预览版
  • 2018.12 - Flutter1.0发布,它的发布将大家对Flutter的学习和研究推到了一个新的起点
  • 2019.2 - Flutter1.2发布主要增加对web的支持

由此开看:Flutter在逐渐的走向成熟和壮大,它的生态圈也在不断的发展。

那么它存在的意义如何?优势在哪里呢?

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。 在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

Flutter使用自己的高性能渲染引擎来绘制widget。这样不仅可以保证在Android和iOS上UI的一致性,而且也可以避免对原生控件依赖而带来的限制及高昂的维护成本。

Flutter使用Skia作为其2D渲染引擎,Skia是一个 2D的绘图引擎库,其前身是一个向量绘图软件,Chrome和 Android均采用 Skia作为绘图引擎。 Skia提供了非常友好的 API,并且在图形转换、文字渲染、位图渲染方面都提供了友好、高效的表现。

Flutter优势

1、性能强大,流畅

Flutter对比weex和react native相比,性能的强大是有目共睹的。基于dom树渲染原生组件,很难与直接在原生视图上绘图比肩性能,Google作为一个轮子大厂,直接在两个平台上重写了各自的UIKit,对接到平台底层,减少UI层的多层转换,UI性能可以比肩原生,这个优势在滑动和播放动画时尤为明显。

2、优秀的动画设计

Flutter的动画简单到不可思议,动画对象会根据屏幕刷新率每秒产生很多个(一般是60个)浮点数,只需要将一个组件属性通过补间(Tween)关联到动画对象上,Flutter会确保在每一帧渲染正确的组件,从而形成连贯的动画。这种十分暴力的操作在Flutter上却看不到明显的卡顿,这也是Flutter的一个魔力所在。相比之下其他跨平台框架几乎不能设计动画……往往会遭遇非常严重的性能问题。

3、UI跨平台稳定

Google直接在两个平台上在底层重写了UIKit,不依赖于Css等外部解释器,几乎不存在UI表达不理想,渲染不正常的情况,可以获得非常稳定的UI表达效果。Css换个浏览器就有不同的表现,基于Css的跨平台框架很难获得稳定的UI表现。

4、可选静态的语言,语言特性优秀

Dart是一个静态语言,这也是相对于js的一个优势。Dart可以被编译成js,但是看起来更像java。静态语言可以避免错误,获得更多的编辑器提示词,极大的增加可维护性。很多js库也已经用ts重写了,Vue3.0的底层也将全部使用ts编写,静态语言的优势不言而喻。

缺点

说到这里那必须得带一些缺点批判,凡是有利有弊;那么flutter的缺点有那些呢?这也是一直饱受争议的因素

  • 假装跨平台,躲不开原生代码
  • 组合而不是继承的思路
  • Widget的类型难以选择
  • 糟糕的UI控件API
  • 糟糕的资源管理设计

就业形势如何?

有优势还不行,必须受欢迎。一个再好的花瓶不能装水也是白搭。所以说到底,要对我们程序员有利;我们来看一则数据:

​从2019年来其中岗位增长至3133%并且是持续增长性;再看到平均的flutter工程师薪资水平均在20k-30k之间。想必下来收入总体不错!

看到这里许多程序员们都开始蠢蠢欲动了,开发岗位多薪资高;不做flutter工程师那简直是之前在浪费光阴啊!不急我们来看看flutter工程师需要掌握那些技术,这些技术是不是会难道一大片呢?在这推荐这里套《Flutter工程师手册》学习计划路线如下:点击资料免费获取方式

Flutter技术路线

一、Dart语法基础

  1. Dart语法详解与编译原理
  2. Dart面向对象原理
  3. 变量,函数,操作符,异常
  4. 类的机制
  5. 初始化列表规则
  6. 命名构造方法
  7. 常亮构造方式
  8. 工厂构造特征
  9. Mixin

二、Flutter UI

  1. 列表和网格视图Widget
  2. ListView详解与应用
  3. GridView详解与应用
  4. 布局Widget

三、Flutter线程

  1. 事件队列
  2. async. await原理
  3. Future任务调度
  4. Promise语法
  5. Platform Runner线程

四、Flutter启动流程

  1. Drat虚拟机
  2. Skia引擎
  3. Flutter应用启动

五、Flutter3.0 FrameWork框架

  1. TaskRunner工作原理
  2. StatefulWidget运行机制
  3. Flutter动画原理:
  4. MessageL oop启动原理
  5. Platform Channel原理
  6. Flutter异步通信

六、Flutter性能监控

Flutter有三种构建模式,适用于不同的场景,想要对性能监控,都跑在Profile模式下:

  1. Debug
  2. Release
  3. Profile

上面就是flutter的大致学习思路与技术大致分布;针对个人可能难度褒贬不一。技术都是靠累积的,可以参考这套学习路线方法学习。学习起来更加简便,有条理,系统性的学习往往更加扎实快速掌握。另外上面附有这套相关的资料。

文末

Flutter和Dart语言的合璧,加之谷歌正在精心打造的Fuchsia操作系统,或许谷歌的野心是有一天让通过Flutter框架开发的应用运行在不同的智能设备上。

那么,恐怕不仅仅是“有人喜欢Flutter”,而是会有更多开发者加入利用这套框架进行应用开发的行列中。