May 2025: Flutter 3.32, Dart 3.8, Material 3 Expressive, Local-First Apps with PowerSync

Google I/O is taking place this week, and while all the new AI stuff is grabbing the headlines, three Flutter sessions are also planned.

As usual, this newsletter is all about the latest from the Flutterverse:

  • The new Flutter 3.32 and Dart 3.8 releases
  • Flutter’s path towards seamless interop
  • A peek at Material 3 Expressive
  • New videos and articles from the community
  • All the latest from Code with Andrea

Let's dive in!

πŸ“ What's new in Flutter 3.32

Flutter 3.32 is here, unlocking new features like web hot reload, Cupertino squircles for native fidelity, and new AI integrations with Firebase. The release addresses various improvements across web, framework, Cupertino, Material, accessibility, text input, desktop, iOS, Android, and engine components.

Here are some highlights:

  • Web Hot Reload (Experimental): Now available with the --web-experimental-hot-reload flag, as explained here.
  • Cupertino Squircles: Added rounded superellipse shape for iOS fidelity in CupertinoAlertDialog and CupertinoActionSheet.
  • Progress on multi-window support on desktop by Canonical.
  • Flutter Property Editor: New tool for easily editing widget properties and reading documentation within the IDE (here's a preview).
  • Accessibility: Introduced a new SemanticsRole API for precise control over how UI elements are interpreted by assistive technologies.

Read on for all the details:

Detailed release notes for Flutter 3.32 are available here.

πŸ“ Flutter’s path towards seamless interop

Flutter is launching an early access program for plugin authors to test and provide feedback on FFIgen and JNIgen, codegen solutions that aim to simplify access to native platform APIs by directly bridging Dart and native code.

These tools seek to replace method channels, which are time-consuming to implement and maintain, with a more efficient and seamless developer experience. For all the details and how to apply, read on:

πŸ“ Announcing Dart 3.8

Flutter 3.32 includes Dart 3.8, which brings some welcome improvements:

Read the announcement for all the details:

πŸ“Ή Decoding Flutter: How Flutter Works (Video Series)

The Flutter team shared an excellent 6-part video series that takes you on a deep dive into Flutter's internals. From high-level architecture to low-level engine details, this comprehensive series explains how Flutter actually works under the hood.

The series starts with Flutter's overall architecture and gradually builds up your understanding through the widget system, state management, rendering pipeline, and platform integration. You'll learn about the three trees (Widget, Element, and RenderObject), how state management really works, what happens during layout and painting, and how Flutter interfaces with native platforms.

It's a great watch if you want to understand the framework at a deeper level:

Here are all the episodes:

The official docs also include a high-level overview of the architecture of Flutter, including the core principles and concepts that form its design. Learn more here: Flutter architectural overview.

Upcoming: Material 3 Expressive

Have you heard? Material 3 Expressive was announced this month, and it's expected to ship with the upcoming Android 16 later this year:

Material 3 Expressive preview
Material 3 Expressive preview

According to this umbrella issue on the Flutter repo, the team is not actively developing Material 3 Expressive at this stage, but I'm sure we'll hear more about it in the coming months, so keep an eye out.

Community Articles

This month, two useful articles that caught my attention. πŸ‘‡

πŸ“ Building Local-First Flutter Apps with Riverpod, Drift, and PowerSync

If you want to build offline-ready apps that stay fast and responsive, even without internet, you'll need to shift from the traditional online-first approach to a local-first model.

This article by Dinko Marinac offers a great overview of key challenges like change tracking, conflict resolution, and error handling, and shows how PowerSync solves them. A practical implementation is included, showing how to integrate Riverpod, Drift, and PowerSync in a sample TODO app:

πŸ“ The Definitive Guide to Navigator 2.0 in Flutter

Flutter’s navigation system has had a bit of a troubled past:

  • Navigator 1.0 is easy, but breaks down on the web and in complex apps.
  • Navigator 2.0 is powerful but under-documented and hard to reason about.
  • GoRouter tries to simplify it, but brings its own set of bugs and edge cases.

Given GoRouter's recent troubles, I decided to use Navigator 2.0 directly when implementing URL-navigation in my Flutter Tips app.

While I'm happy with the result, it was challenging to make it work, and this latest article by Tadas Petra has helped me get a better conceptual understanding of all the moving parts:

Latest from Code with Andrea

Over the last month, I shared a bunch of new tips and published two new articles.

πŸ“ How to Update Your Android Gradle Files to the Kotlin DSL

Since Flutter 3.29, new Flutter projects use the new Kotlin DSL for Gradle files by default. This has some implications for projects that rely on custom Gradle configurations, such as flavors, code signing, and more.

If you need help with migrating to the new Kotlin DSL, this article breaks down what changed, how it affects you, and how to avoid common pitfalls:

πŸ“ Flutter App Analytics: Scalable Architecture & Firebase Setup

App analytics are very useful because they help you make product decisions based on data, rather than guesswork.

My latest article shows how to track analytics in your Flutter app, including:

  • What to track: Choosing the right events.
  • How to structure it: Simple and scalable architectures for event tracking.
  • Firebase Analytics setup: How to wire everything up in a real app.

Read on for all the details:

I've also updated a previous article, explaining how to configure the updated code formatter in Dart 3.8.

Until Next Time

Lately, my brain has already been churning new content ideas, including a new video series where I'll be reviewing popular OSS Flutter apps to see how they're built.

I'll be on vacation over the next week, but I'll be recording the first episode as soon as I get back, so stay tuned!

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.