From Idea to Full Stack Solutions: Using Dart and Google Cloud

Learn how Dart and Google Cloud can streamline a full-stack development journey going from idea to launch in record time

April 10, 2024
April 10, 2024
updated on
April 18, 2024
By 
Guest Contributor

The Very Good Ventures team had the opportunity to participate in the Google Cloud Next 2024 event as an official Google Cloud Partner and sponsor. 

We had the privilege to be on the stage at the Community Hub to talk about how Dart and Google Cloud can streamline a full-stack development journey going from idea to launch in record time. Below you can find a summary of the key insights we presented and we hope it will be useful for dev teams around the world. 

Here is the live demo from Google Cloud Next '24:


Unifying Development Teams through shared Technology Stacks 


Very Good Ventures has been the Flutter and Dart ecosystem leader for over six years which has given us a wide range of experience in many different codebases and products. Throughout this time we have seen companies and products grow to meet the desires and needs of their customers. While this is key to making sure your business is successful, it also means that overall there is a lot of code to make a modern product successful. 

In order to combat this, we have found that the more we can bring the frontend and backend teams together through a shared technology stack, the easier it is to move forward as one team. This quickly turns into a better experience for your end users as the cycle time between updates and feature releases becomes shorter.

Typical Problems Teams Face


In today’s software landscape, no matter what technology stack is being used, the problems faced typically end up being about the same. 

  • More development, less resources - As the business is always moving forward and asking for more with fewer available resources, the demand on development teams can easily become overwhelming. 
  • Complexity in Solutions - The main task of the business is always to solve problems quickly & deploy them to production with zero defects across multiple platforms to ensure the biggest impact.
  • Hard to Focus on Value - When you don’t have a solid base to build from, you’re constantly fixing issues. This makes it impossible to also concentrate on business and user value.
  • How to Manage it all? - With so many different systems, requirements, and dependencies it’s easy to lose track of responsibilities, especially across multiple development teams.

But at the end of the day, we are Engineers. So how can we solve these issues with a technology solution that also benefits the business?

Multiple Platforms, One Codebase

With our extensive experience with Flutter from its start, we've witnessed its profound impact on teams and their productivity. We firmly believe that the efficiency of uniting frontend teams (typically Android and iOS but not limited to just mobile platforms) significantly saves time and resources throughout the project's development lifecycle. However, it's not uncommon for backend development to lag behind frontend progress due to its fast-paced nature. To address this challenge, we consider Dart for backend development, as it fosters team unity and matches the productivity achieved in frontend work. 

While Flutter has been multi-platform from the start, Dart has purposely been platform agnostic. It’s just a language that can be used wherever needed. Given this flexibility, we invested in creating a framework called Dart Frog to try bringing the frontend and backend teams together. With the use of Dart Frog we see Engineering teams becoming not defined by the platform they write for, but by the product area they own. This is a cultural shift not just for the Engineering team but for the business overall. The guesswork of who does what part of an implementation is removed and instead of splitting up tickets, teams can get started doing the work quicker.

Demo Application and Structure

While we have been using Dart Frog for over a year now at VGV, and in successful projects including the Google News Toolkit and I/O Flip, it is still a bit of a new concept for some teams. In order to demonstrate how it can solve some of the issues we just talked about, we have created a simpler demo application, VGV Recipes

While the application is just a basic Flutter app, meaning that it can easily be deployed to any supported platform, the real magic is the fact that the API server is developed right alongside the application in a shared repository. This means that items like the Dart Models can easily be shared between the two in order to keep them in sync at all times. This architecture also allows us to have a centralized point for our third party service integration. This means that we have the ability to keep our client application as light as possible and make quick and easy updates, fixes, and deployments via just our backend.

If a change happens, the contract between the application and the server doesn’t break. Even better, with the entire application stack running locally and using the magic of Hot Reload, you can easily make changes to preview and test with little to no downtime in your development process.

Feature Addition Example

So what does this look like in practice when a new requirement comes in? Let’s take a look at what it would take to add a new item to our recipes which we missed during our MVP, the total time a recipe takes to make. With Flutter and Dart we can break this into a few key steps

  1. Add the field to the model - When we do this it will be done in the shared model between the frontend and backend keeping them in sync throughout the development process.
  2. Modify the Backend Query - With the information available we just need to do a quick change to ensure that we are getting that information pulled into our response from the server.
  3. Add a widget to the frontend - With the information needed being added into the response, it’s as easy as adding a Text widget to our UI with that new field.

Through all of that, we didn’t have to restart the app or the API a single time!

How To Get Started

Hopefully, this way of thinking and example is a good illustration of how this shift in technology stack can help you in your current or future projects. Very Good Ventures has developed this perspective over numerous years and projects, and we see it as the next evolution of engineering teams overall. If you're interested in hearing more about this, don’t hesitate to reach out to have a quick conversation.

Tags:

More Stories