September 2023: Flutter Gems Turns 3, Latest Flutter News, Videos, and Articles

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! 🔥

Flutter News and Videos

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.

Likewise, Flutter & Friends took place earlier this month, and I hope all the sessions will be published online, too.

That said, here’s a summary of articles and videos that caught my attention this month. 👇

📝 Flutter Gems turns 3

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.

And even though pub.dev introduced a topics page, I still prefer to browse packages by category on the Flutter Gems site.

For all the details, read the blog post:

📹 Home Widget (Package of the Week)

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:

📹 Flutter Clean Architecture Visual Explanation

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:

Latest from Code with Andrea

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. 👇

📝 Flutter App Architecture with Riverpod: An Introduction

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:

📝 A Comparison of Popular Flutter App Architectures

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:

📝 How to Fetch Data and Perform Data Mutations with the Riverpod Architecture

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 FutureProvider or StreamProvider
  • When mutating data, use an AsyncNotifier

But there is much more to cover about this topic. So I decided to write a complete article about it:

📝 How to Secure API Keys with 2nd-Gen Cloud Functions and Firebase

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:

Until Next Time

If you’ve been following me on Twitter and LinkedIn, you’ll know that I often share my Flutter tips and tricks on social media.

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!

Want More?

Invest in yourself with my high-quality Flutter courses.

Flutter In Production

Flutter In Production

Learn about flavors, environments, error monitoring, analytics, release management, CI/CD, and finally ship your Flutter apps to the stores. 🚀

Flutter Foundations Course

Flutter Foundations Course

Learn about State Management, App Architecture, Navigation, Testing, and much more by building a Flutter eCommerce app on iOS, Android, and web.

Flutter & Firebase Masterclass

Flutter & Firebase Masterclass

Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

The Complete Dart Developer Guide

The Complete Dart Developer Guide

Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Last updated to Dart 2.15.

Flutter Animations Masterclass

Flutter Animations Masterclass

Master Flutter animations and build a completely custom habit tracking application.