通过 codelabs、YouTube 视频、详细文档等,找到您开始使用 Flutter 或继续学习之旅所需的一切。
成为 Flutter 开发人员
无论这是您第一次编程,还是您来自其他语言,我们都会帮助您走上正确的道路。
将您的技能提升到新的水平
以最适合您的方式提升您的技能——查看视频、高质量文档、codelabs 等等。
扩展您的 Flutter 知识
了解 Flutter 的新事物,继续扩展您的技能,并及时了解最新的公告和重大变更。
初学者
以前从未接触过 Flutter 或 Dart?我们来帮您。这段旅程将带您从“什么是 Widget?”到“我刚刚构建了我的第一个应用程序!”。
中级
这段旅程将带您从“我刚刚构建了我的第一个应用程序”到“我已准备好帮助其他开发人员!”。
高级
从“我能够帮助他人”到“我深入了解 SDK,并且能够领导一个团队构建、发布和维护一流的应用程序”。
在您安装时...
- 了解 Flutter 文档
- 访问 示例库
- 体验 Dart 代码
- 订阅 Flutter 和 Dart 博客
- 查看 StackOverflow 的 Flutter 标签
- 去订阅 YouTube 频道
-
- ...并观看 每周小部件,直到您的 IDE 准备就绪!
来自其他 SDK 或语言?
学习 Dart
- 访问 dart.dev,Dart 的官方网站
- 学习 为什么 Flutter 使用 Dart
- 完成 Dart 速查表 代码实验室
让您的应用程序看起来很酷
- 一个选项是 Material 设计
-
- 查看 他们的组件!
- 以及这些 Material 代码实验室!
- 需要灵感?
-
- 尝试 Johannes Milke 的视频
- 或 Super-Declarative 的小部件研讨会
- 或社区维护的索引,例如 Awesome Flutter!
了解如何使网络工作!
- 您是否看过 Flutter 食谱?它有 关于网络的一组文章
- 许多应用程序使用 http 包
- 了解 如何反序列化 JSON
-
- 还有一个 示例!
自信地导航
- Flutter 食谱中也包含了关于导航的文章!
- 顺便说一下,你可能会看到一些关于 Flutter 的路由器和更高级的导航的内容。它们很棒,但完全不是必需的!
Flutter 和状态管理
- 观看关于“状态管理”在 Flutter 中的含义的 I/O 演讲
- 你会惊讶地发现,仅仅使用一个StatefulWidget就能走多远!
- 下一步是尝试使用Provider和ChangeNotifier
-
- 观看这个无聊秀剧集
- 或者这些示例:provider_counter,provider_shopper
使用插件访问原生 API
- 阅读关于使用包和插件的指南
- 观看Matt 和 Andrew 在无聊秀中使用气压计
- 查看pub.dev,Dart 和 Flutter 的包生态系统
-
- 了解包评分
- ...以及Flutter Favorites
测试你的代码!
- 阅读Flutter 中测试的指南
- 阅读测试示例,它展示了多种类型的测试
- 使用测试 codelab练习你的技能!
加入社区!
- 查看社区目录
- 加入Flutter Community Slack并查看他们的博客
- 关注 Flutteristas on Twitter!
- 找到一个Flutter 聚会 near you
- 将你的应用程序提交到itsallwidgets.com
- 通过提交问题和提供反馈来参与 Flutter 的制作
让我们暂停一下
- ...然后去Flutter 内部
- ...并了解Flutter 的架构
- ...并学习 Flutter 对平台适配的理念
小部件之下是什么?
- 了解元素、键和状态对象,请观看 Widgets 101
- 观看来自 中国、欧洲 或 哥伦布,俄亥俄州 的 Flutter 框架技术演讲
Futures 和 Streams
使用隐式动画为您的 UI 增添活力
- 阅读 动画入门指南
- 观看 Flutter in Focus 关于隐式动画的视频
- 尝试 隐式动画代码实验室
资产呢?
- 需要动态加载字体?使用 google_fonts 包
- 阅读 将资产直接包含在应用程序中的指南
了解有关布局的更多信息
- 阅读有关 布局、约束 和 构建响应式应用程序 的指南
- 尝试 布局基础代码实验室
- 观看 MediaQuery 的本周小部件集
表单和验证
- 阅读一些 关于输入、验证和表单的食谱文章
- 查看 示例应用程序
Firebase
- 观看 入门 Firecast
-
- 别忘了订阅频道!
- 阅读 FlutterFire 文档
- 尝试 Firebase for Flutter 代码实验室 或 Firestore + 地图示例应用程序
- 学习如何使用 Cloud Firestore 结构化数据
深入了解插件和原生 API
- 阅读关于 平台通道 工作原理的指南
- 尝试 构建自己的插件的代码实验室
- 阅读 平台通道示例应用程序
本地数据
- 观看关于 管理本地数据 的技术讲座
- 观看 Simon Lightfoot 关于 状态恢复 的技术讲座,或观看 Pawan Kumar 的技术讲座
- 阅读一些 Flutter Cookbook 关于持久化的文章
回馈社区
- 加入社区!
-
- 在 Flutter 聚会 上做志愿者
- 回答一些StackOverflow上的问题
- 在GitHub上创建一个开源应用程序,并在itsallwidgets.com上发布
- Flutter 依赖于你!
-
- 在flutter/flutter中为你重要的 issue 点赞
- 为社区维护的插件或包做出贡献
学习一些 Flutter 的历史
- Eric Seidel 的Strange Loop 演讲或他的 DartConf 演讲(从 Flutter 仍然被称为“Sky!”的时候开始)。
- Ian Hickson 的关于为什么存在小部件的演讲
- Adam Barth 关于Flutter 的渲染管道的演讲
- 阅读Flutter 路线图以了解 Flutter 的发展方向
- 查看Dart 语言漏斗以了解 Dart 的发展方向
显式动画
高级布局/渲染
- 阅读一些 Flutter 社区关于 CustomPainter 的博客文章
- 阅读 Romain 的博客文章,了解如何构建自己的渲染对象
面向 iOS
- 访问Cupertino 小部件库
- 在VeggieSeasons 示例应用程序中查看 Cupertino 包的实际应用
- 观看 Google I/O 的使用 Flutter 为 iOS 构建应用程序
进行一些桌面开发
- 查看指南
- 尝试 桌面版 Codelab
绑定到原生库
- 阅读有关使用 dart:ffi 连接到 Dart 和 Flutter 应用 中的 C 风格库的信息,然后查看 示例应用
- 阅读有关 Dart 的 Web 应用 JS 互操作 的信息
联合插件
- 阅读有关 Flutter 的联合插件 的指南
- 查看 示例
尝试将 Flutter 添加到现有应用
- 阅读 概述 以及 Android 和 iOS 的部分
- 使用 添加到应用示例 进行练习
- 尝试使用 package:pigeon 生成添加到应用的代码
生产环境中的应用
回馈社区
- 创建或运行 Flutter 聚会
- 阅读有关 如何为 Flutter SDK 做贡献 的信息
- 为 重要的社区维护的插件或包 做贡献
- 阅读有关 成为 Flutter 的 Google 开发者专家 的信息