准备系统的学习一下Flutter,参考Flutter Apprentice Learn to Build Cross-Platform Apps第二版,记录一下学习历程.
什么是Flutter
简而言之,Flutter是谷歌提供的一个用于构建跨平台应用程序的软件开发工具包,可以帮助开发者更好的实现write once and run anywhere的理想.
Flutter的特性
- Flutter是开源的
- Flutter使用Dart (https://dart.dev)作为开发语言,Dart是一门面向对象的C语言风格的编程语言
- Flutter支持hot reload
- Flutter支持hot restart
- 以上重载特性只能用在调试模式中
- Flutter支持Google的 Material Design和IOS Cupertino风格的UI
- Flutter具有丰富的动画效果,灵活的组件
- Flutter支持其他语言及平台的库
Flutter不适合的领域
- 游戏和音频
- 需求特定native SDK的APP
- 单平台,尤其是基于特定平台特性的APP
- Apple watchOS,tvOS及特定IOS扩展
Flutter的架构
Flutter是一个模块化,分层化的架构
Flutter架构主要包括三层
- Framework层,插件层:Framework层由Dart编写,包含了直接用来构造APP的高级库,插件包含了一些高级特性,例如:JSON序列化,地理定位,摄像头访问,支付等
- Engine层:由C++编写的底层库,如I/O,图形处理,文本布局,Dart Runtime等,还负责屏幕上快速渲染光栅化抖动场景等
- Embedder层:为各个平台打包等
各层又是由一系列的子模块构成,例如编码时使用最多的Framework层构成如下:
接下来进行Flutter开发环境的搭建,创建第一个Flutter应用吧。