Flutter学习-开篇

声明:本人Flutter学习都是基于Flutter官网和Flutter中文网,所以会引入其中的一些资源和代码。
《Flutter实战》

Flutter

Flutter是Google退出并开源的便携式UI开发SDK,致力于用统一的代码库为移应用(Android & iOS),Web和桌面应用程序。

Flutter使用Skia作为其2D渲染引擎,跨平台的渲染引擎,使得Flutter可以在不同的平台中渲染出相同的表现。不过当前iOS系统使用的是Metal渲染引擎,所以我们在iOS应用打包中还要将Skia一并打包进去。

Flutter开发使用的Dart语言。Dart的优势在于其同时支持JIT(Just in time)和AOT(Ahead of time)两种运行方式,它允许开发者使用JIT模式(动态解释)进行开发,即时翻译查看代码变动后的效果,使用AOT模式(提前编译)发布应用包。这样做既提高了开发效率,又不影响应用的性能。

Flutter架构

下面是《Flutter实战》中的架构图:

Flutter学习-开篇_第1张图片
framework.png

从下往上:

  • Foundation层和(Animation, Painting, Gestures)层对应的是Flutter中的dart:ui包,提供了UI的基础能力,包括动画、手势及绘制能力。
  • Rendering层,类似于虚拟DOM的概念,负责构建UI树,进行布局计算和绘制和响应更新。
  • Widgets层是基础的UI组件
  • Meterial和Cupertino是两种不同UI样式的组件库。

Flutter Engine

Flutter Engine是C++实现的 SDK,其中包括了 Skia引擎、Dart运行时、文字排版引擎等。在代码调用 dart:ui库时,调用最终会走到Engine层,然后实现真正的绘制逻辑。

了解这些基本知识后,下一步就是搭建开发环境了。Flutter官网安装文档对不同系统搭建Flutter开发环境做了详细说明,请参考官网进行搭建。

你可能感兴趣的:(Flutter学习-开篇)