As in the title. This is a question that most developers will make when introduced to a new shiny framework. Currently there are many frameworks that exist Xamarin, Fuse, React Native, Nativescript, Flutter, and so on… All these frameworks were built to solve the same common problem, to be able to build apps cross-platform with one codebase and have a native look, feel, and performance to the App.

To Decide on which framework to use. Or which one is the best. That my friend will send you down a looooong rabbit hole. Believe me. I’ve been down the entire stack and still there is always something new and shiny to use. The last 2 years i’ve been falling and falling and falling testing one framework after another. Now I actually feel that i’ve finally landed in Flutterland.

You might be thinking what is so special about Flutter that framework X can’t do?, I’ve narrowed it down to one word. The same word Eric Seidel used in last DartConf. “Control”.

More and more apps nowadays require to have a custom feel, custom everything. Currently if you wanted the Material design InputText on iOS, well, you would need to build it specifically using the platforms native SDK and expose it to the X Framework. And on android you would need to implement a special compat library to get it to work on older phones.

With Flutter you would only need to build it once and already would work on Android and iOS. You get complete control of what you do with your App.

Flutter removed all the platform specific UI bureaucracy and created its own layer on top of the native platform. So you don’t need to depend on anything to be able to accomplish some really complicated UI. Also being made by google engineers, you get a complete Material Design framework for Free. And it is the most complete Material Design implementation i’ve seen on a mobile Framework.

Flutter uses the Dart Language that was created by google also, to be honest i’m not a fan of strongly typed languages like C# or JAVA, but i don’t know why Darts way of writing code seems different. And i feel very comfortable writing it. Maybe because its very simple to learn, and very straightforward.

The tooling is another factor that makes Flutter shine. When you apply changes to the code you can see your results in sub-second cycles.

This is similar to other Platform X, but others don’t get it as fast as this. One thing you can observe from the image above is that when changing the text of the ui, you are not losing the state of the application, so you can iterate faster on the UI.

In this blog post i wont be going down to specifics of the framework, there is plenty of information on https://flutter.io/ to get started.

So to resume i’m not settling on Flutter because its the new kid on the block or because it was made by google. Im settling on Flutter because the productivity of the tooling and the speed of development is far greater than any other i’ve seen. And because i have control over the entire app and can build whatever i want with it without any compromises. And my app will be future proof.

Ive made two apps with material design, both took me less that 4 hours each to build it, you can download the source and test it out. They are rough on the edges and lack some functionality but it will give you an idea of an app built with flutter and how easy it can be.

Google Inbox Clone

https://github.com/franzsilva/FlutterInboxClone

Google Messages App Clone

https://github.com/franzsilva/FlutterMessagesClone

Thanks for Reading.

More posts on flutter coming soon…