Welcome to the first edition of my Flutter newsletter for 2025! 🎉
This month, we’re diving into these topics:
- Outlook for Flutter vs React Native in 2025
- Hard truths about AI
- GoRouter entering maintenance mode (and what it means for you)
- A new serialization protocol for Dart (proposal)
- Selected articles from the community
- All the latest from Code With Andrea
Let’s dive in! 🚀
Flutter News
Let’s kick-off with some trends that will shape Flutter and the mobile app development landscape in 2025.
📝 Cross-platform mobile development
Gergely Orosz recently published a deep dive into the most popular frameworks: React Native, Flutter, native-first, and web-based technologies, and how to pick the right approach.
Key takeaways:
- Flutter and React Native dominate the cross-platform space and are both here to stay.
- Developer preference often depends on location.
- While Flutter powers more apps, React Native apps generate slightly more revenue.
Read-on for the full breakdown:
Clarification: During the Flutter In Production livestream, it was claimed that 28% of new iOS apps on the App Store use Flutter (source: Apptopia), but this figure was based on free apps only. The latest app intelligence stats from App Figures (which take into account paid apps, too) show that Flutter sits at 13% on the App Store and 19% on the Play Store.
📝 Hard Truths About AI
AI is revolutionizing how we build software—and Flutter apps are no exception. I find myself using AI tools more and more, and this recent article about AI-assisted coding really resonated with me.
Highlights include:
- The Knowledge Paradox: Seniors use AI to speed up tasks they already know, while Juniors use AI to learn new things—with very different results.
- Practical Patterns: things like "AI first draft", "constant conversation", and "trust but verify" are emerging as effective ways to work with AI.
- Software as a Craft: While AI makes it easier to build software quickly, creating polished, high-quality experiences is still crucial if you want to build products that stand out.
Check out the full post for a pragmatic take on how AI is reshaping engineering:
Curious about how other Flutter devs feel about AI? Here are some recent posts on Reddit.
⚠️ GoRouter Enters Maintenance Mode
The Flutter team has been maintaining GoRouter for many years, but many long-standing P1 and P2 issues have still not been addressed.
Most recently, this notice was added at the bottom of the package README:
This package has entered a maintenance phase. The Flutter team's primary focus will be on addressing bug fixes and ensuring stability. While active feature development is not currently planned, we welcome and encourage community contributions to expand the package's functionality.
If this means that the team can focus more on core parts of the Flutter framework, I welcome this. But it’s clear that developers are frustrated with all the GoRouter bugs.
Here’s my take:
- If your app already uses GoRouter and you can work around its issues, keep using it.
- If you’re starting a new project and the navigator 1.0 APIs are not enough for you, consider moving to alternatives like auto_route (fully-featured) or navigation_utils (lightweight).
🧪 RFC: New Serialization Protocol for Dart
Serialization is a critical aspect of application development, yet the Dart ecosystem currently lacks a unified, efficient approach to tackle it. Existing solutions like json_serializable
focus primarily on JSON and rely on intermediate Map
objects, which limit performance and flexibility.
This proposal aims to introduce a modular, universally usable, and performant serialization protocol. It emphasizes format-agnostic functionality, allowing seamless support for JSON, CSV, YAML, MessagePack, and more, while also enabling developers to avoid redundant code when switching between data formats.
Even if you are happily using json_serializable
or jsonEncode/jsonDecode
today, I recommend reading the proposal and understanding the issues it aims to solve:
Flutter Articles from the Community
Here are my top picks from the Flutterverse this month.
📝 How to localize the app into 55 languages and not go crazy?
If you’ve ever wondered what it takes to build a language-learning app, this article is for you.
From internationalization challenges like RTL support, to handling remote localizations, to choosing which flag to show for multi-country languages, it’s all covered here. 👇
📝 10 Flutter Widgets You Probably Haven’t Heard Of (But Should Be Using!)
In this article, Majid Hajian uncovers hidden gems like AnimatedModalBarrier
, RepaintBoundary
, and SemanticsDebugger
, along with some of their implementation details.
📝 Exploring Cupertino and Material Updates in Flutter 3.27.0
Flutter 3.27.0 shipped with a range of updates to the Cupertino and Material widget catalogs.
This article explores the key updates with code samples and illustrations, so you can more easily use the new APIs in your apps:
📝 Modern Monorepo Management with Pub Workspaces and Melos in Dart
Monorepos are great when you want to store multiple apps and/or packages in a single repository. And thanks to the latest pub workspace feature in Dart 3.6, it’s easier than ever to manage them.
Key benefits include:
- Centralized Dependency Management: All projects in the workspace share a single version of each dependency.
- Unified Upgrades: Running
dart pub upgrade
applies updates across all packages in the workspace. - Improved Dart Analyzer Performance: Previous issues with monorepos causing degraded analyzer performance are now gone.
Read on to learn how to setup a pub workspace and take things further with Melos:
📝 All I Know about State Management
If you ever wondered what happens when you call setState
in Flutter, this article is for you. Inside, you'll learn:
- How Flutter internally marks certain elements as "dirty" and ensure they're rebuild on the next frame.
- How
InheritedWidget
andValueListenableBuilder
work. - How 3rd party solutions like
flutter_hooks
,signals
, andflutter_riverpod
build upon core Flutter APIs likemarkNeedsBuild()
under the hood.
Read on for all the details:
Latest from Code with Andrea
Since the last edition, I added a new module about CI/CD with Codemagic to my Flutter in Production course, published my 2024 retro, and shared a new article. Here’s a recap.
📝 My 2024 in Review: Ups and Downs
Every year, I take a step back to reflect on my journey as a content creator.
This 2024 retrospective dives into my highlights and achievements from the past year, how AI, SEO, and social media are reshaping my strategy, the launch of latest course, and more:
📝 How to Release Your Flutter App on the Google Play Store
If you're new to the Google Play Store, there's a lot to consider, from signing up for a developer account (and understanding the strict testing policies for new accounts), to preparing and submitting your app for review.
This guide covers all the essential steps, so you can publish your app with more confidence:
Site Update: As my collection of articles continues to grow, I decided to re-arrange them by topic for easier discovery. You can explore them at this link.
Until Next Time
This year, I’ll continue to publish new Flutter tips, articles, and courses, and I hope they'll help you succeed as a software engineer.
Stay tuned—and as always, happy coding! 🎉