简单介绍

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

Dart语言归纳

空安全

Dart 2.12之后与flutter2.0之后支持健全的空安全机制。当你选择使用空安全时,代码中的类型将默认是非空的,意味着除非你声明它们可空,它们的值都不能为空。有了空安全,原本处于你的运行时的空值引用错误将变为编辑时的分析错误。若想让变量可以为 null,只需要在类型声明后加上 ?。

泛型编程

泛型常用于需要要求类型安全的情况,但是它对代码运行也有好处:

①适当地指定泛型可以更好地帮助代码生成:比如声明一个只能包含String类型的数组,你可以将该数组声明为List<String>,这表示只能包含字符串类型的数组。这样的话就可以很容易避免因为在该数组放入非String类变量而导致的诸多问题,同时编译器以及其他阅读代码的人都可以很容易地发现并定位问题。

②使用泛型可以减少代码重复:其可以减少重复代码。泛型可以让你在多个不同类型实现之间共享同一个接口声明,比如下面的例子中声明了一个类用于缓存对象的接口:

声明式编程

Flutter应用是声明式的,这也就意味着Flutter构建的用户界面就是应用的当前状态。当Flutter 应用的状态发生改变时(例如,用户在设置界面中点击了一个开关选项)改变了状态,这将会触发用户界面的重绘。去改变用户界面本身是没有必要的一旦改变了状态,那么用户界面将重新构建。当用户界面发生变化时,Flutter 不会修改旧的实例 b,而是构造新的 widget 实例。

异步编程

Dart 代码运行在单个执行“线程”中。如果 Dart 代码在执行时阻塞,例如:处理一个需要长时间运行的计算操作或等待 I/O 完成。此时整个程序会被“冻结”。 异步操作可以让你的程序在等待一个操作完成时继续处理其它的工作。Dart 使用 Future 对象来表示异步操作的结果。你可以用 async 和 await 关键字或 Future 类的相关API来配合使用future。

flutter框架特点

尽管 Dart 是强类型语言,但是在声明变量时指定类型是可选的,因为 Dart 可以进行类型推断。

如果开启了空安全,变量在未声明为可空类型时不能为 null。你可以通过在类型后加上问号 (?) 将类型声明为可空。

Dart支持泛型,比如List<int>(表示一组由 int 对象组成的列表)或 List<Object>(表示一组由任何类型对象组成的列表)

额外需要说的是flutter具有热重载的特点,修改源码后,可以立刻在虚拟机上呈现出效果。十分快捷,方便。

一款轻量级数据库

sqflite是一款轻量级的关系型数据库,类似SQLite。 Flutter平台我们使用sqflite库来同时支持Android 和iOS。

官方网址      使用教程

开发案例

一款基于flutter框架开放的背单词APP。

浏览