Today we’re celebrating our third birthday!
It’s hard to believe that just three years ago we started business as a brand new consultancy dedicated exclusively to Flutter app development. As we worked on the Hamilton app, the first commercial app built in Flutter (outside of Google), we were amazed at the speed by which we were able to build and honestly how fun it was to use Flutter! We were so excited that we built our entire business around it.
Three years later and we’re still going strong. We are especially excited to partner with some well-known enterprise companies to build Flutter apps — while we can’t reveal any names just yet, stay tuned for developments! We’re also ramping up our efforts to give back to the Flutter Community by building some awesome open source libraries under our GitHub organization Very Good Open Source.
We’ve learned a lot since opening shop three years ago, so to celebrate our birthday, we’re sharing 3 things we’ve learned about Flutter, 3 of our favorite Flutter projects, and 3 things we’re excited about for the future!
Three things we’ve learned about Flutter
We’ve been working with Flutter since it’s official launch in 2017. We remember the early days when Flutter was missing so many things we take for granted now — there was no Firebase, Google Maps, and very limited third party packages that worked with Flutter. It’s impressive that now there are over 15,000 open source Flutter and Dart packages! Here are three things we’ve learned about Flutter over the years.
Flutter is an ideal choice for development teams.
Flutter is much more than just a UI toolkit! It can also be a gamechanger for accelerating app development for teams. We could go on about the benefits that Flutter brings to productivity (we even wrote a blog about it here), however one often overlooked benefit you get when choosing to go with Flutter is the efficiency it can bring to the development process overall.
Gone are the days of platform specific development teams. Now all engineers can work from the same codebase together, focused on building functionality and new features, rather than duplicating the same feature for two platforms. Using one unified framework, teams can build in a scalable way so that apps are optimized for long-term growth.
There are numerous companies that have verified this experience through their own write-ups:
Realtor.com: “With our previous way of working, our iOS and Android teams were independently defining their own release schedule and were releasing whenever the next release was ready. Now, with five different teams making code contributions in both our Android and iOS apps, we quickly had to start working with a 2 week release train.” Read the full account here.
eBay Motors: “We informally surveyed the team to help validate our decision to use Flutter, and the responses showed the majority of the team believed developing in Flutter was over twice as fast as developing for their prior platform. Perhaps more importantly, 100% of those surveyed enjoyed Flutter development more than iOS or Android. As it turns out, happy developers tend to be more engaged and productive.” Read the full account here.
You don’t have to start from scratch with Flutter add-to-app
Companies that already have an existing application don’t have to miss out on Flutter. With the add-to-app functionality, piloting Flutter can be a low stakes experiment. This means that you can evaluate Flutter on your terms, make sure it fulfills business requirements, and try it out on your own before committing to the switch.
Then, if you do decide to make the switch to Flutter, you don’t have to completely abandon your native app — at least for the time being. You can transition your native app over to Flutter bit by bit, an approach that we helped Betterment implement.
With the arrival of Flutter 2.0, there have been major upgrades to the Flutter ecosystem, including web in stable and desktop in stable early release. Flutter is becoming harder for companies to ignore. What’s really exciting is that Flutter is no longer just a framework for building Android and iOS apps. It’s becoming a truly portable framework — one that can be run on 6 six platforms: Android, iOS, web, Windows, macOS, and Linux! Flutter is growing into the go-to choice for building cross-platform applications from a single codebase.
Technology choice is important, but what matters are the values and best practices you develop as a team.
Over the past three years, we have honed our engineering process and approach to building scalable apps. The single most important question we ask ourselves when building Flutter apps is: Is this scalable? We design app architecture, develop team workflows, and determine how to implement features with this in mind.
The way we construct scalable applications is applicable to any language or framework. Luckily we’ve had three years to hone our best practices to ensure that all of our codebases remain consistent with our custom linter rules and 100% test coverage. We also created Very Good Start so that all of our projects could start with the same scalable foundation on day one.
That said, Flutter is just one variable in our formula for success. We truly believe that Flutter is the current best solution available for building scalable cross-platform applications for all screens. However, technology is constantly changing, and we are open to embracing new languages, frameworks, and best practices! Of course, having talented teammates makes this all possible — VGV certainly would not be where we are today without our expert developers. The success of our business is directly tied to the success of each individual teammate.
Three of our favorite Flutter projects
Over the last three years we’ve provided expertise to over 20 companies on Flutter. Here are three of our favorite projects:
Hamilton — the Flutter app that started it all
Hamilton was the first commercial Flutter app on the market outside of Google and we had the distinct honor of helping build it. Things have certainly changed from the early days of Flutter. We remember when we would run into a problem and would have to ask the Google Flutter team directly for help, instead of turning to the comprehensive documentation or many talented Flutter developers available today that can help answer questions.
The Hamilton app is still going strong, especially as live performances of the hit musical start back up again. We look forward to the day when Hamilton returns to stages in the U.S.!
The Hamilton app will always hold a special place in our hearts since it is the project that launched us into Very Good Ventures. Working on this project showed us that Flutter solves a lot of the pain points of traditional app development. We were so excited about its prospects that we built our entire company around it!
Showing the world what Flutter can do x3
Okay, we’re squeezing three projects into one here, but they all have one major thing in common: they’re all projects where we’ve partnered with Google to showcase significant Flutter milestones!
- We built Hamilton, the first commercial mobile app built in Flutter, which launched in 2017 and has over 3.5 million installs. Read more about it here.
- In December 2018, we built a presentation slides desktop application to prototype Flutter which was revealed onstage at Flutter Live in 2018. Read more about our work here.
- A year later we collaborated with The New York Times and Google to create a Flutter web prototype of the popular KENKEN game for Google I/O. Read about it here.
Very Good CLI
Very Good CLI is the first major tooling project we’ve created. It all started with Very Good Start, our approach to accelerating app development. Back in February of 2020, we started researching ways that we could generate entire codebases so that we could begin every project at VGV with the same scalable foundation and basic features that every app needs. We wanted to see if we could do this in minutes, as opposed to weeks of development (Spoiler: we did it! Read our blog about it here). While Very Good Start is intended to be used for our ongoing client consulting, we also believe it’s important to share our approaches and best practices with the community.
This inspired us to develop a free, simplified version of Very Good Start called Very Good Core. It contains some of the basic features of Very Good Start as well as the counter app that comes with “flutter create.” Very Good Core is a great option for solo developers looking for a very good foundation for Flutter projects.
We considered open sourcing only Very Good Core, our version of the Flutter starter app, but we decided to go one step further and develop a Very Good CLI so that we could have the freedom to develop additional tooling in the future. We used our teammate Felix Angelov’s open source package mason, to generate our custom Very Good Core template. We may develop additional templates that you can generate with Very Good CLI, so stay tuned!
For an in-depth look at Very Good Core and Very Good CLI, check out this video by Flutterly that explains all of the benefits you get for free:
Three things we’re excited about for the future
Flutter for embedded devices
Developers have been incorporating the portable framework into embedded devices for a few years now. Back in 2019, The Flutter team wrote about Flutter for embedded devices and highlighted the embedding API that can be used to run Flutter on platforms beyond just mobile.
Since then, other companies have done their own work to incorporate Flutter into embedded devices. Sony Software Engineer Hidenori Matsubayashi gave a presentation at the Embedded Linux Conference 2020 about the decision to use Flutter with Wayland for embedded devices. He notes that they chose Flutter for a few reasons, including its ability to easily create beautiful UI; support for mobile, desktop, and web devices; it’s open source and comes with a lot of information for how to use it; it natively compiles; and it includes a custom embedder API-layer for specific platforms.
Most recently, the Flutter Engage keynote showcased another major brand using the Flutter Embedder API: Toyota. Daniel Hall, Chief Engineer, revealed that Toyota is partnering with Flutter to build next-gen infotainment systems with Flutter for their vehicles.
Flutter is truly living up to its designation as a portal framework. We are excited to see more companies use the embedded functionality of Flutter to bring beautiful apps to all screens — mobile, web, desktop, car infotainment, and beyond!
More companies using Flutter
Speaking of Toyota, the Flutter Engage keynote revealed some other key players that have joined the Flutter fun. Flutter is no longer the new kid on the block when it comes to building cross-platform applications, now Flutter is leading the way! Here are some companies that are using Flutter:
- Canonical: Canonical announced that Flutter is now Canonical’s framework of choice for future mobile and desktop apps for Linux. Ubuntu also published the Flutter SDK in the Snap store so that developers can get started right away.
- Microsoft: Another major announcement from the keynote was that Microsoft has partnered with Flutter to support Surface Duo foldable devices.
- iRobot: The manufacturers of Roomba also build educational robots that help teach children how to code. They used Flutter to build a web app that uses the same code as the corresponding tablet app.
We also compiled a list of companies that we think are doing noteworthy work with Flutter in 2021.
When Flutter becomes “mainstream”
Hear us out — Flutter has made some remarkable progress since its launch, but it may be some time before it becomes truly mainstream. There are signs that the framework is maturing: major companies have been using it for years now, the Flutter and Dart ecosystem now contains over 15,000 packages, and there are many articles, tutorials, courses, even podcasts to educate developers of all experience levels.
Yet we are still seeing people express concern about choosing Flutter, whether for an individual side project or an enterprise production app. The popular conversation around Flutter has not quite shifted from “Should I use Flutter?” to “What’s the best way to get started?”
We can’t pinpoint exactly when Flutter will no longer be considered “the new kid on the block.” Perhaps the recent arrival of Flutter 2.0 has already catapulted Flutter to the head of the cross-platform framework pack. Or maybe the arrival of the next best cross-platform framework will, instead of attracting developers, end up pushing them to feel confident in Flutter’s longevity. We believe that it’s only a matter of time before Flutter becomes ubiquitous for app development and we plan to be at the forefront of the movement.
Here’s to many more years of Flutter development!
Thank you for letting us show the world what Flutter can do. We are working on some exciting Flutter projects and cannot wait to show you where we’re going!