Enterprise Tech Teams and Flutter

Flutter is a framework for high-performing apps and organizations

Format
eBook
Topic
Flutter Expertise
Reading time
10 min
File
PDF

Get the PDF

How we handle your email: privacy policy.

Share

Get the eBook as a PDF

“We imagine a future where organizations can efficiently manage a vast, complex ecosystem of applications with the same tools, skills, and teams.”

David DeRemer, CEO, Very Good Ventures

For product-driven organizations, development is where the rubber meets the road… and it is time for a new set of tires.

Flutter, the platform that allows creation of apps for all screens from one codebase, along with tools and best practices refined by Very Good Ventures, is that set of tires.

Let us explain.

High-performing teams want to get ideas to market

Any bottleneck is costly.

As companies increasingly need their applications to be available to more people in more places, the complexity of managing technology has become enormous.

Innovating to eliminate choke points and sources of friction has created significant advancements in the developer experience.

  • Agile development practices
  • Source control methodologies
  • Monorepos
  • CI/CD pipelines
  • Testing automation
  • Device farms

Every time we accelerate development, we make better products and put them in the hands of users faster.

One of the most glaring problems has always been the cost of developing for multiple platforms

For Android, iOS, web, and any other platform, the development environment and process have been totally separate.

It is costly and complex to manage development efforts so we can reach users on all of these platforms – simultaneously delivering consistent experiences.

And there have been a lot of attempts to consolidate with cross-platform development solutions.

  • PhoneGap
  • Titanium
  • Xamarin
  • Progressive web apps
  • React Native

None created efficiencies without significant tradeoffs.

Flutter offers a revolutionary opportunity to eliminate a development bottleneck that has long been an accepted and unavoidable fact — platform silos.

Successful companies must target mobile, web, and desktop, but also new platforms like a car or a thermostat. To meet customers at all of these touchpoints, development has required multiple isolated paths based on the screen the user has in front of them.

This creates costly friction and redundant design and development investments.

In theory, the strategy-to-product pipeline typically looks like this:

  1. Customer Need
  2. Strategy
  3. Design
  4. Dev
  5. Customer Experience

In reality, it looks like this:

  1. Customer Need
  2. Strategy
  3. Design
    1. Android Design
    2. Android Dev
    1. iOS Design
    2. iOS Dev
    1. Web Design
    2. Web Dev

This means that complexity scales with each new platform. Each one requires independent investments in

  • Design
  • Development
  • Testing
  • Deployment
  • Security
  • Compliance
  • And more…

From the product strategy and execution point of view, this means — More Time.

…and along with just being costly, it is downright dangerous in a competitive landscape.

Large enterprises have to manage complex application ecosystems spanning multiple digital touchpoints

  • Mobile apps
  • Web tools
  • In-device UIs
  • VR headsets
  • Dashboard displays
  • Kiosks

It’s a lot of work that requires multiple teams of specialists, so the process of maintaining them is cumbersome and slow.

So slow that some new ideas never get implemented. The size of the bug-fix queue stands in the way of innovation, as does the effort to keep all the platforms in feature parity. It robs resources from new feature development. It’s also difficult for these siloed teams to share and collaborate because their modes of execution are so different. Making development easier increases the pace of innovation.

“Before moving to Flutter, we had six apps, each with their own codebase. It was like we were fighting a war on six different fronts. We couldn’t achieve the things the company wanted to achieve from a product point of view or revenue point of view because we were stuck in the mud.”

Michael Boumansour, CTO, V1 Sports

Flutter is a framework for building apps. But also for building high-performing tech organizations

Flutter is an open source framework for software development that enables companies to efficiently create user experiences for any screen with the same code, teams, and capabilities.

Multi-platform, single codebase

  • Simpler to maintain
  • Faster feature development
  • More consistent experience across screens
  • Unified development teams
  • More reusable: share components, libraries, and other technical assets across apps.

Released as open source by Google in 2017, Flutter is a development framework that delivers portable, pixel-perfect UIs on any device that can run the engine.

Currently, Android, iOS, Linux, macOS, web, ChromeOS, Fuchsia, and Windows engines are supported.

Thousands of apps are built with Flutter every year, including high-profile projects from Toyota, eBay, and Tencent.

Flutter saves your team time and effort and ensures a consistent experience across screens

With Flutter, developers use a single codebase to create beautiful, natively compiled apps that run smoothly on both iOS and Android platforms.

This not only saves time and effort, but it also ensures that the apps provide a consistent user experience across all devices. Flutter features allow for quick iteration and experimentation, so developers can quickly test and refine new features and designs.

Target every screen with Flutter

While Flutter is primarily known for its ability to build high-quality apps for iOS and Android, it is also a versatile framework that can be used to develop apps for other platforms.

Flutter can be used to create apps for the web, desktop, and even embedded devices.

This means that with Flutter, teams can create a single app that runs on multiple platforms, providing a consistent experience for users no matter which device they are using.

Flutter simplifies participation in design and development of non-technical team members

The use of Flutter can have positive impacts on non-technical teams as well. Flutter’s intuitive and expressive design language, combined with its robust set of customizable widgets, can make it easier for non-technical team members to participate in the design and development process.

Share across projects and apps

An ecosystem oriented around many apps, all in Dart and Flutter, extends the benefits of Flutter beyond the single codebase. Really, we’re talking about many codebases, all multi-platform, that share libraries, design assets, developer standards, tooling, architecture, etc. Every project has that many more tools and resources to build upon.

Team flexibility

When considering a future when all development across multiple projects uses the same language, framework, and potentially code, developers can be effective in different roles. That makes talent and resources easy to move where they are needed – and where they are happiest.

At Very Good Ventures, we harness the power of Flutter to transform development: All of our developers work in Flutter. We rapidly deploy talent to where it is needed, whether that is planning to build a new app with our scalable foundation or helping teams accelerate development on an existing Flutter app. It doesn’t matter if the project is an in-car instrument cluster or a mobile financial services app. Because we have consistent architecture and best practices, our team can instantly be productive on any project.

Good development is collaborative. In a Flutter environment, every developer is a potential collaborator. They are using the same language and deployment tooling, no translation required.

  • People assigned to projects where they are needed.
  • Teams collaborate with each other and reuse code.
  • Creators can move from project to project and contribute without needing to learn new skills.

“Flutter revitalized our codebase and transformed our engineering team.”

Sam Moore, Principal Engineer

Developer experience and Flutter

Change can be hard, but from our experience, the teams that switch to Flutter are happier and more engaged. They get to make things and see them launch. They get to work with the latest tools. They spend less time managing technology and more time creating new value.

Developers like Flutter and find it easy to learn

Flutter.dev holds a quarterly survey of developer satisfaction with Flutter. Since 2018, the developer community has responded with 91–93 percent “very satisfied” or “somewhat satisfied.” As of May 2022, “very satisfied” has risen to 60 percent.

A large development house found that their developers only took 1–2 weeks to become capable with Dart (the language used in Flutter). It is a language that is structured in a way that is familiar to users of C++, Java, JavaScript, PHP, and Python.

Flutter maintains useful guides for developers migrating to Flutter and Dart.

Flutter means you can do more with smaller teams, and that has an organization-wide impact. If you thought hiring and retaining programmer talent was hard now, the US Bureau of Labor Statistics expects demand for developers and their ilk to increase at a rate of 25%, five times faster than the average professional discipline.

What developers love about Flutter

Why are developers so happy to use Flutter? It has capabilities that make writing good code easier and faster.

Free and powerful DevTools

The DevTools suite, running alongside the developer’s favorite IDE, provides performance, debugging, and other insights for developers as they work. Flutter integrates with VS Code with plugins that make development more fluid.

Very Good Ventures has contributed a lot of tools as well, including Very Good Analysis.

Enthusiastic community and packages galore to build upon

The Flutter community is numerous and active, with events such as the annual Flutter Forward.

The memorably named pub.dev is a repository of 25,000+ Dart and Flutter packages to build with. They provide reliable functionality for common and not-so-common capabilities like opening a web browser, connecting to a database, or reading ambient temperature sensors.

Hot reload

Particularly when working on code for multiple screens, checking your progress can be a pain of compile and deploy. Flutter’s hot reload feature allows developers to see their changes immediately in the Dart VM. It also improves the cycle time with designers, enabling efficient real-time collaboration to get designs pixel perfect. Although hot reload means fewer excuses to get up to get another can of seltzer, it does vastly speed up fine-tuning of UIs and dialing in of new features.

Strongly typed language with null safety

Smart language and compiler features help developers catch bugs before deployment. Referencing a variable set to null at runtime can break things. With the statically typed Dart language, most null calls are caught by the compiler, while the code is being written and debugged.

Easy to learn with lots of resources

Experienced developers find the Dart language easy to take on. There are numerous learning opportunities as well.

What Very Good Ventures has learned (and teaches) about Flutter

Very Good Ventures is one of the original pioneers of Flutter. Now, after years as a dedicated Flutter consultancy, we provide our expertise to the community and to teams who are adopting Flutter. We (and others) have found that Flutter is not just a software tool. It, along with its programming language Dart, enables a new product development methodology that accelerates the feature-to-market pipeline. When using Flutter, product strategy transforms:

  • One codebase — less to maintain and faster to create
  • Unprecedented code shareability and reuse — libraries, designs, assets, and tooling shared across a complex ecosystem of many products
  • Fewer overall product development resources — smaller teams, no separate teams for iOS, Android, React, etc. (not to mention the impact on other teams)
  • Lower organizational complexity — less confusion about who does what and less management of implementation and product releases
  • One skillset to train — lower training costs and simplicity in documentation and evangelizing organizational best practices
  • Greater flexibility of dev resources across the org — move talent to where it is needed most
  • Faster execution — ship new products faster and iterate existing ones more efficiently
  • Greater ROI from technology investments — leverage technology investments across multiple products and platforms
  • High-quality apps with more features — spend time investing in new features and adding critical value-adds such as accessibility and robust test coverage

It is a good bet that the target platforms you are serving run with Flutter. iOS, Android, web browsers, and common OS are all supported. Flutter is being used for VR and in-dash displays as well.

When eBay Motors brought in Flutter to build new iOS and Android apps, they found that the promise of a single codebase was realized.

It is not just code. It is also training, tools, and architecture

This all sounds great, but how does one get from here to there? All of the organizations we have discussed had pre-existing code, pre-existing teams, and pre-existing tooling. The migration is not without cost and complexity. No enterprise should dive into the Flutterverse without a plan.

Very Good Ventures helps organizations take Flutter on while maintaining their autonomy. Three key areas to focus on are training, tools, and architecture.

VGV dives in to get projects done

Along with training, tools, and architecture, Very Good Ventures’ Flutter Engineers often work side by side with clients’ in-house developers to code pilot projects, proof of concept, and production-ready code. Our pair-programming model is one way we ensure your team will have the skills needed to continue adding features to your Flutter apps. No matter how you want to get there, VGV has all you need to get a Flutter app into production and ramp your team up.

Architecture

The Very Good Way is to focus on scalable apps with easy-to-maintain code. It means starting with a vision of the end product and making structural decisions early for that end product.

The VGV Architecture Way

Tools

Flutter is open source and has a great ecosystem of open source tools to support it. Some just happen to come out of Very Good Ventures, such as the Very Good CLI. If you are looking to generate a scalable Flutter app, Flutter feature, or Dart feature (among others), the Very Good CLI can help you get it done in seconds.

A catalog of open source Flutter tools

Training

Flutter may be only one skillset to train people on, but it is pretty new and there are not a lot of experts out there. Very Good Ventures Training coaches a development team of any size to become a lithe, effective Flutter team.

VGV Training

Accelerating development accelerates creativity

Flutter helps technology contribute to creative product strategy, putting it into hyperdrive. Flutter removes one of the critical sources of complexity and overhead when bringing new products to market — duplicating execution to myriad platforms. Where there might have been existential dread around scoping a new feature, you can find more time and creativity from a more cohesive team.

V1 Sports, Betterment, eBay Motors, and us — Very Good Ventures. Throughout this paper, we highlighted teams that are accelerating their product development by adopting Flutter-based development. We expect that this raises many new questions. How does one start a journey to adopt Flutter? What about the particularities of a specific app or industry?

Laura Hughes Lekhi Director of Business Development
Greg Laird Senior Business Development Executive
Jorge Coca VP of Engineering
Shannon Campbell Product Lead

We’ll care about your success as much as you do.

Our unicorns read every message and reply, usually the same day.

Start the conversation

A 30-minute call about what you’re building.