Why am I continuing to bet on Flutter

Black Panther - I am not dead :)

Black Panther - I am not dead :)

Mobile developers often worry that Google might suddenly abandon Flutter, like many other products on the infamous "Killed By Google" list. It's a fair concern, but one I've always considered unlikely, both in 2017 when I first jumped on the Flutter train and even more so now in 2024.

In this blog post, I'll share the reasons why I believe Flutter is here to stay, hoping to provide a helpful resource for developers grappling with this question. Remember, these are my personal opinions, and they might not always hold true – just like milk, things can change!

Large apps: Inside and outside of Google

Collection of large applications using Flutter in production

Collection of large applications using Flutter in production

First, let’s look at the applications built with Flutter as of May 19th, 2024. The Flutter showcase on the official website does a great job of showing who is building with Flutter, but developers can also easily search for companies on external lists or read engineering blogs from companies such as Geico.

A key Flutter selling point is the ability for developers and businesses to easily and quickly create pixel-perfect apps on multiple platforms without having to write their app twice (or more), all while sharing the same codebase, tooling, and team. When we look at the apps using Flutter, a few things stand out:

  1. Google's investment in Flutter goes beyond the framework itself. Mission-critical apps within the company, such as Google Ads, Google Analytics, Google Cloud, Google One, Google Pay, and others, all rely on Flutter in some capacity to ship their applications. If the framework were to disappear overnight (let's say someone at the big G pulls all funding), the impact on Google itself would be substantial; apps like Google Ads and Analytics alone account for a large portion of Google's overall revenue. Migrating these massive projects to native development or another cross-platform solution would be a logistical nightmare and financial black hole. Google's internal investment in Flutter speaks volumes about its long-term viability.
  2. Leading external brands and many of the largest apps in the world, from the New York Times, Tencent, and Nubank, all use Flutter for their mobile applications. As Google further enters and attempts to establish leadership in the cloud space, killing a tool widely used by so many recognizable and leading brands would create friction and concern developers share around GCP for their applications. While headlines such as UniSuper’s recent GCP disaster does no’t lend a lot of confidence to GCP, a deliberate move to kill one of their most used and cherished open-source projects will all but erode the remaining trust developers have in GCP as a viable platform.

If these aren’t enough to convince you, let’s look to one of Google’s other open-source frameworks, Angular! Although NextJS rules the internet in most dev circles, Angular is still alive and thriving. For the same reasons mentioned above for Flutter, Angular continues to be actively maintained and developed (undergoing a bit of a renascence recently) since it is used extensively inside and outside Google on flagship products like Youtube!

A gateway into Google Cloud

Puf and the Firebase team talking about Flutter integration at Google IO

Puf and the Firebase team talking about Flutter integration at Google IO

As a new developer learning Flutter, building your first application, and integrating your first backend, do you remember what service you used for that backend?

Chances are you would’ve picked Firebase as your preferred backend since it is fully supported out of the box and has first-class support for Dart via numerous packages on pub.dev — installable in just a few clicks.

This was certainly the case when I first started learning; I distinctly remember watching “Single Codebase, Two Apps with Flutter and Firebase” during IO17, which was my entry point into Flutter from another cross-platform framework.

The tight integration between Flutter and Google Cloud services like Firebase goes beyond just a matter of convenience for developers. It acts as the perfect entry point for the next generation of developers to become familiar with their cloud offerings and learn the Google stack, potentially taking that knowledge and preference to future employers and clients later on.

To illustrate the point, let’s look at some of the announcements during IO24. Google’s new Gemini APIs have been first-class citizens on Dart from day one. What better way to grow the adoption of their new Gemini family of APIs than by bringing and showcasing it to the developers of their most popular open-source framework?

The strategic multiplier Flutter provides Google as a low friction entry point into their other paid cloud services is one developers often overlook; imagine if AWS or Azure benefited from a wildly popular and loved OSS tool. Flutter acts in the same way Vercel’s NextJS, a developer-first, low-friction entry point into the rest of their paid services. Slowly creating mind share and trust in the community, educating the next generation of developers on the benefits of their cloud platform, and building brand loyalty along the way.

Vibrant Community (and Marketing $$!)

Flutter during the developer keynote of IO 2024

Flutter during the developer keynote of IO 2024

A blog post about Flutter is not complete without mentioning the awesome community at its heart. The Flutter community is by far one of the most welcoming tech communities around today. It is filled with amazing developers who are extremely welcoming to others, passionate about the framework, and eager to help and share knowledge.

As we alluded to in the previous sections, the Flutter community also represents one of Google's biggest tools for evangelizing and growing the adoption of its services among a diverse global audience.

Let’s pause for a minute and consider the scale of the Flutter community and the sheer volume of content, resources, guides, and tools it creates around the framework and Google services. As one data point, I can say that while running the Flutter Community Medium, it generated, on average, between 1 and 1.5 million reads per month—and that’s just one source! We are not even mentioning independent blogs, social media impressions, YouTube content, or other metrics.

From purely a marketing perspective, the value generated by the Flutter community around Google services and APIs would be hard for the company to replicate without investing a significant amount of capital…capital which would likely cost more than what it does to maintain the project all while having to rebuild eroded developer trust in their ecosystem — something that is not trivial or fast to accomplish.

While attending IO this year, the community's love for Flutter was easily visible during mentions in the keynote or applause following most Flutter sessions—most attendees at IO will likely agree with this. To walk away from a loved product that not only directly ties to some of the critical aspects of Google’s core business but also serves as a gateway into other revenue-generating aspects of their company would simply be a stupid thing to do (IMO).

Looking to the future

I have been toying with the idea of writing this post for months now and decided to go for it after chatting with other Flutter developers over the last week.

As a community, it's time to stop worrying whether Google will kill the framework or debate the next best state management solution and instead work towards advancing the framework for all.

New features such as Dart Macros provide an exciting glimpse into what the future of Dart and Flutter can look like. I am personally very excited about a future where I will no longer be required to write `toJson` and `fromJson` ever again. 

In addition to Macros, WebAssembly (Wasm) support for Flutter Web increases the performance and responsiveness of applications by up to 2x compared to the previously compiled JS version. The constant innovation and delivery of new features make Flutter and Dart an attractive platform for building everything from your next mobile application to high-performance interactive web/desktop applications from the same codebase. Features such as Macros and Wasm support are multi-year investments by the Flutter and Dart team -- they are complex, expensive, and not something you would expect from a framework or language that is on its deathbed :)

Perhaps it's wishful thinking, but I am also a big advocate for revisiting Flutter's core system and foundational methods for handling state, animations, and more. Compared to some of the other popular declarative UI toolkits, the syntax is starting to feel slightly verbose.

Comparison of rendering simple UIs in Compose, SwiftUI and Flutter (source: https://www.jetpackcompose.app/compare-declarative-frameworks/JetpackCompose-vs-SwiftUI-vs-Flutter)

Comparison of rendering simple UIs in Compose, SwiftUI and Flutter (source: https://www.jetpackcompose.app/compare-declarative-frameworks/JetpackCompose-vs-SwiftUI-vs-Flutter)

As a community, these are some of the topics we should be debating and sharing notes on; the constant cycle of "Flutter is going to die tomorrow morning" or "X is the best state solution" while on occasion is warranted, do very little to advance the framework forward and distinguish Flutter from the competition.

-- Nash