[译] Flutter 实用指南:给初学者的 6 个小帖士

我刚刚在 Google Play 商店 提交了一款名为 Steady Calendar 的应用,这是一款追踪极简主义习惯的应用,由个人妻子 Irina 设计,而且在我成为父亲一小段空闲时间内独立开发出来的。此 App 由 iOS 移植到了 Flutter。在上周由 @flutterfyi 组织的 Flutter Camp 上谈到的经验分享(演示文稿),我决定将个人谈话归结为对每一个人来讲更加丰富的东西,成为即将到来的 Flutter 课程 —— Flutter 实用指南的前奏。html

好吧,在开发完这个 App 后,我几乎再没有富余时间去投机取巧走捷径。我浪费了大量时间在认为本身必须掌握好 Flutter 上,最后结果也证实了毫无用处,纯粹是浪费时间。前端

因此说,这里提供一些给 Flutter 新人的建议。android

1. 在开始使用组件时尽量保持简单

Flutter 在示例代码及其大多数库中大量使用了 Material Design 组件。若是你想快速开发完 UI,或者没有时间同时编写 Android 和 iOS 应用,请坚持使用 Material Design。ios

然而,Material Design 的问题在于它可能会疏远你的 iOS 用户,除非能适当地个性化定制。Google 最近一直在努力使它的库更加灵活,并展现其兼容性,鼓励开发人员摆脱那些看起来像 Google Docs 的枯燥,重复的 UI。git

Flutter 确实提供了 “Cupertino” iOS 风格组件,可是以须要进行大量代码拆分为代价的,由于这些组件须要其余父组件才能正常工做。此外,在最近的一次活动中与其中一名员工交谈了解到,Google 并未专一于提供全面的、完善的 iOS 组件。github

在个人下一个应用中,我将大量定制 Material Design 来知足设计需求。这里有一些你可能想要学习的组件,你能够灵活安排你的时间来学习:编程

  • Scaffold 以及 AppBar(分别用于屏幕和导航栏的 Container)
  • Layouts,可以使用 Column、Row
  • Container(可以设置 ‘padding’、‘decoration’ 等)
  • Text
  • AssetImageNetworkImage 做为 Bonus)
  • RaisedButton(从如今起忘记 icon)

2. 从第一天开始忘记学习 Dart

Flutter 使用了 Dart,这个语言很是容易学习,即便是刚接触软件开发的人也是如此。甚至,让应用运行并渲染一些简单的 UI 根本不须要任何 Dart 知识。后端

在你熟悉了布局的基本知识,能在页面上获取一些内容以后,建议再花点单独的时间去阅读下 Dart。以后,具体取决于你的经验水平,你能够准备学习诸如处理事件(即点击按钮)之类的内容,甚至是从 API 中获取数据。api

3. 从如今起坚持使用无状态的组件

‘StatelessWidget’ 是任何 Widget 在 Flutter 中扩展的一个默认类。顾名思义,它们用于渲染不须要保持任何状态的组件。缓存

与之相对的是 ‘Statefull Widget’,Flutter 的文档经过展现,如何说明、处理事件和更改页面上的某些信息来呈现的。若是你是编程新手或初级开发人员,那么一开始就不须要学习这一点。我之因此这么说,是由于在学习任何东西之初,动力是继续前进的关键,你的主要关注点应该是能用一些内容去渲染漂亮的屏幕。

4. 创建一些“激励里程碑”

此外,在学习任何东西时,达到一些重要的里程碑是保持动力的关键。如下是我推荐的一些学习里程碑:

  • 第一个里程碑:可以开发具备简单布局、文本、尚不能点击的按钮和图像的页面。
  • 第二个里程碑:可以在真机上运行你的应用。这个很是酷,真的让人颇有动力。
  • 第三个里程碑:学习如何链接按钮,更改某些状态,并使用 StatefulWidget 在屏幕上渲染它。
  • 第四个里程碑:花几个小时阅读 Dart(若是你愿意,这一步甚至能够在上一个里程碑以前)。
  • 第五个里程碑:可以从公共 API(示例)获取一些数据并在页面上渲染。学习如何使用和反序列化 JSON。
  • 第六个里程碑:向朋友发布实际的 iOS 和/或 Android 版本。这个过程会让你感到惊喜,除非你还在评估 Flutter 是否适合你,相信我,尽早去完成这件事。即便这个应用对你的朋友和家人没什么用处,向他们展现你开发的成果,而且经过 iTunes Connect 或 Google Play 商店(更简单)将其尽早发送给测试用户。这是保持动力的真正使人惊叹的方式,并确信有一天你能够向公众推出这款应用。

5. 学会如何得到帮助

若是在 Stack Overflow 上找不到问题的答案,请习惯使用 Flutter Google Group。在实际提问时,我建议前者优先于 Stack Overflow。你能够在这里阅读更多建议。

尝试找一些能够帮助你的导师。你会发现 Flutter 社区的人们很是投入和热情。

6. 分享你的做品

我认为 Twitter 是分享你做品的一个不错的方式。即便是个简单的功能,简单地发布一张应用截图并说起 @flutterio 就真的很是激励了。

学习结语

总的来讲,在学习资源方面,你有不少能够去使用,但我仍未发现有足够实际的、点对点、通过实战考验的 Flutter 教程。固然,Google 制做的 YouTube 视频以及 Udacity 课程都很是棒。可是,这些课程只能覆盖你在应用商店里上架真正的应用所须要学习知识的五分之一。我之因此这么说是由于,最近我写了一个从 iOS 到 Flutter 端的简单应用:Steady Calendar,我发现像 JSON、API、管理多个构建环境、本地化、缓存、代码组织、状态管理、为设计真正的自定义 UI 调整资料等等,都须要深刻挖掘。

因此,我计划发布一个测试版 Flutter 课程,在此你将把我学习 Flutter 的经验,总结为实用的、更“点对点”类型的教程,这些教程将重点关注 Flutter 和全部可能须要写真正上架应用的一些技术诀窍。

若是你想在我 18 年 7 月发布第一课时注册收到通知,请在此处注册:实用的 Flutter 教程.

祝你在 Flutter 的世界里玩的开心!

若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏

相关文章
相关标签/搜索