Before we discuss the relationship between new ambitious ventures and Flutter in detail, let me start with some information about startups and MVPs. Only once we learn more about young entrepreneurs’ needs, can we fully understand how Google’s framework responds to them.
What startups really are
In spite of being an industry buzzword, the word “startup” seems not to have one specific definition. On the one hand, it can be defined as a small company, able to scale up quickly, with no maximum employee count. On the other hand, it can be described as a young venture driven by the urge to make a change or solve the problem but with no guarantee of success. In the words of Adora Cheung,
Startup is a state of mind. It’s when people join your company and make the explicit decision to forgo stability in exchange for the promise of tremendous growth and the excitement of making an immediate impact.
Another feature of startups is that they often have limited funding coming from owners or angel investors and generate little or no revenue at all. However, obtaining funds may get difficult for them for a start due to the high failure rate among young ventures.
Let’s now take a moment to take a walk in the startupper’s shoes. First, you have an idea and you need to find people who believe in it enough to bring it to life and choose the relevant tech stack. Then, you need funding for research, development, testing, as well as marketing and building a solid brand image. A business angel is the only person who can give it to you – but unless they are sure the investment will pay off, they probably won’t risk making it in the first place. On top of that, if you want to truly disrupt the industry, you have to hurry up because the competition is fierce.
It seems like a lot of things to worry about, doesn’t it? Luckily, there’s something that can ease at least some of these business pains. The cure in question is an MVP.
MVP: Most Viable Promise?
You surely heard that it’s always a good idea to release an MVP before the full-blown app. How is that?
MVP stands for Minimal Viable Product. It’s a cost-effective way to validate the demand on the market and make a test run of an app containing only the essential features. MVP has four main advantages:
- it builds recognition on the targeted market, thus supporting marketing activities,
- it collects user feedback according to which you can improve the final product,
- it helps convince business angles to invest in further iterations of your product,
- it contributes to the creation of a community of loyal users.
In the IT world, fewer features equal less time (and money) spent in total on the software development process. And since an MVP assumes restricting your product’s functions to the bare minimum, it allows you to shorten time to market, outrun the competition, and win the hearts of early adopters.
How does MVP stack up with real-life business requirements?
It all sounds very well in theory but is an MVP really as effective? Well, here are a couple of success stories that prove it is indeed.
Airbnb founders struggled with money issues in college until they figured out that there is space for at least three additional beds in their living room. That thought led to the creation of a basic website without multiple options like dates, prices or locations, that was targeted primarily at conference attendees visiting their city. Once they realized that they are not the only ones to let strangers into their home for some extra money, they decided to supplement the web app with the location feature. And then, from the idea which needed almost no financial investment, the website grew to be what is now a $38 billion company.
On this day ten years ago, Airbnb launched. pic.twitter.com/UFA7b1weRh— Brian Chesky (@bchesky) August 11, 2018
Spotify was born with only a few key assumptions in mind: that people want to stream music instead of downloading it illegally, that artists and labels will cooperate to create a way of streaming music legally, and that the state of technology will allow all parties involved to meet the technical requirements. The first version of the app wasn’t elaborate at all: it featured only a few hardcoded songs and had no legal coverage. 13 years later, Spotify is streaming over 50 million tracks to over 271 million active users.
Twitter, originally known as twttr, was designed as an SMS service allowing the employees of a podcasting company Odeo to message each other quickly. Back in 2005, it was a pretty simple tool that didn’t even feature the “reply” option. Nonetheless, it has soon turned out to be an idea good enough to be released to the world. The numbers speak for themselves: 330 million active users monthly and, as of Q4 2019, 1,01 billion USD in revenue.
What Twitter looked like in 2006: pic.twitter.com/zALPHoAqGN— Jon Erlichman (@JonErlichman) December 26, 2019
What about Flutter?
Enough about ventures and Minimum Viable Products – it’s time to talk real tech. Flutter is a software development kit created by Google in 2017. It’s a cross-platform solution that provides an almost native performance for mobile platforms (and soon for web as well as desktop) from a single codebase.
Like every new technology, it’s considered to be an improvement having a lot of advantages. It allows managers to create a single mobile app dev team which in turn unifies their development investments to ship more features faster, ship the same feature set to iOS and Android at the same time, and lower maintenance costs.
One of Flutter’s main value propositions is that it saves engineering resources by letting developers create apps for both iOS and Android with the same codebase. By using a single language, a single framework, and a single set of libraries for all of your UI elements – whether the interface in question is different for each mobile platform or largely consistent – it aims at lowering app development and maintenance costs. What’s also important, especially from the HR point of view, going for Flutter frees you from the need to search for engineers in two technology pools in order to build a team.
As far as the efficiency of development is concerned, Flutter offers engineers a feature called hot reload which is basically injecting updated source code files into the running Dart Virtual Machine (VM). This allows developers to see the effects of the introduced changes almost instantly.
Sounds too good to be true already? When you add to that rumors about Fuchsia (Google’s open-source operating system for which Flutter is surely ready) replacing Android in the near future, you can’t help but wonder who needs native languages anyway. Nonetheless, the IT community is not unanimous about the solution’s perfection which shows in the following concerns it expresses about Flutter:
- Google likes to shut down its products. Until this day, they killed or moved on from almost 200 projects, such as Allo, Hangouts, and – probably the most notorious one – Google+.
- Flutter is still a young technology so the community supporting it is smaller than those of native Android or iOS solutions. Although the framework is gaining supporters every day, a huge portion of Flutter’s contributors on GitHub are Google developers. Finally, to use Flutter, you need to know Dart which is a much less popular language than Java or Swift.
- As a cross-platform solution, Flutter isn’t as effective as platform-specific solutions. “The knowledge of native technologies is not necessary but advantageous when implementing a package which requires communication with native platforms” says our Paweł, our Senior Mobile Developer. “Most of it is already fixed and there’s no need for the native experience if the app doesn't use a little-known SDK or platform-specific functionality that no one has packed yet. At the same time, there still remains some kind of a dark area uncovered by cross-platform solutions, especially if we’re talking about new system features which will take more time to be translated into Flutter”.
MVP and Flutter – do we have a match?
Looking at the problems freshly-minted entrepreneurs face and the solutions Flutter offers, I can’t deny that these two seem like a good fit. Let me summarize what I’ve already said by singling out ways in which they complement one another:
- Mobile app development with Flutter is fast. All thanks to one codebase and hot reload, both of which save time normally spent on development, testing, and maintenance, thus leading to a shortened time to market.
- Having only limited resources at your disposal, you don’t have to choose whether to hire an iOS or Android-oriented team. Instead, you hire a smaller Flutter team and cover both platforms at the same time.
- Greater speed of development translates into the possibility of getting to know the market needs faster and better. It's essential for startups that value user feedback above all.
- The community seems to embrace the technology. Google (obviously), Hamilton, Skype, Groupon, eBay, and Uber all use Flutter it one way or another – and mind you, most of these companies started as small ventures.
- Flutter is a new technology so you don’t have to fear becoming burdened with technological debt when using it. At least not yet ;)
MVP built with Flutter – Ginny case study
Nothing makes a more convincing proof than a real-life product – which is why I want to finish off this article with a case study of Merixstudio’s internal project based on Flutter. Ginny is a collaborative parking management mobile application that includes the following features: sending requests for a parking space, freeing up assigned space, real-time monitoring, and access with the Slack account. Being an MVP, it’s not a comprehensive solution yet and it’s targeted at a small group of users. Nonetheless, when building it, we paid special attention to making Ginny scalable. After all, the app is supposed to grow together with Merixstudio. Flutter helped us not only in that but also in speeding up Ginny’s development process.
Sounds like you could use Flutter in your product as well? See how we can help you do that!