Flutter简介
- Flutter支持Android/iOS App开发,也支持Fuchsia平台的开发
- 应用产品实例如闲鱼、京东金融等
- Flutter也可以应用于Google新的操作系统Fuchsia开发
- 使用Flutter需要掌握其本身常用的API,并且掌握一门新的语言Dart
- Flutter自身具有热修复(热重载)的功能,不过有使用上的限制
- Flutter SDK支持修复崩溃和继续从应用程序停止的地方进行调试
- 达到原生性能,Flutter提供了一种响应式视图,无需JavaScript做桥接
- 高性能的渲染机制使得120FPS(frames per second,帧每秒)的高帧率可以轻易实现
- 当界面上的图片越多时,与React Native相比,Flutter的优势会越来越明显
- 灵活的跨平台开发,Flutter可以单独作为开发框架完成整个App的开发,也可以与现有原生代码相结合实现Hybrid混合模式的开发
- Flutter可以访问本地功能和SDK
- Flutter保持了不同平台的UI设计理念,如对于iOS平台使用Cupertino风格,对于Android平台使用Material Design风格
- Flutter是一个分级结构框架,自上而下依次是:
(1)Framework(框架层):使用Dart实现,包含了所有和UI相关的组件、动画、手势等
(2)Engine(引擎层):使用C/C++实现,主要涵盖了Skia、Dart和Text。其中Skia是开源的图形库,提供适用于多种软硬件平台的API,Dart层包含了在Dart运行时的垃圾收集、JIT编译(Just In Time动态即时编译,用于Debug模式)、AOT编译(Ahead Of Time静态提前编译,用于Release/Profile模式),Text负责文本渲染
(3)Embedder(嵌入层):能确保各平台的兼容性
其中App都是基于Framework开发并运行在Engine层上的 - Flutter内部的渲染机制是整个Flutter跨平台技术的核心。它直接使用Skia引擎来渲染每个组件,既摆脱了对浏览器的束缚,又摆脱了和平台密切相关的原生控件
- 由于Flutter对Android/iOS都是采用AOT编译的方式,因此确保了使用Flutter开发技术的App都能够使用本机指令集运行。这一设计既满足了所谓统一的应用开发体验,又确保了App的运行性能
- UI设计风格都使用了Widget层的控件,只不过是做了很多的搭配组合,Widget层也依赖Rendering层来构建。如果其中某一层无法满足项目需求,也可以使用下一层的能力来自定义。如此灵活的层级结构满足了多种需求