Flutter 《入门到成仙 》第一章 基本概念

Flutter 《入门到成仙 》第一章 基本概念

在这里插入图片描述

一、Flutter是什么,干嘛用的?

1. Flutter定义:
Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。Flutter已推出稳定的2.0版本。

可实现跨平台开发,一套代码在多平台共用。目前已经在商业开发中逐步替代Android和IOS分别开发的模式。

2. 版本历程
Flutter的第一个版本被称为“Sky”,运行在Android操作系统上。它是在2015年Dart开发者峰会 上亮相的,其目的是能够以每秒120帧的速度持续渲染。

1.0版本于2018年12月5日(北京时间)发布 。

2.0版本于2021年3月4日(北京时间)发布。[ 2.0 稳定本优化了很多缺陷,特别对控件等写法有了很大的升级,如不用写new,还新增了空安全验证等 ]

二、为什么选择Flutter?

Flutter开发语言是Dart,语法简洁上手简单,特别对于Android开发者来说,学习成本可以说很小。
和Java,Kotlin同为面向对象强语言。

(1)强类型语言也称为强类型定义语言。
 是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
java、.NET、C++等都是强制类型定义的。
也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

(2)弱类型语言也称为弱类型定义语言。
一种类型可以被忽略的语言,与强类型定义相反。
像JavaScript,vb,php等就属于弱类型语言。
(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言。
在用动态类型的语言编程时,永远也不用给任何变量指定数据类型。
该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。
Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反。
它的数据类型是在编译其间检查的,在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表。
其他的静态类型语言还有C#、JAVA等。
 面向过程:
    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。
    比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
    缺点:没有面向对象易维护、易复用、易扩展

  面向对象:
    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统。
    使系统 更加灵活、更加易于维护 
    缺点:性能比面向过程低

支持跨平台开发,并且相当于商业市场上其他跨平台方案,RN(H5混合开发)等。效果更好,效率更高,并且学习成本小。

原生开发的缺点
原生的Android和IOS开发有以上优缺点,在思维导图中已经列明。

在这里插入图片描述
目前商业开发市场中Hybrid的跨平台的开发形式,优缺点和有以上几种方案。

在这里插入图片描述
使用javaScript开发UI层控件,用原生渲染。这种跨平台开发方案的优缺点和方案。

三、Flutter的优点与缺点?

在这里插入图片描述

JIT编译:吞吐量高,有运行时性能加成,可以跑得更快,并可以做到动态生成代码等,但是相对启动速度较慢。
并需要一定时间和调用频率才能触发 JIT 的分层机制。

AOT编译:内存占用低,启动速度快,可以无需 runtime 运行,直接将 runtime 静态链接至最终的程序中。
但是无运行时性能加成,不能根据程序运行情况做进一步的优化

Flutter框架的优势在于热重载,修改代码后,可以马上看到修改的UI改变的效果,且不会丢失状态。
控件的UI动画效果,质感很好
响应式开发符合现代代码开发框架潮流思想。

缺点就在于,Flutter框架无法完全脱离原生开发,需要具备一定能力的原生开发能力,比如Android or IOS。

四、Flutter框架结构?

在这里插入图片描述

主要是分为纯Dart实现的SDK Framework层 和 C++写的engine引擎层。

Framework又分为以下三层:
Widget层 (Material和Cupertino 两种视觉风格组件库)
Renering层 (Rendering层简化了布局和绘制过程,它是 dart:ui 层的抽象化。)
Dart UI层 (ui是框架的最底层,它负责处理与 Flutter Engine 的通信。)

Flutter Engine主要是包括了Skia引擎,Dart运行时,文字排版引擎等。

五、Flutter三棵树是什么?

在这里插入图片描述

三棵树说的是Fluter框架独有的控件渲染分层机制。
Widget层
Element层
RederObject层

Flutter中文开发者网站

Flutter中文网站(该网站是杜文在2018年,通过对Flutter官网中文本地化创建的网站)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值