Tutorials
Implement Push Notifications with Firebase Cloud Messaging
Sending and responding to push notifications is a common feature of many (most?) Flutter applications, and the link above is a great jumping-off point if you want to learn how to do this.
Along with the general intro, you may also find the following pages helpful:
- Brief intro video highlighting FCM's capabilities
- Basic setup
- Setting things up on Apple platforms
- Linking APMs with FCM
- Initiating notifications from your own server
Adding a Splash Screen to Your App
Although Google lists this as an "advanced UI" feature, it's hard to imagine shipping a production-quality app without an initial splash screen (also known as a launch screen).
If you haven't already done this in your own app, this page covers what you need to do in order to set this up, both for iOS and Android.
Storing Key-Value Data Persistently
I know this one is very basic for most Flutter developers, but if you're new to Flutter you'll want to know how to persist your app's data. Although there are of course more complex approaches, you can often get by with storing simple key-value pairs for data which doesn't have sophisticated query needs. This article will help you get started in handling this data in a cross-platform manner.
UI Design
Using Themes to Style Your App
This cookbook article does a great job of concisely introducing the use of themes in Flutter to add consistent styling throughout your app.
And once you have these basics under your belt, you can take this to the next level with Mike Rydstrom's FlexColorScheme package, which I've also mentioned recently. Version 5 is hot off the press, and you can read all about it in the FlexColorScheme docs, or check out the FlexColorScheme playground, which you can use to explore various themes. The tool will even give you custom code which you can paste directly into your app.
Given that I've mentioned Mike's FlexColorScheme tool more than once in the last month, you'd think I might be a fan -- and you'd be correct. :-)
Architecture
Comparing Approaches to Flutter State Management
If you're developing an app of any complexity at all, one of the first things you'll need to decide is how your app will manage its state, and this article gives a nice overview of the various approaches you can take with state management in Flutter.
If you're coming at this from a declarative programming background (e.g., React, React Native, etc.), you should already be aware of why state management is important, and this article comparing the various state management approaches in Flutter should stand on its own.
If you're new to both Flutter and declarative programming, you may also want to review this intro to state management before you dive into the details of the various approaches.
Development Process
Adding Automated Tests to Your Flutter App
Flutter provides support for adding automated tests to your application. These may be added at different levels of granularity, from unit tests on operating on the class and method level to widget tests and integration tests, the latter of which allows you to test overall functionality and/or interaction between app components.
The Flutter cookbook offers jumping off points for several testing sub-sections if you're looking to support automated testing in your own apps.
// From Mark
Flutter Foundations
This issue I've decided to go with a "back to basics" theme. As Flutter continues to gain in popularity, there are many developers who are new to the Flutter ecosystem, and may not know where to start. I hope you'll find these articles helpful as you get oriented to the big picture of what building a robust Flutter app requires.
Enjoy!
Mark Winters