Believe it or not, I've been publishing a monthly newsletter for all my subscribers since October 2019!
And most recently, I've been thinking about ways to make this more accessible, engaging, and valuable for everyone.
So today, I'm pleased to announce the first edition of my new monthly newsletter! 📥✨
This comes with a brand new format, including two main sections:
- Flutter Top Picks: every month, I'll share a selection of resources and top picks that have caught my attention.
- Latest on Code With Andrea: this is similar to the past editions, with a summary of my latest Flutter articles and tips.
But there's more. All upcoming newsletters will be available online, and I'm working on a new dedicated page on my site where you'll be able to find all past editions.
With that said, I hope you'll enjoy all the content I have prepared for you.
On to the links! 👇
Get Doppio Today. A fully managed API for developers that enables you to generate beautiful PDF or screenshots and store them directly in your own S3 bucket without compromising privacy.
Over the last few months, many exciting things have happened in the Flutter ecosystem. Here's a summary of what piqued my interest.
You may have heard about Mason before.
It's an open-source CLI tool that makes it easy to generate custom code from templates that use dynamic variables.
Sounds complicated? Don't worry, as there are some great resources to get started.
This post from Felix Angelov at Very Good Ventures offers a good overview:
And most recently, the Flutter team published an official video about it:
As of today, we can already import the official Flutter Lint rules, and decide which ones to enable/disable in our project by customising the
Beyond flutter_lints, other linting packages are available too. This article by Mike Rydstrom compares them and offers some great recommendations about which lints to use in your own projects:
But up until today, it was
not possible very hard to create our own custom rules.
To overcome this, the Invertase team has launched a new custom_lint package that makes it a lot easier to create your own custom lints (thanks, Remi! 👏). For all the details, check the official announcement (which also includes a detailed video):
Many people dream of writing full-stack apps using Dart on the client and server.
Here's the original announcement:
Continuing on the topic of server-side Dart, Simon Lightfoot and Craig Labenz have recently recorded a new episode showing how to:
- work with WebSockets in Flutter
- deploy your own real-time Dart Backend on Google Cloud Run (using Docker)
Here's the video:
And here's part two as well:
I'm quite excited to follow more interesting developments on this space in the coming months. 🚀
The Dart team has recently published a comprehensive guide for all JS developers moving over to Dart.
This is an excellent resource not just for JS developers, but for everyone who wants to improve their knowledge of the Dart language.
So make sure you add this to your bookmarks:
As Flutter developers, I'm sure that we've all made the mistake of accessing a
BuildContext after awaiting for a
Future to complete.
This can cause a scary runtime exception known as "Looking up a deactivated widget's ancestor is unsafe":
And it happens because we should only ever use
I've covered this in one of my recent tweets, and this video by the Flutter team explains the issue in great detail so that you can do the right thing going forward:
The Invertase team has been on fire this month! 🔥
Their latest product is Zapp.run, a very promising IDE for building Flutter apps on the browser.
While Zapp was launched only last week, it already offers some very handy features that put it ahead of Dartpad, including:
- project explorer
- install any pub.dev package (that runs on web)
- integrated debugger
- preview and share
- GitHub integration
And while Zapp is not as powerful as VSCode, it's a great way to share live examples with others! 🙌
For all the details, check out the official announcement:
Alternatively, watch this video for a full overview of the features in the editor:
Aside from re-launching this newsletter, this is what I've been up to. 👇
Over the last few months, I've been sharing many Flutter tips and tricks on Twitter (here are the top 10 to date).
But Twitter is not the easiest place to find older content, so I've decided to make all my tips available on this new GitHub repo:
As of today, the repo already contains 60 Flutter tips, and I plan to add many more! So make sure to save this in your bookmarks! 👍
And FYI, I also have an entire page about Flutter tips right here on this site. 🙂
Singletons are a very controversial and debated topic in the software development community:
- Some people say you should avoid them at all costs. ❌
- Others are more pragmatic and use them only in specific cases. 🔍
- And some use them willy-nilly like there's no tomorrow. 😅
To bring some clarity, I've written this article that covers them in great detail and presents some alternatives:
Have you ever needed to register a listener as soon as the app starts?
But if you're not careful, you can end up with messy code in your
Luckily, the Riverpod package can help, and we can use it to initialize complex objects that have one or more dependencies while keeping our app startup logic neat and tidy.
This article covers all the details:
If you also want to learn about many advanced topics that you'll need as a professional Flutter developer, you can still enroll and get a 25% discount with this link:
That's all for today!
If you've enjoyed this newsletter or have suggestions about how I could improve it, let me know on Twitter. 🐦
And if you'd like to receive the next ones directly in your inbox, you can sign up here. 👇