Is Flutter right for your mobile app ?

Sergiu Rosu
4 min readDec 4, 2020

Short answer ? “YES” !

Intro…

I have been working as a software developer for about 17 years now… working on mobile for about 10 years and I feel that is safe to say that I have tried almost everything, that’s why I think that my advices and thoughts are well informed and i’m not just guessing.

Don’t expect any technical details in this article, I just wanted to tell you my opinion and my advice in regards to using Flutter in your mobile app, but it will definitely help you make a decision.

Native or cross platform…

Every client or developer has it’s own opinion… some say if you want something really good you need to go native, if you want something really cheap you need to go cross platform. I used to say (and believe) that for may years and I really think it was true… until Flutter appared !

Things have changed when Flutter entered the mobile area, it’s a different approach to things, which until now it’s a recipe for success, it’s only a 2 years old and already has more stars on github than react native… the number of resources for Flutter is huge so it’s safe to say that is at least safe to consider it from the start.

Now, let’s do some myth busting :

  • cross platform is slow: not with flutter, flutter is at least as fast as native apps (for rendering) the rest is up to you…
  • cross platform saves time: YES, flutter saves you a lot of time but will talk about that later.
  • cross platform is cheaper: YES, time = money and there other reasons too, see bellow.

Case study

I was contacted for a mobile project, a booking app, it’s already in the store working fine, having awesome reviews(it’s free, give it a try especially if you are in the London area). The customer had not idea what he wanted, he told me “I want a booking app” and that was it, we started from there, than figured out some basic requirements:

  • for ios and android
  • needs to be cheap
  • requires IAP and subscriptions
  • live chat
  • different authentication methods
  • search
  • geo search and map
  • notifications
  • and more…

Until this point I only created small apps with Flutter, but I was thinking that it deserves a chance, so I start digging and make sure that everything that I needed it’s possible to do with Flutter and I had one clear conclusion:

“Anything is possible with Flutter”

Yes, anything is possible, many people ask me if this or that is possible, yes, it is, there are thousands of already made libraries, if not a new one can be created in native code and used within Flutter.

For my project, (as it had to be fast and cheap) I decided to go with a serverless approach with Firebase (firestore, storage, authentication, analytics, notifications, cloud functions) and also use Algolia for search (as recommended on firebase documentation).

The development time was really really low, as a comparison, if I was to create the same app only for iOS using swift (which is my main job description) it would have taken me more time, so over all, because I also produced and android app, I would say that the total work hours was less than 40% from creating 2 native apps for iOS and Android.

The integration with Firebase was also a very good decision as I created cloud functions which are working fine now (a little slow because of how firebase handles cloud functions) but the can be always moved to a virtual or dedicated machine with a minimum of effort.

Learning Flutter

I started from zero about 15 months ago, Flutter is really easy to learn especially if you have experience with mobile development, it uses Dart language which is easy and flexible, there are LOTS of resources available, and as always you can find the answer to everything on StackOverflow…

If you are starting from scratch with flutter, do a few very simple sample projects and establish some milestones for your own project. The architecture is very important… as for any other project so think twice before starting writing code.

The approach Flutter uses for UI is similar with SwiftUI meaning that all ui is created from code, also Dart has streams and there is RX library for dart and it’s very easy to have a reactive app.

Some conclusions…

If you are not sure, give Flutter a chance, I guarantee that you will not regret it, even if you decide to go native or pick an other cross platform in the end, at least you learned something and in the future you will take more informed decisions.

If you have a low budget or you need it really fast, go with Flutter is the right choice !

If you have the budget and not sure what to do, think that you can spend the budget on something else, cool animations (futter is awesome for great visuals), visual effects, add more features, etc.

Contact me !

Do you like Flutter and have questions ? Drop me a message and I’ll be glad to talk with you !

--

--

Sergiu Rosu

Software engineer, mainly on iOS with Swift, also working with Flutter for iOS and Android.