想学Flutter,就请关注这个专栏
Flutter系列(一)——详细介绍Flutter系列(二)——与React Native进行对比
htmlFlutter系列(三)——环境搭建(Windows)
gitFlutter系列(四)——HelloWorld
github
文档归档:
github.com/yang0range/…
算法
以前,咱们一直在介绍Flutter相信你们对Flutter有一个整体的认识,,那么如今咱们就要介绍一下Flutter使用的编程语言Dart
编程
Flutter的特性离不开Dart特别是让不少人都很是喜欢的热重载功能,很大的缘由就是由于Flutter使用了Dart,那么就经过这一篇文章了解一下,咱们一块儿了解一下什么是Dart!服务器
Dart 1.0是于2013年11月14日由谷歌发布的,由Lars Bak和Kasper Lund建立。它旨在帮助开发人员构建现代的web和移动应用程序。它涵盖了客户机、服务器和如今的Flutter移动设备。它提供了一系列工具,包括虚拟机、核心库和包管理存储库。框架
Dart 是由谷歌开发的通用的编程语言,它经常使用于构建web、服务器、桌面和移动应用程序。异步
Dart是一种简洁、清晰、基于类的面向对象的语言,它是基于JavaScript的可是结构要比JavaScript要多。async
Dart是一种面向对象的、类定义的、垃圾回收语言。它支持接口、mixin、类对象,具备化泛型、静态类型等。
对于面向对象这个概念,相信了解Java的同窗对这个概念必定不会陌生。
例如:咱们有个Person Object他有不少特征和行为。
这些都是这个Person Object的属性。
也就是由于有了这些特征,行为等等才决定了这我的是谁。
那么回到Dart当中,全部的都是对象,那么在就能够能够跟进对象的属性的特征,方法等等来进行编程。
之因此咱们在这里又特别强调了一下面向对象的概念,是由于这个概念在Dart语言当中,相当重要!
在Dart语言中,全部的东西都是对象,不管是变量、数字、函数、null等都是对象,全部的对象都是Object类的子类。
Dart语言是强类型编程,一旦肯定了类型,那么就不能够改变变量类型,在编译时会进行语法减产,可是Dart容许弱类型语言式的编程。
Dart代码在运行前解析,指定数据类型和编译时常量,能够提升运行速度。
Dart语言的统一入口是main函数。
Dart的私有特性是在变量或者函数名前面加上下划线_。
Dart支持async/await异步处理。
1.Dart是AOT(Ahead Of Time)编译的,可编译成快速,可预测的本地代码。
2.Dart能够JIT(Just In Time)编译,开发周期快,为Flutter热重载提供基础。
3.Dart能够轻松建立60fps运行的流畅动画和转场。
4.Dart的声明式编程布局,易于阅读和可视化,不须要单独的声明式布局语言,如:XML,JSX。
5.Dart很是易于学习,具备静态和动态语言,编程人员都熟悉的特性。
相信,看过上面的内容的小伙伴,多多少少对于Dart有个简单的认识了,那么为何Flutter为何采用Dart语言呢?
能够归结为如下的三个方面:
Flutter框架使用函数式流,它重度依赖底层内存分配器对小量的、短生命周期内存分配的有效处理,在缺少这种特性的语言中Flutter没法有效地工做。
Flutter的一个主要的价值主张就是节省工程资源,开发者经过同一套代码库能够实现iOS和Android两个平台的应用开发工做。使用高产的语言提升了开发效率,也使得Flutter更具吸引力,这对于咱们框架团队和开发者都异常重要。 构建Flutter主体的语言和咱们提供给用户的是相同的,因此咱们须要在100k行代码的基础上保证高效,而且保证不牺牲framework和widgets对读者的可读性。
对于Flutter,咱们想要一个可以符合Flutter问题域的语言,即创造视觉用户体验,经过面向对象语言构建用户界面框架,业内已经有了几十年的经验。固然咱们可使用非面向对象的语言,这将意味着重复发明轮子来解决几个艰难的问题。此外,大多数的开发者已经拥有面向对象的开发经验,这使得Flutter开发更加易学。
经过Flutter,咱们想要给开发者赋能,以开发出快速流畅的用户体验。为了达到这一点,咱们须要可以在每一个动画帧运行大量的代码。这意味着咱们须要一种可以同时提供高效和稳定性能的语言,不能有周期性的停顿,不然会形成掉帧。
热重载是Flutter最显著的特性之一,有了这个特性,咱们能够快速而且轻松的进行实现、构建UI、添加属性和修复Bug。热重载的加载过程就是经过源代码文件注入在运行的Dart虚拟机当中来工做。
包名 | 描述 |
---|---|
dart:asynv | 异步编程,提供Future,Stream类 |
dart:collection | 集合 |
dart:convert | 不一样类型的字符编码解码 |
dart:core | Dart语言核心功能,内置类型 |
dart:html | 网页开发用到的库 |
dart:io | 文件读写,IO相关 |
dart:math | 数字常量以及函数,随机算法等 |
dart:svg | 事件和动画矢量图支持 |
要想学Flutter,先学Dart!
经过这篇文章,咱们详细的介绍了一下Dart语言的“前世此生”。接下来,咱们要着重的介绍一些Dart的语法,只有了解了相应的语法啊,才能读懂和写出代码,想要学习的小伙伴,请持续关注吧!
Flutter已是Top20的软件库,经过接下来的一系列的文章,但愿我和你们一块儿来学习Flutter,一块儿进步,一块儿有所收获,掌握将来技术主流的主动权!
有什么好的建议,意见,想法欢迎给我留言!