Welcome to the first 2024 edition of my Flutter newsletter!
I hope this year you’ll learn many new things and continue to grow as a software developer.
As usual, I’m here for you, sharing new videos and articles from the Flutter community, as well as the latest updates from Code with Andrea!
Let’s dive in! 👇
This month, these two videos have caught my attention.
Andrei Lupsa is an indie developer who made a calculator app with 10M downloads on the Play Store. He recently started a YouTube channel, too, and I’m so happy that he’s sharing his journey and insights.
What’s more, he decided to rewrite his app in Flutter. And in this video, he talks about many of his decisions regarding state management, localization, navigation, storage, theming, and more.
If you want to learn from a real maker who knows how to ship, this is a must-watch! 👇
Automated tests are a great way to verify that your app looks and behaves are expected.
And when it comes to UI testing, there are three different techniques you can use:
- golden image tests: to verify the appearance of your app, down to each pixel.
- finder tests: to verify the size, text, padding, and background color of our widgets.
- PaintPattern tests: to verify that custom painters work as expected by checking against a list of drawing instructions.
For all the details, watch this video:
Here are some of my latest favourite articles from the community. 👇
📝 Packaging and Distributing Flutter Desktop Apps: The Missing Guide for Open Source & Indie Developers
If you want to build and distribute an open-source Flutter app on macOS, Windows, and Linux, don’t miss this three-part series by Ashita Prasad.
Each article contains a step-by-step guide showing how to create downloadable package installers, deal with code signing, add the relevant entitlements and permissions, and more.
For all the details, read on:
- Introduction & creating macOS
.dmg— Part 1 of 3
- Creating Windows
.exeinstaller — Part 2 of 3
- Creating Linux Debian (
.deb) & RPM (
.rpm) builds — Part 3 of 3
Scaling teams is hard and comes with many challenges. In this article, Jonas Uekötter shares some of the tips he learned as his company headcount grew three-fold.
Some of his insights include:
- Building a UI library as a product, using tools like Widget Book and DCM
- Ecosystem & Dependency Management
- Splitting code by team for easier ownership
- Pull Requests and Code Reviews workflow
- Documentation and Code search/reuse
For all the details, read the full article:
There aren’t many good articles about the internals of the Flutter framework. So, when I discovered this detailed three-part series by Cagatay Ulusoy, I decided to share it.
By reading part one, you’ll learn about:
- the Flutter widget, element, and render trees
- how they are related to the
- how can Flutter render the initial layout with linear performance and update an existing layout with sub-linear performance
- how the
Stateobject works internally
Here’s the first article, which also includes links to parts 2 and 3:
If you want to be a great software engineer, there are many things to be aware of:
- Software engineering concepts and design patterns
- Architecture, concurrency, parallelism, dependency injection and state management
- Software development processes, rules and guidelines, CI/CD, testing, and documentation
- Security, privacy, and accessibility
- Advanced UI concepts
And in his latest Flutter Engineering book, Majid Hajian has distilled all this knowledge, making it relevant for Flutter app development.
The book is available both in digital and paper format, and you can learn more here:
Over the last month, I’ve shared my 2023 retro along with my plans for 2024, published two new articles, launched a new Flutter Discord server, revamped my newsletter, and made more progress with my upcoming course platform. Phew! 😅
Here’s a summary. 👇
Over the years, Copilot has improved a lot, and the November 2023 VSCode release brought many new features and the latest GPT-4 model by OpenAI.
And in this article, I share a tour of all the latest Copilot AI features:
When users launch your Flutter app, it’s crucial to make a great first impression with a smooth onboarding process.
In this guide, I show how to write robust app startup code with useful techniques such as:
- Error handling with retry logic
- Asynchronous dependency initialization
- Eager provider initialization + requireValue
Here’s the link:
Four years ago, I started a Slack community to provide Q&A support to anyone who bought my courses and discuss interesting topics with the wider Flutter community.
Earlier this month, I decided to migrate to Discord and start a new server, which now has over 900 members and quite a bit of buzz:
If you also want to join, this is the link:
Earlier this month, I announced that I wanted to merge all my newsletters into one.
This transition is now complete, and as a result, there’s a single place on my site where people can sign up for my articles and monthly newsletter. As part of this, I’ve also redesigned my Flutter email course as a “Flutter Starter Pack”, which I now offer as a bonus to all new subscribers.
If you’re interested, you can join here:
Last month, I shared that I’m working on Code With Andrea Pro, my new course platform.
As an update, I’m happy to announce that this will launch on the 20th of February!
If you want to get a sneak peek and all the pre-launch details, join the waitlist today:
I’m preparing a new survey about my upcoming Flutter courses.
If you want to have your say, make sure you’ve signed up for my newsletter, and look out for the survey in the coming weeks.
Either way, I have a ton of cool stuff planned for 2024, and I can’t wait to share it with you.