If you haven't been paying attention to Flutter over the last month, you've missed a lot of cool stuff!
There's so much to cover between the Flutter 3.3 announcement, Flutter Vikings, and other exciting developments!
So let's dive in with my September newsletter, starting with the big announcement. 👇
Quick note: I'm hiring a Flutter content creator! Learn more here.
Open-Source Backend Server for Flutter Developers. Appwrite is a secure, self-hosted solution that provides developers with a set of easy-to-use REST APIs to manage their core backend needs. You can build anything with Appwrite! Click here to learn more.
Flutter releases are always full of goodies, and the latest one is no exception.
From the early preview of Impeller (the next-generation rendering layer) to the ongoing migration of Material Design 3 components to Flutter, to improved support for trackpad input and global text selection, many things have been cooking up.
If you've missed the official announcements, here they are:
Along with the latest Flutter release, I've been very impressed by the new Wonderous app by the gSkinner team:
The iOS App Store version already shows what Impeller can do on a production-quality app and sets a new benchmark for animation-rich experiences in Flutter.
Moreover, the Wonderous app uses a new open-source animations package that makes it easy to combine complex effects with a lightweight API.
For all the details, check the official blog post:
I admit that I haven't managed to catch up with all the talks yet. 😅
Hint: in the future, Riverpod will leverage code generation to automatically choose the right kind of provider for us.
If you use Riverpod in your apps, I highly recommend watching this (Remi's talk starts at 3:32:52):
And if you want to catch up with the remaining talks, you can find the full agenda and playlist here:
Over the last month, these were my two favourite articles from the community. 👇
If you want to learn what it takes to build animated scroll views, complex hero animations, gyroscope effects, and more, read this:
App architecture and state management are two of my favourite topics in Flutter.
So I particularly enjoyed this fresh take by Ryan Edge, explaining how Riverpod 2.0 helps us implement well-defined patterns such as fetching, caching, and managing mutations, just like React Query has done in the React world.
Ultimately, Riverpod exists to help us spend less time on architecture problems so that we can focus more on solving business problems.
Read the full post here:
In addition to all the above, other major announcements have been made. 👇
The highly awaited version 5.0 of GoRouter is now here!
This is a major release that introduces a host of new features, including:
- asynchronous redirects
ShellRoutefor nested navigation support (since v4.5)
RouterConfiginterface for easier initialization inside
Hopefully, the Flutter team will update the documentation soon.
For now, you can check out the new release on pub.dev:
And expect some new content from me, covering the new APIs in more detail. 👍
Appwrite is very easy to set up as a self-hosted solution, and hosted Appwrite services are coming soon.
To learn more, read the official announcement on Reddit:
Overall, 2022 seems to be a great year for BaaS solutions. So much so that Fireship has recently made a video about 5 Firebase alternatives:
It's great to see so much innovation in this space. All these competitive solutions (with affordable pricing) can only make our life easier as Flutter developers. 👍
I first covered the Zapp editor in my July newsletter.
So it's great to see that the Invertase team keeps adding new features.
I'm delighted with the new Live Previews and Embedding capabilities, which could come in handy for future tutorials on my site. 🙂
Read the official announcement to learn more:
The Decoding Flutter playlist is one of my go-to places for intermediate and advanced Flutter content.
And the last two videos did not disappoint, covering some less known topics such as scroll controllers and intrinsic widgets.
If you ever wanted to implement custom scroll behaviors on desktop, or simply understand how Flutter implements the native iOS scroll-to-top behaviour under the hood, check this video:
And if you've been struggling with custom child alignment inside a
Column widget, this comes in handy:
After completing my Flutter Foundations course last month, I took a much-needed vacation to Italy. 🇮🇹
But that hasn't stopped me from thinking about Flutter. 💙
And most recently, I published two new articles. 👇
When we localize a Flutter app, we can use the
BuildContext to obtain the localized strings inside our widgets.
But if we have some business logic that lives outside our widgets, how can we read the localized strings?
This article covers all the details:
When it comes to API keys and security, you should avoid two major mistakes:
- Committing a secret key to version control, making it visible to everyone on the Internet 🤯
- Forgetting to obfuscate your API keys, making it easier for attackers to reverse engineer your app and extract the keys 🛠
The guide above shows how to avoid these mistakes and covers three different techniques for storing API keys on the client, along with their trade-offs:
As I continue to share Flutter content on social media and my website, I'm now looking to hire my first Flutter content creator.
This hire will help me brainstorm, create, and share more Flutter tips and tricks on Twitter and LinkedIn.
For more details and how to apply, read the job description:
Thanks so much for reading this latest newsletter edition.
If you found this helpful, you can share it on Twitter.
And stay tuned for the next one!