menu
开始使用 Flutter
1. 安装和环境配置
2. 编辑工具设定
3. 开发体验初探
4. 编写第一个 Flutter 应用
5. 了解更多
拥有其他平台开发经验?
给 Android 开发者的 Flutter 指南
给 iOS SwiftUI 开发者的 Flutter 指南
给 iOS UIKit 开发者的 Flutter 指南
给 React Native 开发者的 Flutter 指南
给 Web 开发者的 Flutter 指南
给 Xamarin.Forms 开发者的 Flutter 指南
声明式 UI 介绍
Flutter 对比 Swift 的并发
Dart 语言概览
open_in_new
保持版本更新
版本升级
SDK 版本列表
最近更新
版本发行注记
破坏性改动
兼容性策略
教程和样例代码
Flutter Gallery 应用
open_in_new
GitHub 上的样例应用
open_in_new
实用教程 (Cookbook)
Codelabs
用户界面
介绍
布局构建
介绍
布局构建教程
列表 & 网格
构建与使用列表
构建一个横向列表
构建一个网格视图
构建包含不同类型元素的列表
处理长列表
滚动
概览
使用 Slivers 实现各种滚动需求
在列表开头添加一个浮动的顶栏
构建一个平行错位滚动的效果
响应式设计
创建响应式和自适应的应用
构建自适应应用
根据旋转角度更新应用的界面元素
设计 & 主题
Material 设计
概览
利用主题来共享样式
添加抽屉
显式提示栏
在应用中添加 tab
文字
字体 & 版式
使用自定义字体
将字体从 package 中对外暴露
自定义图形
使用自定义的着色器
交互
为你的应用添加交互
手势
介绍
处理点击
拖动界面元素
添加 Material 风格的水波纹
实现滑动取消
输入 & 表单
创建输入框并且调整样式
读取输入框的内容
处理输入框的内容变动
管理输入框之间的焦点
构建具有校验功能的表单
实现快捷方式
管理键盘焦点
资源 & 媒体
添加资源和图片
加载网络图片
从占位图过渡到图片
播放及暂停视频
导航 & 路由
概览
导航至新页面并返回
传递数据到新页面
从新页面返回数据
设置 Deeplink
设置 Android Deeplink
设置 iOS Universal Link
设置 Web 的 URL 策略
动画 & 过渡
概览
教程
隐式动画
过渡 Container 的属性
渐入渐出 widget
Hero(跨页面共享元素)动画
页面转场动画
模拟物理特性动画
交错动画
构建菜单的交错动画
API 概览
开发
数据调用和后端
状态管理
介绍
从声明式的角度思考
短暂状态 & 持久状态
简单的状态管理
状态管理参考
网络 & http
概览
从网络上获取数据
构建需要认证的请求
发送数据到服务器
更新网络上的数据
删除网络上的数据
WebSocket 通信
序列化
JSON 序列化
在后台处理 JSON 解析
持久化
将 key-value 数据存储在硬盘上
读写文件
利用 SQLite 持久化数据
Firebase
Google APIs
应用的无障碍和国际化
无障碍
国际化
平台集成
支持的平台
构建桌面端应用
撰写平台代码 (插件编写实现)
Android 平台
添加闪屏页
调用原生代码
托管 Android 原生视图
在 Android 上恢复状态
构建适合 Chrome OS 的 Android 应用
iOS 平台
使用 Apple 的系统库
添加启动页
添加 iOS App Clip 支持
添加 iOS App 扩展
调用原生代码
托管 iOS 原生视图
iOS 平台调试
在 iOS 上恢复状态
Linux 操作系统平台
构建 Linux 桌面软件
macOS 操作系统平台
构建 macOS 应用
C 语言代码集成及调用
Web 平台
构建一个 Web 应用
Web 平台常见问题
Web 平台渲染器
自定义 Web 应用初始化
在网页里显示图片
Windows 操作系统平台
构建 Windows 桌面软件
Package 和插件
使用 package 和插件
开发 Package 和插件
Happy paths 项目
Flutter Favorites 项目
Package 和插件网站
open_in_new
测试和调试
测试
概览
Widget 测试
介绍
寻找 widgets
模拟滚动
模拟用户操作
集成测试
介绍
编写并运行集成测试
衡量集成测试的性能指标
单元测试
介绍
模拟依赖
测试插件
在测试中处理插件代码
调试
调试工具
通过代码调试应用
使用原生语言的调试
Flutter 的构建模式
常见的 Flutter 错误
处理错误
将错误上报到收集服务
性能优化
概览
使用 Impeller **新增**
性能最佳实践
应用大小
延迟加载组件
渲染性能
性能分析
着色器编译时卡顿
性能指标
性能常见问题和回答
附录
打包部署
混淆 Dart 代码
配置 flavors
构建和发布为 Android 应用
构建和发布为 iOS 应用
构建和发布为 macOS 应用
构建和发布为 Linux 应用
构建和发布为 Windows 应用
构建和发布为 Web 应用
持续部署
将 Flutter 添加到现有应用
介绍
将 Flutter 添加到现有 Android 应用
工程设定
添加单个 Flutter 页面
添加一个 Flutter Fragment
添加 Flutter 视图
Plugin 初始化
将 Flutter 添加到现有 iOS 应用
工程设定
添加单个 Flutter 页面
调试及热重载
多个 Flutter 实例
加载顺序和性能
工具 & 代码编辑器
Android Studio & IntelliJ
Visual Studio Code
DevTools
概览
在 Android Studio & IntelliJ 中安装 DevTools
在 VS Code 中安装 DevTools
利用终端命令安装 DevTools
Flutter inspector
性能视图
CPU 性能视图
内存视图
调试控制条视图
网络视图
调试工具 Debugger
日志视图
应用体积工具
发布日志
SDK 概览
Flutter pubspec 选项
自动修复
代码格式化
Flutter 相关概念
Flutter 架构概览
Flutter 工作原理
理解布局约束
Flutter 构建模式
热重载
平台行为差异和适配
开发者资源列表
学习
官方博文
社区中文教程
相关书籍
技术视频和在线资源
Dart 资源列表
贡献
提出 Bug
为 Flutter 做出贡献
open_in_new
工具包
休闲游戏工具包
新闻内容工具包
常见
常见问题解答
使用 Google 字体库
open_in_new
官方品牌资源
open_in_new
更多资料
了解 Dash
Flutter Widget 目录
Flutter Widget 列表
Flutter API 文档
open_in_new
flutter 命令行文档
安全误报
多平台
移动平台
Web 平台
桌面平台
嵌入式平台
开发
学习资源
Flutter Favorites 系列插件
使用 Packages
盈利
游戏
新闻
生态
社区
盈利
成功故事
关于中文文档
文档
最新更新
IDE 集成
热重载
性能分析
安装 Flutter
开发者工具
Cookbook
Codelabs
社区教程
开始使用
邀请
参与 2023 第二季度 Flutter 开发者调查
。
开始使用 Flutter
1. 安装和环境配置
2. 编辑工具设定
3. 开发体验初探
4. 编写第一个 Flutter 应用
5. 了解更多
拥有其他平台开发经验?
给 Android 开发者的 Flutter 指南
给 iOS SwiftUI 开发者的 Flutter 指南
给 iOS UIKit 开发者的 Flutter 指南
给 React Native 开发者的 Flutter 指南
给 Web 开发者的 Flutter 指南
给 Xamarin.Forms 开发者的 Flutter 指南
声明式 UI 介绍
Flutter 对比 Swift 的并发
Dart 语言概览
open_in_new
保持版本更新
版本升级
SDK 版本列表
最近更新
版本发行注记
破坏性改动
兼容性策略
教程和样例代码
Flutter Gallery 应用
open_in_new
GitHub 上的样例应用
open_in_new
实用教程 (Cookbook)
Codelabs
用户界面
介绍
布局构建
介绍
布局构建教程
列表 & 网格
构建与使用列表
构建一个横向列表
构建一个网格视图
构建包含不同类型元素的列表
处理长列表
滚动
概览
使用 Slivers 实现各种滚动需求
在列表开头添加一个浮动的顶栏
构建一个平行错位滚动的效果
响应式设计
创建响应式和自适应的应用
构建自适应应用
根据旋转角度更新应用的界面元素
设计 & 主题
Material 设计
概览
利用主题来共享样式
添加抽屉
显式提示栏
在应用中添加 tab
文字
字体 & 版式
使用自定义字体
将字体从 package 中对外暴露
自定义图形
使用自定义的着色器
交互
为你的应用添加交互
手势
介绍
处理点击
拖动界面元素
添加 Material 风格的水波纹
实现滑动取消
输入 & 表单
创建输入框并且调整样式
读取输入框的内容
处理输入框的内容变动
管理输入框之间的焦点
构建具有校验功能的表单
实现快捷方式
管理键盘焦点
资源 & 媒体
添加资源和图片
加载网络图片
从占位图过渡到图片
播放及暂停视频
导航 & 路由
概览
导航至新页面并返回
传递数据到新页面
从新页面返回数据
设置 Deeplink
设置 Android Deeplink
设置 iOS Universal Link
设置 Web 的 URL 策略
动画 & 过渡
概览
教程
隐式动画
过渡 Container 的属性
渐入渐出 widget
Hero(跨页面共享元素)动画
页面转场动画
模拟物理特性动画
交错动画
构建菜单的交错动画
API 概览
开发
数据调用和后端
状态管理
介绍
从声明式的角度思考
短暂状态 & 持久状态
简单的状态管理
状态管理参考
网络 & http
概览
从网络上获取数据
构建需要认证的请求
发送数据到服务器
更新网络上的数据
删除网络上的数据
WebSocket 通信
序列化
JSON 序列化
在后台处理 JSON 解析
持久化
将 key-value 数据存储在硬盘上
读写文件
利用 SQLite 持久化数据
Firebase
Google APIs
应用的无障碍和国际化
无障碍
国际化
平台集成
支持的平台
构建桌面端应用
撰写平台代码 (插件编写实现)
Android 平台
添加闪屏页
调用原生代码
托管 Android 原生视图
在 Android 上恢复状态
构建适合 Chrome OS 的 Android 应用
iOS 平台
使用 Apple 的系统库
添加启动页
添加 iOS App Clip 支持
添加 iOS App 扩展
调用原生代码
托管 iOS 原生视图
iOS 平台调试
在 iOS 上恢复状态
Linux 操作系统平台
构建 Linux 桌面软件
macOS 操作系统平台
构建 macOS 应用
C 语言代码集成及调用
Web 平台
构建一个 Web 应用
Web 平台常见问题
Web 平台渲染器
自定义 Web 应用初始化
在网页里显示图片
Windows 操作系统平台
构建 Windows 桌面软件
Package 和插件
使用 package 和插件
开发 Package 和插件
Happy paths 项目
Flutter Favorites 项目
Package 和插件网站
open_in_new
测试和调试
测试
概览
Widget 测试
介绍
寻找 widgets
模拟滚动
模拟用户操作
集成测试
介绍
编写并运行集成测试
衡量集成测试的性能指标
单元测试
介绍
模拟依赖
测试插件
在测试中处理插件代码
调试
调试工具
通过代码调试应用
使用原生语言的调试
Flutter 的构建模式
常见的 Flutter 错误
处理错误
将错误上报到收集服务
性能优化
概览
使用 Impeller **新增**
性能最佳实践
应用大小
延迟加载组件
渲染性能
性能分析
着色器编译时卡顿
性能指标
性能常见问题和回答
附录
打包部署
混淆 Dart 代码
配置 flavors
构建和发布为 Android 应用
构建和发布为 iOS 应用
构建和发布为 macOS 应用
构建和发布为 Linux 应用
构建和发布为 Windows 应用
构建和发布为 Web 应用
持续部署
将 Flutter 添加到现有应用
介绍
将 Flutter 添加到现有 Android 应用
工程设定
添加单个 Flutter 页面
添加一个 Flutter Fragment
添加 Flutter 视图
Plugin 初始化
将 Flutter 添加到现有 iOS 应用
工程设定
添加单个 Flutter 页面
调试及热重载
多个 Flutter 实例
加载顺序和性能
工具 & 代码编辑器
Android Studio & IntelliJ
Visual Studio Code
DevTools
概览
在 Android Studio & IntelliJ 中安装 DevTools
在 VS Code 中安装 DevTools
利用终端命令安装 DevTools
Flutter inspector
性能视图
CPU 性能视图
内存视图
调试控制条视图
网络视图
调试工具 Debugger
日志视图
应用体积工具
发布日志
SDK 概览
Flutter pubspec 选项
自动修复
代码格式化
Flutter 相关概念
Flutter 架构概览
Flutter 工作原理
理解布局约束
Flutter 构建模式
热重载
平台行为差异和适配
开发者资源列表
学习
官方博文
社区中文教程
相关书籍
技术视频和在线资源
Dart 资源列表
贡献
提出 Bug
为 Flutter 做出贡献
open_in_new
工具包
休闲游戏工具包
新闻内容工具包
常见
常见问题解答
使用 Google 字体库
open_in_new
官方品牌资源
open_in_new
更多资料
了解 Dash
Flutter Widget 目录
Flutter Widget 列表
Flutter API 文档
open_in_new
flutter 命令行文档
安全误报
使用图片 (Images)
实用教程
使用图片 (Images)
使用缓存图片
占位符和网络图片淡入
显示网络上的远程图片