- 从零开始学Flutter开发
- 谭东
- 639字
- 2025-02-23 20:47:41
1.3 Flutter 架构与特点
Flutter 提供了两种风格的UI 组件来分别适应Android 应用和iOS 应用的特点,分别是Material 风格组件和Cupertino 风格组件。Flutter 的开发特点是,组件是由许多更小的组件组合而成的,类的层次结构也是扁平的。官方给出的Flutter 架构如图1-3 所示。

图1-3 官方给出的Flutter 架构
从图1-3 中可以看出,核心引擎(Engine)是使用C++语言编写的,Framework 层采用了由Dart 语言编写的SDK,并且提供了Material 和Cupertino 两套不同风格的UI 组件。
Flutter 其实很像一门胶水语言,我们可以用Dart 语言编写一套应用,然后它会被编译、调用或渲染成不同平台的应用。我们来看一下Flutter 的组件分类,如图1-4 所示。

图1-4 Flutter 的组件分类
Flutter 中的一切都可以看成组件(Widget),主要分为有状态组件(StatefulWidget)和无状态组件(StatelessWidget)两类。StatelessWidget 主要用于不需要维护状态的场景,StatefulWidget主要用于需要维护好状态的场景。
前面我们简单介绍了Flutter 的架构与组件分类,接下来我们来详细了解Flutter 的特点,具体如下。
运行速度快:媲美原生应用运行速度,用户体验很好。
高效:引入Stateful Hot Reload(保持应用状态的热重载),可以让移动开发者和设计师们实时快速预览应用程序。通过Stateful Hot Reload,无须重新启动应用就可以在程序运行时直接看到代码修改之后的效果。
开源:Flutter 是一个基于BSD-style 许可的开源项目,全球数百位开发者为之贡献代码,Flutter 的插件生态系统平台资源非常丰富,有数千款插件已经发布,避免了重复造轮子。
开放:可以使用原生资源开发应用,比如我们依然可以在Android 上使用Kotlin 或Java进行开发,在iOS 上使用Swift 或Objective-C 来编写逻辑。
提供了两套不同风格的UI 组件。
支持多种开发工具:支持Visual Studio Code、Android Studio、IntelliJ 及其他开发工具,只需要安装相关插件即可使用。