January 2024: A 10M App Switching to Flutter, Distributing Flutter Desktop Apps, Flutter Engineering Book

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

Flutter Videos

This month, these two videos have caught my attention.

📹 Why am I switching to Flutter in 2024

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

📹 UI Tests

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:

Articles from the Flutter community

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:

📝 Scaling a Flutter team

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:

📝 Why is Flutter Fast? — Part 1: Sublinear Building

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 BuildContext
  • how can Flutter render the initial layout with linear performance and update an existing layout with sub-linear performance
  • how the State object works internally

Here’s the first article, which also includes links to parts 2 and 3:

Flutter Engineering Book

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:

Latest from Code With Andrea

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

📝 GitHub Copilot: Tips and Tricks for Flutter Devs

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:

📝 How to Build a Robust Flutter App Initialization Flow with Riverpod

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:

💬 New Discord Server

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:

The new Discord server for Code with Andrea
The new Discord server for Code with Andrea

If you also want to join, this is the link:

📮 Updated Newsletter

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:

💻 Course Platform Launch Date

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:

What’s Next?

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.

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.