Following the past few years marked by the pressures of the pandemic, 2022 is presenting a new set of challenges to product and development teams. The labor market is competitive. Costs are rising. Budgets are tight. All this while consumer expectations and competition for engagement remain higher than ever.
Cross-platform development continues to emerge as a key solution for development teams looking to overcome these challenges and deliver consistent digital experiences for multiple platforms. In doing so, teams can unite around a single framework instead of managing platform-specific teams which can quickly fall out of sync. For years, teams have used tools like React Native, Flutter, Cordova, and Ionic to build cross-platform apps, with React Native leading in popularity until last year.
Flutter use in particular is rapidly growing within today’s developer ecosystem. According to the 2021 State of Developer Ecosystem survey from JetBrains, Flutter has “surpassed React Native to become the most popular cross-platform mobile framework.”
To date, over 500,000 apps have been built with Flutter, from small games to production apps built by major global brands. With benefits like a single codebase for multiple platforms and a friendly developer experience, Flutter is a go-to solution for building high-quality mobile applications. We anticipate that web and desktop apps will follow suit now that Flutter is officially stable for web, Windows, macOS, and linux. Beyond these platforms, Flutter on embedded devices is another area where Flutter’s potential is starting to manifest.
We’re proud to be at the forefront of Flutter’s evolution and success. For four years, we’ve been working with companies to build powerful, premium apps for multiple platforms. We’ve built mobile, web, and desktop apps with Flutter, helped guide companies in their transition from native apps to Flutter, created games using Flutter’s existing capabilities, and much more. Here’s why we continue to use Flutter to build high-quality multi-platform app experiences in 2022.
Team transformation
One of the biggest benefits we’ve seen working with clients at VGV is that Flutter can unite teams. With Flutter, teams no longer have to be organized around platforms. Instead, they can be organized around features. This particularly benefits mobile teams. Previously, organizations building native apps would have separate teams for iOS and Android. When using Flutter, mobile teams can build for both iOS and Android from the same codebase, eliminating the possibility that one platform team could fall behind.
Flutter can transform entire engineering teams by allowing developers to focus on building features, not platform differences. The tooling around Flutter is top-notch, adding another layer of productivity compared to other native technologies. With a sprawling ecosystem, developers can find high quality open source tools from the community and support from well-known brands like Canonical and Microsoft.
Flutter is growing and maturing
This year, we saw Flutter take the stage at Google I/O during the developer keynote. It was an exciting moment to see Flutter featured alongside other well-known Google products like Chrome and Android. It was the kind of moment that made us take a step back and reflect on how far Flutter has come since its initial release in 2017.
Flutter reached version 2.0 in March 2021, which brought with it null safety, a huge breaking change. With plenty of advanced warning and a handy migration tool, developers were able to update codebases and packages without many hiccups. The fact that the Flutter Community was able to weather a big breaking change like this demonstrates that Flutter has reached a certain level of maturity.
Most recently, the release of Flutter 3.0 and Dart 2.17 came with a handful of updates that include important investments in the stability and maturity of Flutter and Dart. Flutter was announced to be stable for Linux and macOS, which means that Flutter is now stable on six total platforms: iOS, Android, web, Windows, and now Linux and macOS. There were also a handful of useful updates, such as advanced enum support, new lint rules, performance improvements, and Material Design 3 support. This is the kind of update that indicates Flutter is reaching a comforting level of maturity and gives us faith in the longevity of Flutter.
Build (and learn) in the open
We strongly believe in the value of open source software. The fact that Flutter is an open source framework is a huge reason why we still use it, and recommend it to our clients, today. Just by looking at the source code, developers can see exactly how Flutter works. If we ever run into a problem, we can open an issue on the repo, to which the Flutter team will promptly respond. The Flutter team is also very open about where they are taking Flutter, maintaining an up-to-date roadmap, as well as providing annual updates about the strategy behind the UI toolkit. Because Flutter is open source, there are no hidden surprises, which means teams can be confident that what they see is what they get.
Most importantly, using Flutter means developers have access to more than just the framework. There is an extensive global community of other passionate developers who are continually open sourcing helpful packages, bug fixes, and relevant content. Whether it’s finding a helpful open source package on pub.dev (check out this list with our favorites), or asking for help from other developers, leaning into open source can greatly improve the experience for anyone using Flutter.
Do more with Dart
Dart is a language that is increasing in popularity. Research from RedMonk shows that Dart is now entering the playing field with other languages that have been around for years, like JavaScript and Python. According to RedMonk analyst James Governor: “Dart is, like so many technologies, a 10 year overnight success story.” We couldn’t agree more. Dart is certainly a language to watch as more teams adopt Flutter and accordingly, enable more developers to use Dart in their day-to-day work. The good news is: we’ve heard multiple times that Dart is extremely easy to learn, especially if you’re coming from another language like Javascript or Swift.
Dart is more than just the language powering Flutter. We’ve seen much interest in exploring Dart on the server. With solutions like Serverpod and alfred, we predict that Dart’s full stack capabilities will really shine going forward. We are also exploring this capability with our recently open sourced Dart Frog, an experimental backend framework for Dart. It can be used to spin up a simple backend, as well as create middleware, which may be especially helpful when interacting with a legacy backend. This solution also provides a unified tech stack with shared tooling and models. With Dart Frog, developers familiar with Dart aren’t just restricted to building for the frontend. We hope to see additional explorations in this area as developers continue to expand the limits of what’s possible with Dart.
Multi-platform and multi-capability
Flutter’s multi-platform support has been a significant selling point when talking to companies on the fence about Flutter. We’ll go one step further and say that Flutter’s multi-capability benefits are exciting as well. By multi-capability, we mean that Flutter can be useful for more than building apps that target different screens.
Flutter enables developers to expand beyond traditional app development and into areas that previously may have required entirely new workstreams and tooling. Some of these areas include building games, writing backend code, and creating experiences for embedded devices. Flutter developers can use familiar tooling without having to learn a new tech stack from scratch. In this context, Flutter becomes a tool that can enable really interesting products, such as a program on a Raspberry Pi (like this impressive project by Flutter GDE Roman Jaqeuz), a game with 2D effects and physics, or even a car infotainment system. We’re excited to see what’s next!