Flutter – another buzzword or a new technological sensation?
As a NodeJS developer, I’ve realized that many clients want their application stack based on what’s so-called cutting edge technology and not exactly what fits their needs. The world of open source technologies is getting bigger and bigger, so trends are changing every year making some technologies more popular than they really deserve to be. So, is Flutter the same? Wait a moment!
What is Flutter? – I was asked by a client who was sure that he wanted Flutter to be used as their mobile app stack.
So let me start from the beginning, shall I?
How mobile app development looks like?
As smartphones started to take lead on the mobile phone market, they needed operating systems as normal computers do. They are always armed with many standard libraries allowing a developer to modify some phone resources. It means every developer needs to know exactly what’s going on under the hood of both(let’s skip side platforms) Android and iOS. With each system upgrade, all that may change, which means at the end of the day there is a huge amount of know-how needed to build native applications. Something had to change!
Beginning of cross-platform technologies
Soon after smartphones began to gain popularity, mobile developers realized that it’s almost impossible for a regular coder to know the details of two different languages and operating systems. Many of the big players in the tech market started the race for the best development tool that will allow running one code on two mobile systems.
In fact, most of the cross-platform technologies are nested browsers simulating native app experience. Allowing to bootstrap MVP application in a short time, they become little monsters, in terms of resource consumption, soon after we try to add more features.
It’s time for the new champion!
The cure for all pain is one, the small framework called Flutter. You can start developing a mobile app as soon as you learn reactive programming and Dart language.
What Google made for Dart, and what was missing in TypeScript, was developing a virtual machine and native compilation allowing Dart to compile using native libraries on any architecture it supports.
Then the magic happened…
A dedicated team started to work on the Flutter framework. The cross-platform technology allowing to write one application that will run natively on both mobile operating systems without any pre-configurations. What’s more interesting, for regular mobile developers there’s no need to write a single line of native code for any platform. Flutter creates a sandbox for an application that feels native and what’s more, perform like a native one. This sandbox allows the Flutter team to work on web and desktop versions of their framework, which doesn’t need any changes on the developer side. It handles all by itself.
Is Flutter production ready?
When deciding about the tech stack of new product business people need to consider if the technology is mature enough and if it will be popular enough to be maintainable in years to come. Flutter has already got version 1.9, and the Google team responsible for developing the framework works continuously to reduce the number of bugs and provide new features. Since 1.0 version Flutter can be considered as stable and ready for production. There’s almost no chance to find a low-level bug related to Flutter itself. The involvement of Google should do enough in terms of its long term popularity.
So when and why should I use it?
The way Flutter was designed can guarantee, that no matter how many views your application will contain, Flutter will always be able to provide a good performance. Thanks to multithreading it can work on heavy computing tasks without blocking UI operations. What is more, creating UI is super simple. Promise!.
Back-end programmer, cutting- edge technologies enthusiast
Michał is like some say „young and angry”. A fan of niche technologies and juicing all applications when it comes to performance. A definite champion for running to the fridge on time. Always positive and staying loose.