Everyone wants to build an app today and who can blame them? They are awesome. It's a fact that everyone owns a smartphone these days and it has quickly become the tool that we most use during the day. We feel something missing when we don't have them on us, we take them even to the bathroom and we can't even think of going to the street without them. Whether we like it or not it’s the device that has had the fastest and most aggressive adaptation to our lives, and the credit for that goes mostly to apps.
Apps have a special way of engaging users in a way that other things just don’t. It can be due to its beautiful user interface, the well thought user experience or the perfect usability. That’s the whole reason why programming may be considered an art, and Flutter is here to give us a hand in this path.
What is Flutter?
“Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.” (Flutter website)
Flutter is a cross-platform framework that enables developers to program on different platforms from a single codebase. This brings a lot of advantages to the table.
Here are some of the best things about flutter:
- It’s open-source
- It has a clear documentation and a great community
- Backed up by Google
- It has a widget for everything
- Improves developer productivity
Why is Cross-Platform so important?
Cross-platform development allows the creation of software applications that are compatible with multiple operating systems. This way, this technology overcomes the original developing difficulty of building a unique code for each platform.
Naturally, developing an application today implies being present on the only two relevant OS in the world: Android and iOS. In the past, this meant having two codes, two teams, and twice the cost. Thanks to cross-platform we can have one team create an app for multiple platforms from one codebase.
There is no doubt that Flutter isn’t the only cross-platform solution out there and we can go on and on about how others have tried taking different directions, but that’s another article. However, one thing is certain and that is: cross-platform is here to stay.
A single codebase, a single tech stack.
To continue where I was going, if managing the development of an app is difficult imagine managing the development in two different technologies. Every change must be codified and approved in two different technologies. The team must be divided into two, an iOS team and an Android one. That's why having a single team to work in a single codebase is more beneficial.
Where Flutter excels
It’s all about tradeoffs - any software developer is familiar with this concept because every choice we make determines advantages and disadvantages. So once again, choosing Flutter has pros and cons in your project.
In this article, I want to provide information about it for you to balance if it suits your project. Here are some of its benefits:
Faster time-to-market
Flutter is a great technology for prototyping - not only MVP - but also applications with real product features. By using Flutter you will be building an app for two platforms - iOS and Android - which can greatly reduce development times and consequently can get you to market faster. Additionally, the possibility of using widgets for basically everything and having a huge variety of libraries available is another important factor that speeds things up.
Single team of developers
By using Flutter you could have a single development team without needing to have two teams of experts in iOS and Android. You won't have to worry about synchronizing both computers, both codebases and you can simply release a functionality on both platforms at the same time.
Lower development costs
Having a single development team has other benefits as well such as enormously reducing costs. This is very attractive to anyone who wants to build an application since there is a lower economic barrier to entry to reach the application market.
But wait, when isn't convenient to use Flutter?
Surely there are situations in which Flutter is not completely suitable for your project. When that happens we must simply accept it and go for native development or other options.
For instance, if your app requires and depends exclusively on some specific hardware device intensive features you might want to find out if there is some sort of Flutter plug-in. However, since it is very new I highly recommend you to do a proof of concept to mitigate the risk that technology is not a barrier.
In addition, there are some places that Flutter hasn't reached yet, such as Augmented Reality and 3D games. In those scenarios, Unity is probably a better fit for your project. Keep in mind that you can always use Flutter as far as it goes and then for specific things use native or Unity. Remember integrating Flutter with native is always an available option.
From Beta to Big Players: The Evolution of Flutter in App Development
I get it if you are having second thoughts about learning another technology. But hang on with me here, let me show you how it has evolved till now:
Flutter’s beta version was launched in March 2018 and it was first to live in December 2018. Since then, Flutter has firmly established its position in the market and continues to rise at high speed.
The Flutter community is also continuously growing. Flutter is being trusted by big market players and top companies such as Google Ads, The New York Times, Hamilton, eBay, Square, Toyota, and many more.
Our experience with Flutter: A technology that exceeds expectations
It’s safe to say that Flutter has a bright future ahead. So, if you have been living under a rock and haven't heard about it go check this out now.
In Somnio Software we are proud to say that Flutter has not only met our expectations but exceeded them. It's certainly a technology that we fell in love with from beginning to end. It allows us to efficiently build applications in record time.
That’s why we trust Flutter. We trust its benefits. We trust its results.
In the next notes we are going to demystify Flutter and share some secret application development tips, so stay tuned!