Every once in a while, the team at RebelDot finds an opportunity to develop a pro-bono app for the local community. Now this is usually the product of an epiphany that one of us had thinking about a problem that could be solved with tech.. And when this happens, we zone in and stubbornly work towards bringing that solution into the feeds and hands of the users as soon as possible.
Same happened with the CERT Rescue app, a simple and intuitive app that we developed to help the rescue team of CERT Transylvania locate and save people faster. We managed to launch it two weeks and we did so by using Flutter.
We asked Bianca, one of our Flutter enthusiasts who worked on this project, to share with you 5 reasons why we decided to go for Flutter instead of React Native and how, by doing that, we managed to successfully launch the app in such short notice and have people already using it since day one.
Here’s her take on Flutter for mobile development:
Please take the below ideas with a pinch of salt.
Disclaimer: a lot of personal bias might be not so subtly hidden in this article.
Just like any other area in programming, developing apps for mobile platforms rapidly evolves. As I wrote this article, React Native has probably gained 30 more open-source libraries and Google probably announced 3 more deprecated APIs.
Being a mobile developer, my experience largely consists of native Android development, but, at the moment, I’m mainly focused on React Native and Flutter. Out of the two, Flutter has caught our eye and we are more and more serious about it.
So why Flutter?
1. Material Design-compliant widgets. A lot of them.
Flutter comes bundled with all the widgets you’ve ever dreamed of. I am not joking.
Considering that my initial experiences as a programmer consist of one year of native Android/Kotlin programming, I am not going to talk behind Android’s back.
BUT.. let’s be fair.. its UI system slows you down.
You get drowned in XML files and rounding corners is simply a nightmare.
Clearly, when discussing cross-platform technologies, React Native and Flutter are faster from a UI perspective and pretty much tied in many aspects.
However, when it comes to designing a powerful and responsive UI, I can promise you that Flutter wins. – Create a new project and start writing your app with all that the framework has to offer — no writing widgets from scratch or 3rd parties from open-source projects.
With Flutter, Google has your back. They made sure that Flutter comes bundled with Material Design-compliant widgets.
Pro tip: if you’re curious about this, check out ‘Widget of the Week ‘, a YouTube series created by the Flutter developers where you can quickly and easily understand the widgets.
2. State management done easily
It is true that CERT doesn’t have a lot of business logic or state management challenges. However, it is important to see that we needed to access the live location from any screen in the app by making use of the Provider pattern, which also comes bundled with Flutter.
I felt that this is worth mentioning due to the contrast between React’s Redux steep learning curve and the much more intuitive and easier to assimilate Flutter’s Provider.
Not to mention that Redux doesn’t come bundled with the mobile framework itself, wink wink.
However, even if you’re a web dev, you’re in luck: Redux is also a viable choice on Flutter.
3. Easy to pick up or transition to
Flutter is easier to learn than other mobile frameworks, in my opinion. This depends, however, on the background of the developer.
For those coming from a native background (Android development, as in my case), Flutter will definitely be easier to catch up on compared to React Native.
When a web developer switches to writing mobile apps, Flutter might be more difficult to assimilate than React Native. Still, all things considered, I noticed that the development runs smoothly regardless of the initial experience.
We have to thank Google for this.
4. Dart is great for writing fast apps
This is another advantage when it comes to Flutter.
Dart is a client-optimized programming language made by Google to support developers in accelerating the process of writing apps. Take this into account, along with the short build times (owed to hot reloading), and you’ll find yourself marathoning through the app development.
If you’re curious about how quickly and easily you can move around with Dart when designing a fancy UI, check out Marcin Szałek’s talk at Flutter Europe from 2020. I was amazed by how easily he managed to translate impossible-to-do Dribbble designs into actual Flutter code.
5. Debugging done easily
One thing that I love about Flutter is that it allows the developer to use an IDE of their choice.
In my case, I feel more comfortable writing code in Android Studio than in VSCode. The colleague with whom I developed the app is more of an expert on React Native, so her choice was VSCode.
Despite our differences, we manage to live in peace.
There might be a lot of bias, of course, because of my background. But what’s nice about being able to go for different IDEs is that you can write wherever you’re more comfortable, so you’re not going to be slowed down by your very ally. What’s really cool about AS is that it comes bundled with powerful debugging tools, so it is much easier and intuitive to debug your app without external tools (so is the case with React Native).
This, for me, was a huge advantage that sped up the development process significantly.
Should you consider Flutter for your next mobile app?
As it usually goes with this type of questions: it depends. Flutter is really fast and powerful when it comes to designing a beautiful and user-friendly UI, perfect for an MVP.
Flutter apps might be faster in general because of the underlying architecture of the framework. The development is sped up from the beginning due to all the beautiful things that already come bundled with the framework.
Flutter is still young, but I think it has a lot of potential.
Just a few days ago, Flutter 2 has been announced. This means that Flutter’s capability to write a single app usable on iOS, Android, Windows, MacOS, Linux, and the web is no longer in beta.
This is huge news!