本文由 简悦SimpRead 转码,原文地址 medium.com
大家好!👋
大家好!👋
这些天我一直在考虑开始帮助初级Flutter开发者进入这个神奇的框架的第一步,类似于做导师的事情。
我一直在思考什么是帮助他们的最好方式,我意识到研究Flutter资源并与大家分享将是一个很好的帮助,同时也能让这个社区变得更大。
当我开始自己学习Flutter的时候,我有点困惑,不知道如何开始,应该先学什么,等等,所以这篇文章旨在通过不同的资源来帮助大家,让大家在这条路上走得更轻松。
另外,有时候我和Flutter的初学者聊天,他们问我关于课程、文章等等,当他们想学习的时候,我就做了研究并和他们分享,但最后,情况还是一次又一次的重复......所以......我问自己......如果有一个地方有所有这些资源,会是一个好主意吗,我想,正确的答案是YES!
有大量的例子、教程等等,所以我收集了其中一些与你分享。如果你知道更多,你可以在这里分享,以帮助其他人。
所以,如果你在读这篇文章,可能是因为你刚开始接触这项技术,或者知道基础知识并想了解更多。
这是我认为必须牢记的概念的一个快速表格。
Flutter。
Dart的概念。
常见的Widget。
Context
Pub.dev - 包管理。
响应式的布局和主题。
状态管理。
测试。
导航。
HTTP包与API的连接。
Flutter + Firebase。
动画和CustomPaint。
社区。
** 此表在未来可能会改变 **
Flutter
首先,我将与你分享官方网站和youtube频道,在那里你将找到很多与Flutter有关的有用信息。在Youtube频道中,有不同的视频列表,我觉得很有趣(本周小工具,解密Flutter,无聊的节目,等等)。
所以,请看看吧!🙌
Dart的概念
要学习关于dart的主要概念,你有很多资源,如codelabs,课程,文章,等等。
首先,我想和你分享一个快速视频,说明为什么Flutter使用Dart作为一种语言。
这些是我发现的一些关于dart的资源,很有意思。
- 官方网站
- Dart网站的Dart教程
- Google的Codelabs
- Dart课程-Flutterly
- Vandad Nahavandipoor - Dart课程
- 每个Flutter开发者都应该知道的16个Dart技巧和窍门 - 与Andrea一起编码
- 深入了解Dart和Dart编译器 - Majid Hajian
常见的Widget
这是一个很大的话题,因为有大量的Widget需要学习,现在,我将与你分享官方网站,那里有一个Widget的目录,另一个是Flutter Youtube频道的 "Widget of the week "列表,在那里你会发现很多如何使用每个Widget的例子,还有一个"Container"挑战,如果你想把所有关于容器Widget的知识用于实践,我觉得很有趣。
- Flutter目录
- “本周Widget”的播放列表
- Flutter Container的挑战 - Alfonso García Santiago
- Flutter Widget要点 - RetroPortal Studio
- Flutter提示和Widget - Roaa
语境
这是每个Flutter开发者都应该知道的事情,因为在某些情况下存在误解,人们在没有逻辑的情况下使用它,然后出现了很多错误和头痛的问题。
在这里,我将与你分享一些谈论上下文的精彩资源。
- 为什么每个Flutter开发者都应该关心BuildContext - Nash
- BuildContext | 解码Flutter - Flutter youtube频道.
- Builder & BuildContext - 每个人都应该理解这一点 - Johannes Milke
- 为什么BuildContext很重要? - Diegoveloper. (西班牙语)
公共开发与软件包
这是一个可以找到各种包的网站,这些包是人们创建并与所有flutter开发者分享的,以帮助他们的应用。
同时,您也可以创建您自己的软件包并上传至此,以帮助其他开发者。
响应式布局和主题
Flutter可以在多种设备和环境中使用(移动、网络和桌面),因此,处理您可能拥有的所有不同尺寸是超级重要的。要做到这一点,我们需要创建响应式的布局。你可以用不同的方式来做,使用MediaQuery,LayoutBuilder,包...
- 创建一个响应式的Flutter应用程序 - Flutter网站
- 如何在Flutter中建立一个响应式的布局--Codemagic
- 布局包 - Jaime Blasco
- 响应式应用程序的响应式布局 - Tadas Petra
- 如何使Flutterverse具有响应性 - Argel & Diegoveloper (西班牙语)
此外,我想提及以良好方式使用主题的重要性。你需要遵循一些准则,以便在你的应用程序中拥有一个好的主题。
在这里,我将分享一些例子,如果你不想自己做的话,对我来说也是管理主题的最好的软件包之一。
- 使用主题来共享颜色和字体风格--Flutter网站.
- 为Flutter应用程序添加主题:开始 - Raywenderlich
- 像专业人员一样为您的Flutter应用程序设计主题|Flutter UI设计|Flutter的黑暗模式 - RetroPortal Studio
- FlexColorScheme包 - Mike Rydstrom
状态管理。
这是一个重要的事情,当你在构建一个应用程序时,要记住这一点。有几个包可以帮助你处理你的应用程序的所有可能的状态。
另外,Flutter提供了一种改变应用程序状态的方法,这要归功于_StatefullWidget_类和_setState_方法,但这只建议在你的应用程序很小或者是一些准时的时候使用。
通常情况下,为了处理应用程序的状态,开发人员使用pub dev中的一个解决方案。
在我的例子中,我使用Flutter Bloc,here我解释了更多关于如何使用它,但你可以根据你的喜好选择任何你想要的。
我将与你分享其中的三个。链接来自pub.dev如果你想了解更多信息,我强烈建议你访问每个状态管理方案的官方网站。
测试
如果你想成为一个好的开发者,你应该学会测试。在Flutter中,你可以做不同类型的测试,如单元测试、集成测试和小工具测试。
最近我写了一篇关于初学者测试的文章,你可以找到它 here。
这些是很好的例子。
- 如何测试Flutter应用程序 - Google Codelab
- Flutter的测试基础知识课程--Very Good Ventures
- Widget测试 | Jorge Coca | Google Developers North America
- Flutter测试初学者 - Robert Brunhage
- 测试Flutter应用程序 - 确保你的代码工作(The Boring Flutter Development Show)
- 如何在Flutter中进行单元测试 - FilledStacks
- Flutter初学者测试指南 - ResoCoder
导航
如果您需要改变您的页面导航到另一个页面,您将需要使用导航。在flutter中,您可以通过不同的方式进行导航,并存在不同的解决方案来实现。
- 导航基础知识 - Flutter网站.
- 导航到详细页面并传递数据 - Flutter website.
- Flutter: Push, Pop, Push - Pooja Bhaumik
- Go 路由器包 - 官方网站.
用于连接API的HTTP包
在大多数应用程序中,您需要连接到一个API来获取数据并将其显示在您的应用程序中。要做到这一点,在flutter中你需要一个HTTP包的帮助。我认为,这三个包是最常用的。
Flutter + Firebase
通过Flutter,你可以使用Firebase现今的很多功能。这些都是你可以在每个设备上使用的东西。
这里你将会找到所有的文件。
另外,有很多人在做很好的教程来教其他开发者,当然,Flutter网站也有一些codelabs。
这些是其中的一些。
- Firebase - Flutter网站
- 在Flutter上开始使用Firebase - Firecasts
- Flutter教程。使用Firebase.Email/Password的完整Auth流程。FlutterFire Auth UI - Johannes Milke
- Flutter的Firebase实时数据库教程 - Raywenderlich
- 使用Firebase的Flutter分析 - FilledStacks
- 使用FlutterFire和非常好的CLI的多个Firebase环境的Flutter Flavors设置 - Code with Andrea
- Flutter + Firebase: 我们如何建立CrochetApp - Daria Orlova
动画和自定义画师
这是在Flutter中学习的一个有趣的话题,因为动画和自定义画师会使你的应用程序对用户来说更漂亮。
您可以使用Flutter为您提供的小部件来做简单的动画,或者您可以创建自己的动画。_这里你将会找到更多关于它的信息。
顺便说一下,这里有一些与动画和自定义画师有关的教程的例子。
- 动画教程 - Flutter网站
- Diegoveloper Youtube频道(西班牙语和英语)
- 通过实例学习Flutter动画+GitHub上的免费图库应用--与Andrea一起编码
- Rive网站
- "兔子搜索 "应用中的自定义AppBar - Daria Orlova
- Animation示例 - Dominik Roszkowski
- 深入了解Flutter中的CustomPaint - Deven Joshi
- 如何用Flutter CustomPaint Widget绘制和动画设计 - Codemagic
- Flutter的CustomPaint:用Flutter Shape Maker轻松实现 - Paras Jain
社区
作为Flutter开发者,最好的部分之一是社区。有大量的团体被创建来分享、帮助和联系其他Flutter开发者。可能在您的国家/城市,有一个或多个Flutter社区,如果没有,也许开始一个新的社区会是一个好主意,不是吗?
这些社区在Twitter上有很大的影响力,如果你有兴趣与更多的flutter开发者联系,我强烈建议你进入Twitter。在那里你会发现很多在线活动、Twitter空间、文章、技巧等等。
现在有趣的是,所有的周四和周五都是Twitter空间,谈论不同的Flutter主题。
- 周四:Majid Hajian
- 星期五:dArtists - Mangirdas Kazlauskas & Danny
此外,如果你认为自己是女性或跨性别的,并对Flutter SDK感兴趣,你有一个很棒的社区,叫做Flutteristas。我喜欢这个社区。
我创建了一个资源库,目的是为了拥有所有这些资源,并以更多的方式进行合作。如果你知道更多有趣的资源,你可以创建一个新的PR,把它添加到文件中。
我想感谢所有做课程、文章和例子的人,以帮助其他开发者。如果你是那些与我们分享知识的flutter开发者之一,非常感谢你!
让我们继续把这个社区做得越来越大!
你可以在Twitter上关注我。
谢谢您的时间!
在Twitter上关注FLutter社区。twitter.com/FlutterComm