30 June, 2020
Ever since Google released Flutter, this UI SDK, which makes it easier to develop applications for many platforms with just one codebase, has been getting more and more popular. A lot of developers are only now getting into it. But how to start? In this article, I will share my favourite Flutter resources for learning this technology.
Flutter can make it easy to develop simultaneously for various mobile platforms and desktop as well. Its performance is also impressive. If you want to know more about what Flutter is, try this basic Flutter tutorial. If you already know what it is, but want to learn even more, keep reading.
I would like to present to you my favourite resources to learn Flutter. They really helped me a lot to get familiar with this technology to the point where I can make my own Flutter projects and teach it to other people.
Flutter resources for developers
Below, you will find general resources that will help you get to know Flutter better, regardless of how much you already know. They include the official Flutter docs, YouTube videos, expert articles as well as source aggregators.
Official documentation – the essential Flutter resource
The official Flutter documentation is the best place for beginners and the first go-to site when in doubt. You will find anything you need when starting to learn Flutter – articles on how to set up the environment, Widgets catalogue and API reference. There are also many tutorials and samples that show new developers how to use Flutter API and build beautiful apps in record-breaking time.
The Boring Flutter Development Show
This is a YouTube show from Google developers where they try to implement different things in an hour as regular mortals do. You can expect all the problems we face while developing apps. If you ever asked questions like “Why doesn’t it compile?”, “Why is it not working?” then you will find it all while watching this show. I recommend this online show for anyone that wants to see real Googlers struggle and learn from their mistakes.
Flutter in Focus
It’s a YouTube series that will provide you with essential knowledge about different topics around Flutter in the convenient form of 10-minute videos. You will find videos on Dart features, Flutter widgets, or integrations with different tools.
The Flutter Reddit page is a place where you can find many highly informative posts on Flutter. A great stream of valuable information where you can find learning resources about Flutter in one place.
This is an aggregator of many articles and videos about all-things Flutter. All resources are categorized by topics related to Flutter.
For example, if you’re looking for information about Forms, you have to use the topmost menu and go to Input -> Forms. Tada! You’re now looking at all resources about Forms on Flutter Awesome.
Widget of the week
Another YouTube series from Google devs to learn about Flutter widgets. It’s a playlist with short one minute videos, each concerning one widget available in the Flutter SDK. I highly recommend you give it a try as it has many great videos to help you discover and learn about Flutter widgets.
It’s all widgets
This is a catalogue of existing apps or projects in progress. You can find different applications built by developers in the Flutter community and see what you can achieve with Flutter. I’m amazed by the number and diversity of apps that are created with Flutter.
A valuable site that provides aggregated resources on Flutter. A great page to search for tutorials, articles, and such about Flutter. Check it out, it’s a simple yet powerful resource.
Architecture & state management Flutter resources
When you get a little bit more familiar with Flutter and widgets, you’ll want to find information about how to build applications that can scale up and remain at very least maintainable. That will lead you to a question about what architecture you should use. With that challenge in mind, check out the resources below.
Flutter Architecture Samples
This is a GitHub repository about different architectures applied to the Flutter ToDo app. You will find anything from old MVC, BloC, mobx, or Redux examples. And if you’re already familiar with any given app architecture, you can find a sample of it in this repository. You should really try it. It’s a very good learning resource on how to build Flutter apps in different architectures.
BloC is currently the most popular state management library. You’re bound to come across it when you google for state management in Flutter. It is well-documented and you will find a lot of articles online (e.g. Medium) on how to use it. It was first introduced at Google IO. Here’s a video where you can check that out:
The pattern is based on sinks of events and stream of states. Events are mapped into states and emitted on the stream. You can read more about this pattern here.
This library is based on InheritedWidget. This allows you to ask for dependencies in the widget tree. The simplest explanation is that you can ask the Provider widget somewhere above your widget to return some data to you. This library is well-known in the Flutter community.
Get It is a service locator. It’s not exactly a dependency injection framework but it will help you to get your dependencies anywhere in the app. Use this if you don’t want your app to be tightly coupled with the Flutter framework.
Flutter resources – summary
I gathered all the resources from which I myself learned Flutter. With these resources, you can not only learn all the basics, but also dive deep into this multi-platform framework. What you are going to find is all the basic theoretical stuff, tutorial videos as well as more detailed content about architecture and dependency injection.
I really hope that it will all help you on your journey to learn Flutter. Good luck!