1. 基础入门
1.1 什么是 Flutter
1.1.1 Flutter 的特点和优势
- 跨平台开发:一套代码同时支持 Android、iOS、Web、桌面和嵌入式设备。
- 高性能:使用 Skia 图形引擎直接渲染,避免桥接(Bridge)开销,性能接近原生。
- 快速开发:
- Hot Reload:实时预览代码修改的效果,极大提高开发效率。
- 丰富的 Widget:内置大量可复用的 UI 组件,减少开发时间。
- 一致性:无论在 Android 还是 iOS,UI 表现一致。
- 强大的社区支持:丰富的插件生态,几乎覆盖所有主流功能需求。
1.1.2 Flutter 的架构
- Dart 编程语言:
- Flutter 的核心语言,支持面向对象和函数式编程。
- 提供高效的垃圾回收机制和强大的异步编程能力。
- Widget:
- Flutter 的一切都是 Widget,UI 是由 Widget 树构建的。
- 分为
StatelessWidget
和StatefulWidget
。
- Skia 渲染引擎:
- Flutter 使用 Skia 渲染引擎直接绘制 UI,而不是依赖平台的原生控件。
- 提供高性能的 2D 图形渲染。
- 平台通道(Platform Channel):
- 用于与原生代码(如 Java、Kotlin、Swift、Objective-C)交互,扩展功能。
1.1.3 Flutter 和其他跨平台框架的对比
特性 | Flutter | React Native | Kotlin Multiplatform |
---|---|---|---|
语言 | Dart | JavaScript/TypeScript | Kotlin |
渲染方式 | 自定义渲染(Skia 引擎) | 使用原生控件 | 使用原生控件 |
性能 | 接近原生 | 依赖桥接,性能稍逊 | 接近原生 |
开发效率 | 高效(Hot Reload + 丰富的 Widget) | 高效(Hot Reload) | 中等(需编写平台特定代码) |
生态系统 | 丰富的插件生态 | 丰富的插件生态 | 插件生态较少 |
适用场景 | UI 密集型应用 | UI 密集型应用 | 需要共享业务逻辑的多平台项目 |
1.2 环境搭建
1.2.1 安装 Flutter SDK
- 下载 Flutter SDK:
- 前往 Flutter 官网 下载适合你操作系统的 SDK。
- 解压并配置环境变量:
- 将 Flutter 的
bin
目录添加到系统的环境变量中。 - 验证安装:运行
flutter doctor
检查环境配置。
- 将 Flutter 的
1.2.2 配置开发环境
- Android Studio:
- 安装 Flutter 和 Dart 插件。
- 配置 Android 模拟器(AVD)。
- VS Code:
- 安装 Flutter 和 Dart 插件。
- 配置调试环境。
- Xcode(仅 macOS):
- 安装最新版本的 Xcode。
- 配置 iOS 模拟器。
1.2.3 配置模拟器
- Android 模拟器:
- 打开 Android Studio,进入 AVD Manager。
- 创建一个虚拟设备,选择目标 API 级别。
- 启动模拟器。
- iOS 模拟器:
- 打开 Xcode,进入
Xcode > Open Developer Tool > Simulator
。 - 选择设备类型(如 iPhone 14 Pro)。
- 打开 Xcode,进入
1.2.4 测试运行第一个 Flutter 应用
- 创建一个新项目:
flutter create my_first_app cd my_first_app flutter run
- 修改代码并使用 Hot Reload 查看实时效果。
1.3 Dart 基础
1.3.1 Dart 的语法基础
- 变量与数据类型:
- Dart 是强类型语言,支持类型推断。
int age