Published using Google Docs
[PUBLIC] Flutter 2022 Strategy
Updated automatically every 5 minutes

Permanent link: https://flutter.dev/go/strategy-2022

This is a public-facing, slightly edited version of the Flutter 2022 strategy document published internally at Google. For further context, read this blog post.

Flutter 2022 Strategy

Our mission

Client developers today are hampered by substandard tools that make iterative development hard and frameworks that force trade-offs between productivity and quality. In today’s heterogeneous environment, every platform has its own constraints, incompatible frameworks, languages, testing and release infrastructure. Put together, building applications that reach all the devices our customers use imposes heavy engineering and testing costs that hamper agility.

By contrast, Flutter provides a beautiful, fast, productive, open and pervasive toolkit for developers, which gives us (Google) a key role in helping our customers build the experiences they want to create. Flutter supports building experiences from the hardware up, spanning a wide variety of devices and form factors including web, mobile (iOS, Android) and desktop (Windows, macOS, Linux); living rooms (TV, Stadia); smart displays (Assistant); and beyond (cars, embedded devices and appliances).

Our mission is to build the most popular, highest-quality, and highest-productivity UI toolkit for developers.

Even though Flutter's ecosystem is still maturing, it is already the obvious choice for new multi-platform apps, with many internal and external proof points that demonstrate that Flutter is a successful, productive and high-quality development environment.

Our focus in 2022 is on extending our leadership as a portable framework for all, emphasizing app quality across web, desktop and mobile, delightful developer experiences that create loyalty, and monetization offerings that can support developers using Flutter.

State of the market

Our opportunity is across a broad array of platforms and form factors, yet there is plenty of potential opportunity in each area. Flutter's most mature offering is on mobile, where we have several years of experience and refinement.  Over the last year, Flutter has overtaken others to become the most popular toolkit for cross-platform mobile development, and as of February 2022, there are nearly 500,000 apps that use Flutter.

On iOS, our ability to count apps is vastly more constrained than on Android. By and large, we see that apps using Flutter on Android also use it on iOS. We also see evidence of Flutter being used only on one platform, on both sides (for example, some Google apps use Flutter only for the iOS implementation).

Multi-platform usage is less pronounced among the largest apps, where there are significant sunk costs and perhaps the greatest incentive to build twice. Flutter is being used in a number of top apps, including SHEIN (top fashion retailer), WeChat (1bn+ user IM app), and PUBG (750m+ player battle royale game). Conversely, Android’s Jetpack Compose offering fits well in this category, due to the ease with which it can be incrementally added to an existing Android app as a JVM-based framework.

Outside of mobile, we have a lot of opportunities for Flutter to shift the Overton window for development on desktop and web. There are nearly 2bn desktop users, and customers tell us that today’s cross-platform choices are largely unsatisfactory.

Some core principles

2022 strategy and goals

In 2022, our primary strategic objective is the growth of monthly active users. Developers greatly benefit from the network effects experienced by their tools of choice. A framework or programming language used by a single developer, even if it is the most perfect conceivable implementation, will not have a wide ecosystem with many tutorials, libraries, and support tools. On the other hand, even a mediocre SDK will have a healthy and flourishing ecosystem if it is used by the plurality of developers. Thus growth benefits developers.

We will drive Flutter's growth in different ways:

1. Developer experience

Using Dart and Flutter is voluntary. There is no problem where using Dart or Flutter is the default solution. (In contrast, for example, Swift and SwiftUI are the default solution for iOS development, Kotlin and Jetpack Compose are the default for Android development, HTML and JavaScript are the default for web development, etc.)

Because using Dart and Flutter is voluntary, people will only do it if they want to. And they will only want to do so if the experience of using these products is excellent. Specifically, they will only do so if the experience is sufficiently better than the experience with the default tools that the cost of using Dart and Flutter is outweighed by the benefits. Other characteristics (runtime performance, memory usage, etc.) will earn the respect of a developer: important, for sure. But developer experience will earn love. Ultimately, developers use tools they love, and migrate away from tools they dislike. It's a slow migration, since it may involve changing employers, finishing projects, finding new projects, and so forth, but it's a steady one.

This makes the developer experience one of the most critical aspects of Dart and Flutter.

As it happens, Flutter is well positioned here, because we have long focused on the developer experience as a fundamental value. This gives Flutter a competitive edge. It's also something that is hard to compete with: if one has poor quality API docs, it's hard to retroactively improve the quality across the board (meanwhile, Flutter has API docs with inline executable sample code!). If your product is not open source and uses proprietary hooks or APIs, it's hard to retroactively open it (meanwhile, Flutter is entirely open and encourages “jump to definition” and stepping through the framework in a debugger, with great care taken to make the code readable).

Improving Flutter's developer experience is an ongoing journey that requires investment at all levels of the product. It includes:

2. Delivering quality across six platforms

For the first years of Flutter’s availability, Flutter's addressable market was limited to mobile developers, with the promise of delivering high quality experiences on both iOS and Android from a single codebase. As we saw evidence of initial success and adjacencies with other platforms, we promised two years ago to deliver similar high-quality Flutter experiences additionally across browsers and desktop platforms (Windows, macOS, and Linux).

In 2022 we will make good on this promise, and further raise our quality on web and desktop. We believe Flutter's growth will increasingly come from web and desktop: ecosystems that each have many millions of developers.

Of course, Flutter's mobile developer base is large and fast growing, is generally very happy with us, and excited to see us continue to invest. We will continue to focus a large portion of our attention here. Android developers are looking for continued investments in Material, support for new hardware features and form factors, and better integration with Jetpack libraries and Kotlin code.

Flutter shipped the first stable release of web support in 2021, and it remains too early to predict its ultimate success. Yet the web developer market is huge (10m+) and Flutter offers something distinctive for this audience compared to traditional DOM-based frameworks. As new technologies like CanvasKit, WebGPU, AOM, and WebAssembly with GC become available, Flutter is in a unique position of being able to target web apps designed for this new web generation. Its layered approach is well suited for targeting Canvas and WebGPU; Dart compiles to highly-optimized JavaScript today and will support WebAssembly in the future; and our consistent, Flutter's approachable API is a notable contrast to the complex “batteries not included” web ecosystem. Even if our role in the immediate future is a niche one, the web ecosystem is large enough that their niche is our growth opportunity.

Last, but not least, desktop is a big growth opportunity in 2022. Our early experiences with Flutter on the desktop demonstrate our potential, with Canonical not only contributing a number of engineers to complete Linux support, but also rewriting key user journeys with Flutter and even contributing financially to the establishment of a broader ecosystem for desktop. Completing our work and delivering stable releases to each platform in 2022 remains a key objective, followed by expanding and polishing Flutter's offering as we have done on other platforms.

Flutter can and should, in due course, grow to cover all the form factors with screens: wearables, TV, embedded systems, so that eventually there is no device with a vaguely modern GPU that doesn’t support it. In general, the best way to broaden Dart and Flutter's domain is to provide the right primitives to enable independent teams to create frameworks for new spaces. We don’t ourselves plan to expand Flutter to these platforms in 2022, but we encourage others who are interested in such features to join us in contributing to Flutter.

3. Fundamentals

In addition to driving active developer growth, we also need to continue to take care of fundamentals that enable our team engineering velocity and safeguard the product against regulatory or security issues.

In H2 2021, we put a big emphasis on team velocity, and slowed down feature development to build better infrastructure for Flutter. That work has not ended, even as we ramp back up and take advantage of this work. Particularly as we grow the team, and add web and desktop to our stable channel, along with new hardware like the Apple M1 chipset, it becomes more critical than ever that our testing infrastructure can adequately support our growing demands.

One area of growing concern is security, with many examples of sophisticated actors probing for vulnerabilities. Other open source projects like npm have been targeted, and with Flutter’s popularity, there is no reason to assume that we are not also an active target. We will continue to increase the robustness of our build system, with code signing enabled for all public releases that we produce, as well as reproducible builds. We will measure this by tracking our compliance with SLSA standards.

2022 roadmap

Based on the strategy above, we have prepared a roadmap that provides more concrete technical details of engineering work we intend to continue, complete, and start in 2022.