As far as the Flutter world is concerned, September has been fairly quiet, and I don’t have many news or major announcements to share this month.
To make up for it, I published more articles than usual on my site, and you’ll find a full recap below. 🙂
So let’s get to it! 🔥
As I write this newsletter, the Flutter & Firebase Festival is taking place in Prague. F3 is a two-day event with talks, workshops, and codelabs. While I couldn’t attend in person, I look forward to catching up with all the sessions once the recordings become available.
That said, here’s a summary of articles and videos that caught my attention this month. 👇
If you’ve been using Flutter for a while, you’re probably familiar with Flutter Gems, a curated list of useful Dart & Flutter packages.
I found the site very useful on many occasions, and it’s great to see that this community effort continues to build momentum.
For all the details, read the blog post:
- Flutter Gems turns 3 — We now have 5500+ Dart & Flutter packages neatly categorized in 175 categories, along with 500+ open source Flutter apps!
If you want to create home screen and lock screen widgets on iOS and Android, you have to use the native SDKs (and not Flutter itself), as explained in this codelab.
Once you’ve done that, you can pass some data between your Flutter app and the Home Screen widget, and this is done by writing Dart and native code.
For an introduction to this topic, check this latest video from the Flutter team:
If you want to write maintainable code, adopting a layered architecture, such as Clean Architecture, can be one way forward.
But if you jump on the Clean Architecture bandwagon, you’ll have to become familiar with the data, business, and presentation layers, as well as the differences between entities, use cases, repositories, models, data sources, providers, and widgets (oh my! 😱).
Luckily, this video by Flutter Mapp explains how everything is linked together with some nice visual explanations:
Over the last few weeks, I published three new articles and updated a few others on my site.
If you missed them, here’s a handy recap. 👇
App architecture has always been and continues to be a very important topic.
After writing about it extensively in my articles and gathering feedback from the community, I decided to revisit some of my content on this topic.
And in this article, I offer a good introduction to the reference app architecture I use in all my projects:
If you’ve been coding for some time, you’ve probably come across terms such as MVC, MVP, and MVVM, as well as Clean Architecture and other popular architectures for Flutter app development (such as Bloc and Stacked).
So this article offers a comparison between my reference app architecture and all these other popular solutions:
Over the years, I’ve answered thousands of questions from my courses and gathered many interesting insights.
In particular, I noticed that some students tend to over-complicate things when using Riverpod. A big source of confusion is which providers should be used for data fetching and data mutations.
So, last week, I shared a Riverpod tip with a simple rule you can follow:
- When fetching data, use a
- When mutating data, use an
But there is much more to cover about this topic. So I decided to write a complete article about it:
Sometime last year, I’ve written an in-depth article about how to store API keys in Flutter. The article has been very popular (40K+ views to date), and its main focus is on how to store keys on the client.
But what about server-side API keys?
Just recently, I tackled this while adding Stripe payments to the eCommerce app I’m building as part of my Flutter & Firebase course.
Figuring out how to store API keys securely with 2nd-gen Cloud Functions was a challenge, so I’ve written this guide explaining every step in detail:
For your convenience, I’ve made all of them (120+ and counting) available on this GitHub repo, and I hope you’ll find them useful:
That’s all for today. 🙂
Have a great week and happy coding!