February 2025: Flutter 3.29, Dart 3.7, Shorebird & Jaspr Updates, New Formatting Style, TextFormField Mistakes

February is a Flutter release month, and there's a lot to cover! In this edition, we'll explore:

  • The latest Flutter 3.29 and Dart 3.7 releases
  • Flutter rendering changes (moving to the platform's main thread)
  • The new Dart formatting style and how it affects your projects
  • Why Dart macros are no longer coming—and what else is in focus
  • Official Flutter packages being discontinued
  • Key updates from Shorebird & Jaspr
  • Common TextFormField mistakes in Flutter apps
  • The latest from Code with Andrea

Let's dive in!

What’s new in Flutter 3.29

Every Flutter release brings many improvements, and 3.29 is no exception. Expect refinements to Cupertino and Material widgets, along with DevTools enhancements and Impeller engine optimizations.

Read the official announcement for the full details:

Here are some important highlights. 👇

⚠️ Flutter rendering moves to the platform's main thread

Previously, Flutter ran Dart code on a separate UI thread, which made it harder to call into platform code. Flutter now runs Dart code on the platform's main thread on Android and iOS. This enables more efficient platform interop through direct synchronous calls.

To learn more about this change, check out this detailed issue about merging the platform and UI thread, along with the most recent comments by Eric Seidel and Matej Knopp.

But does this change affect existing apps? An issue about slowdowns and jank during scrolling was already reported and fixed on the master channel. To avoid surprises, consider waiting for a hotfix before upgrading to Flutter 3.29 in production.

⚠️ Breaking changes and deprecations

In an effort to focus on the core framework, the Flutter team is discontinuing support for several official packages on April 30th, and the community is encouraged to fork and maintain these.

Details are in this umbrella issue:

Announcing Dart 3.7

Here's what's new in Dart:

  • New Formatting Style: If you opt in to Dart 3.7 in your pubspec.yaml file, a new formatting style will be applied to your code. Since this affects all developers, I've written a detailed article to help you navigate the changes.
  • Wildcard variables: The _ symbol is now a proper wildcard, meaning you can use it multiple times when declaring unused parameters, rather than writing _, __, ___ to avoid name collisions.
  • Deprecated JS legacy libraries:
    • These libraries are now deprecated: dart:html, dart:indexed_db, dart:js, dart:js_util, dart:web_audio, dart:web_gl.
    • Instead, use dart:js_interop and package:web going forward.
  • New pub.dev features: Pub.dev has been updated with dark mode, a new weekly downloads chart (located under the "Scores" tab), and a new topics page.

For all the details, check out the official announcement:

Update on Macros

Back in January, the Dart team announced that work on the experimental macros feature has stopped due to several major technical hurdles.

While this is not the news many hoped for, it means the team can focus on shipping build_runner improvements and augmentations, bringing tangible benefits to all Flutter developers.

For more details, check out this announcement:

I also recommend reading Eric Seidel's take on the topic:

Wondering if Flutter is dead already? Here's the answer. 😉

Flutter Videos and Articles

📹 The runtime that makes Dart tick - Slava Egorov

Slava Egorov labels himself as the "dreamer" in the Dart team, and in this talk he dives into low-level performance issues and how to apply optimisations at the compiler level.

He also goes through some little-known features of the Dart runtime, including interoperability with other languages through the dart:ffi interface.

While this talk may not be immediately relevant for app developers, it offers fascinating insights into the Dart runtime:

📝 Common mistakes with TextFormFields in Flutter

This article highlights common mistakes in Flutter form design that can hurt user experience and conversion rates. It covers best practices like setting textInputAction for smooth field navigation, using onFieldSubmitted for efficient form submission, choosing the right keyboardType, applying TextCapitalization, using TextInputFormatter for input validation, and enabling autofill with AutofillHints and AutofillGroup.

If your forms are not up to par, this article will help you fix them:

Flutter Ecosystem Updates

As Flutter grows, it's great to see tools in the wider ecosystem are getting better and more capable. This month, Shorebird and Jaspr have caught my attention.

🐦 Shorebird

If you want to bypass the app store review process and deploy app updates instantly, Shorebird is the right tool for you.

Most recently, the team has shipped two big features:

With the new integration, you can deploy your Shorebird-enabled Flutter app to Codemagic in 10 minutes:

While I only started using Shorebird recently, I'm already a big fan and I'll be adding a new Shorebird module to my [Flutter in Production] (courses/flutter-in-production/) course this week! 🚀

🐶 Jaspr

Have you heard of Jaspr yet? It's a Dart web framework that renders actual HTML and CSS, making it ideal for websites that need to be SEO-friendly and load fast!

As of today, Jaspr supports both static sites and server-side rendering. It can also integrate with your favorite state management solution and custom backend, and it even supports Tailwind CSS!

To learn more, visit the official website:

Personally, I prefer Astro for my web development needs, and I don't mind working directly with HTML and JS/TS (there, I said it! 😅). But if your heart is set on the Dart ecosystem, Jaspr might be the right choice for you.

Latest from Code with Andrea

Since the last edition, I've been busy:

📝 New Formatting Style in Dart 3.7

This is worth repeating: there's a new formatting style in Dart 3.7. If you opt-in, the formatter will automatically decide whether to add or remove trailing commas (no more arguing about formatting during code reviews. 🎯)

This change will affect a lot of existing code. If you want to migrate while keeping your sanity, I've got you covered:

Updated Flutter Tips App

This app is my little side project and I like to polish it from time to time. With the latest changes, I've added proper responsive support and the app now looks great on all devices:

Preview of the Flutter Tips app on Flutter web
Preview of the Flutter Tips app on Flutter web

The update is already available on the app stores, and the web version even supports left/right arrow navigation. 🎯

New UI Challenges

Building UIs in Flutter is fun, but it can be challenging, too!

So I created this collection of UI challenges to help you practice:

Preview of the Flutter UI Challenges
Preview of the Flutter UI Challenges

Each challenge contains a web demo, a starter project, some goals, and the complete solution.

I've shared 8 challenges to date, including new ones about PageView/ListView synchronization, and building a simple quiz app. Try them for free here:

Until Next Time

After 10 months of work, I'm getting closer to finishing my Flutter in Production course, and I hope to wrap up the remaining modules over the next month or two.

Some new stuff is on the pipeline, too, and I can't wait to share more details soon!

So stay tuned—and as always, 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.