通过代码实验室、YouTube 视频、详细文档等,找到开始使用 Flutter 或继续学习之旅所需的一切。
成为 Flutter 开发者
无论您是第一次编程,还是来自其他语言,我们都会让您走上正确的道路。
将您的技能提升到新的水平
以最适合您的格式将您的技能提升到新的水平 - 查看视频、高质量文档、代码实验室等。
扩展您的 Flutter 知识
了解有关 Flutter 的新知识,继续扩展您的技能,并及时了解最新的公告和重大变更。
初学者
以前从未接触过 Flutter 或 Dart?我们已为您准备就绪。这段旅程将带您从“什么是 Widget?”到“我刚刚构建了我的第一个应用程序!”
中级
这段旅程将带您从“我刚刚构建了我的第一个应用程序”到“我准备帮助其他开发者!”
高级
从“我能够帮助他人”到“我深入了解 SDK,并且能够领导一个团队构建、发布和维护一流的应用程序”。
在您安装的同时...
- 了解 Flutter 文档
- 访问 示例库
- 感受 Dart 代码
- 订阅 Flutter 和 Dart博客
- 查看 StackOverflow 的 Flutter 标签
- 订阅 YouTube 频道
-
- ...并观看 每周 Widget,直到您的 IDE 准备就绪!
来自其他 SDK 或语言?
学习 Dart
- 访问 dart.dev,Dart 的官方网站
- 了解 Flutter 为什么使用 Dart
- 完成 Dart 速查表 代码实验室
让您的应用程序看起来很酷
- 一个选项是 Material 设计
-
- 查看 其组件!
- 以及这些 Material 代码实验室!
- 需要灵感?
-
- 尝试 Johannes Milke 的视频
- 或 Super-Declarative 的 Widget 研讨会
- 或像 Awesome Flutter 这样的社区维护索引!
了解如何使网络工作!
- 您是否看过 Flutter 菜谱?它有一组关于网络的 文章
- 许多应用程序使用 http 软件包
- 了解 如何反序列化 JSON
-
- 还有一个 示例!
自信地导航
- Flutter 菜谱也有一组关于此的 文章!
- 顺便说一句,您可能会看到一些关于 Flutter 的路由器和更高级导航的内容。它们很棒,但完全不需要!
Flutter 和状态管理
- 观看 关于“状态管理”对 Flutter 意味着什么的 I/O 演讲
- 您会惊讶地发现,仅使用 StatefulWidget 就能走多远!
- 一个好的下一步是尝试使用 Provider 和 ChangeNotifier
-
- 观看此 Boring Show 集
- 或这些示例:provider_counter、provider_shopper
使用插件访问原生 API
- 阅读 使用软件包和插件的指南
- 观看 Matt 和 Andrew 在 Boring Show 上使用气压计
- 查看 pub.dev,Dart 和 Flutter 的软件包生态系统
-
- 了解软件包评分
- ...以及 Flutter 收藏
测试您的代码!
- 阅读 Flutter 中测试指南
- 通读 测试示例,其中显示了多种类型的测试
- 使用 测试代码实验室 练习您的技能!
加入社区!
- 查看 社区目录
- 加入 Flutter 社区 Slack 并查看他们的 博客
- 关注 Flutteristas 推特!
- 在您附近找到一个 Flutter 聚会
- 将您的应用程序提交到 itsallwidgets.com
- 通过提交问题和提供反馈参与 Flutter 的制作
让我们暂停片刻
- ...并 深入了解 Flutter
- ...并了解 Flutter 的架构
- ...并研究 Flutter 对 平台适配 的理念
Widget 之下是什么?
- 在 Widget 101 中了解元素、键和状态对象
- 观看来自 中国、欧洲 或 哥伦布,俄亥俄州 的关于 Flutter 框架的技术演讲
Future 和 Stream
- 观看 Flutter in Focus 的 Dart Async 集
- 完成 异步编程代码实验室
使用隐式动画为您的 UI 增添趣味
- 阅读 动画简介指南
- 观看 Flutter in Focus 中关于隐式动画的集
- 尝试 隐式动画代码实验室
资产呢?
- 需要即时字体?使用 google_fonts 软件包
- 阅读 直接在您的应用程序中包含资产的指南
了解有关布局的更多信息
- 阅读关于 布局、约束 和 构建响应式应用程序 的指南
- 尝试 布局基础代码实验室
- 观看 MediaQuery 的每周 Widget 集
Firebase
- 观看 入门 Firecast
-
- 在您在那里时,不要忘记订阅该频道!
- 阅读 FlutterFire 文档
- 尝试 Flutter 的 Firebase 代码实验室 或 Firestore + Maps 示例应用程序
- 了解如何 使用 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 应用
绑定到原生库
- 阅读关于在 Dart 和 Flutter 应用 中使用 dart:ffi 连接到 C 样式库的内容,然后查看 示例应用
- 阅读关于 Dart 的 JS 互操作(用于 Web 应用) 的内容
联合插件
- 阅读关于 Flutter 的联合插件 的指南
- 查看 示例
尝试将 Flutter 添加到现有应用中
- 阅读 概述 以及 Android 和 iOS 的章节
- 使用 添加到应用示例 进行练习
- 尝试使用 package:pigeon 生成添加到应用的代码
生产环境中的应用
回馈社区
- 创建或运行 Flutter 聚会
- 阅读关于 如何为 Flutter SDK 做贡献 的内容
- 为 重要的社区维护的插件或包 做贡献
- 阅读关于 成为 Flutter 的 Google 开发者专家 的内容