October has been a pretty exciting month for Flutter.
And in this newsletter, I will share new videos from the Flutter and Firebase teams, along with some interesting resources from the community, and a couple of large open-source apps too.
So let’s dive in!
Here’s an overview of the latest resources from the Flutter team!
The DevTools are a handy suite of tools for debugging and profiling your Flutter app.
If you want to get started with the DevTools, this video offers an excellent high-level overview of all the features:
And if you want to go deeper, don’t miss this series of in-depth articles.
One of the biggest challenges of multi-platform development is creating a high-quality experience from the smallest devices (such as wearables) to the largest ones (such as tablets and beyond).
In particular, developing for large screens poses unique challenges, such as how to retain state when the device rotates or the window size changes, and how to handle keyboard, mouse, and trackpad input.
And this article offers a good overview of how to solve a range of problems that are common when running on large screens:
Firebase is the most popular BaaS for Flutter app development and is constantly being improved.
And with some creativity, Firebase can be used to create some really cool experiences, such as this one. 👇
During the Flutter & Firebase Festival, Roaa Khaddam presented a talk called Real-time Animated Generative Art with Flutter & Firebase.
As part of this, she shared a cool demo that uses Flutter’s
CustomPainter and Firestore real-time listeners to create some animated generative art.
The complete source code is on GitHub, along with a video preview of the end result:
Until recently, creating backups for your Firestore DB was a complex task that required significant effort to automate.
But after watching the September Release Notes, I was delighted to discover that Firestore scheduled backups are now supported, and this page covers all the details:
Firebase extensions are a great way to add useful functionality to your Firebase backend without writing all the code yourself.
So I particularly enjoyed this video, showing how to use Firebase AI extensions to generate video summaries inside a video-sharing app using Cloud Functions:
Alongside all the official resources, here are a couple of my favourite updates from the community.
A month never goes by without people arguing against Riverpod and its use of global variables. 😅
As someone who’s intimately familiar with Riverpod, I usually roll my eyes and move on.
But poor takes can indeed be confusing (or downright misleading) for newcomers. So I was pleased that Randal Schwartz took the time to put this video together and dispel the Riverpod “global” myth:
When writing asynchronous code in Dart, you may come across something known as a Completer, which is a way to produce a
Future that can be completed or rejected later.
Completers are very effective in cases where you need full control over your asynchronous logic, and I found them very useful in some of my apps.
If you want to learn more about them, this article by Didier Boelens covers all the details:
If you want your code to follow best practices and clear conventions, adding static code analysis is one of the best investments you can make.
By default, all new Flutter projects are already configured with the flutter_lints package, and the Dart analyzer works in tandem with your IDE to suggest fixes when you violate lint rules in your code.
To take things further, DCM (formerly Dart Code Metrics) introduces additional lints that help you find problems and suggest fixes in your code. And in the latest 1.10.0 release, a bunch of new lints and improvements have been added.
For all the details, read this:
When it comes to open source, there are a ton of example apps built by Flutter enthusiasts who want to share their work.
However, it is rare for fully-fledged applications to be published with complete source code for everyone to see.
And this month, I’ve discovered two more projects worth sharing. 👇
This budgeting app has gathered a lot of interest on Reddit, and was built by a single developer over the space of two years.
Its features include a polished UI with seamless transitions and animations, a SQL database (the Drift package), cross-platform syncing, notification reminders, and much more.
If you want to try the app or browse the source code, head over to the official website:
Another app I want to share is GG, which was made to discover free game giveaways from popular gaming platforms like Steam.
In addition to sharing the source code on GitHub, the author also published a blog post explaining how he went from idea to published app with 12K users.
I really liked how the author shared the technical aspects of building the app, as well as the strategies he used for marketing and promotion, and the lessons he learned along the way:
Since the last newsletter, I’ve added a complete module about Stripe payments to my Flutter & Firebase course and shared one new article on my site. 👇
If you ever need to add in-app subscriptions to your Flutter app, or take payments from your users using Stripe you’ll likely need to implement some webhooks in your backend.
But if you’ve never worked with webhooks before, you may find them a bit confusing.
To help with this, I created this guide, and I hope you’ll find it helpful:
On a closing note, I want to mention that Black Friday takes place on the 24th of November this year.
And just like I’ve done in previous years, I’ll be offering all my courses with a significant discount - so keep an eye on your inbox as the date comes closer.