Flutter简介

  1. Flutter支持Android/iOS App开发,也支持Fuchsia平台的开发
  2. 应用产品实例如闲鱼、京东金融等
  3. Flutter也可以应用于Google新的操作系统Fuchsia开发
  4. 使用Flutter需要掌握其本身常用的API,并且掌握一门新的语言Dart
  5. Flutter自身具有热修复(热重载)的功能,不过有使用上的限制
  6. Flutter SDK支持修复崩溃和继续从应用程序停止的地方进行调试
  7. 达到原生性能,Flutter提供了一种响应式视图,无需JavaScript做桥接
  8. 高性能的渲染机制使得120FPS(frames per second,帧每秒)的高帧率可以轻易实现
  9. 当界面上的图片越多时,与React Native相比,Flutter的优势会越来越明显
  10. 灵活的跨平台开发,Flutter可以单独作为开发框架完成整个App的开发,也可以与现有原生代码相结合实现Hybrid混合模式的开发
  11. Flutter可以访问本地功能和SDK
  12. Flutter保持了不同平台的UI设计理念,如对于iOS平台使用Cupertino风格,对于Android平台使用Material Design风格
  13. 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层上的
  14. Flutter内部的渲染机制是整个Flutter跨平台技术的核心。它直接使用Skia引擎来渲染每个组件,既摆脱了对浏览器的束缚,又摆脱了和平台密切相关的原生控件
  15. 由于Flutter对Android/iOS都是采用AOT编译的方式,因此确保了使用Flutter开发技术的App都能够使用本机指令集运行。这一设计既满足了所谓统一的应用开发体验,又确保了App的运行性能
  16. UI设计风格都使用了Widget层的控件,只不过是做了很多的搭配组合,Widget层也依赖Rendering层来构建。如果其中某一层无法满足项目需求,也可以使用下一层的能力来自定义。如此灵活的层级结构满足了多种需求