Recently I published my first story on Medium about Flutter. I got lots and lots of incredible feedback from you amazing people and mostly there were questions of my own take on Flutter. How did I feel about it, what’s good/bad about it.
I would like to share my POV of Flutter as it is today (12th of October 2019).
I will start from negative things about it and will finish on positive note, because Flutter has many of these! Let’s go!
Lack of libraries
First of all, it’s new. As for every new language/framework, time is important. New languages brings lots of uncertainty. Will it survive, is the first question. Since Flutter is made by Google, this concern is minimal.
What most of the devs should be aware that lots of external things can be hard to be done on Flutter at the moment. For example, recently I had to implement maps on Flutter. Flutter team provides google maps integration to it already, which is great. However, functionality is still not 100% and there are still some noticeable differences between platforms for maps.
Another case would be payments. I was playing with Stripe, and well.. It’s quite hard as for this moment.
You got the idea. If you want to go to Flutter, check libs first — be sure not to mess up your timelines only after discovering your expecting integration is not there yet!
It’s a pro mixed with con. Dart is another gem made by Google. It got really good accelerating growth after Flutter was released and updates are constantly released. Hard part of it is to always keep up with new stuff. You always need to stay on top of your game in order to utilise best of Dart.
Here is my biggest rant of all. I came from Android background and really scalable applications background. With Flutter I still struggle to come up with right logic flow in order to build scalable application.
Last year Flutter team were embracing BLoC state management approach while this year they promoted Provider. Under official guidelines and options, they mention variety of options for state management. I love Google and Flutter team because these guys always take risks and are not afraid to fail. That’s why we have such great products.
It just matter of time when we can have real strong design patterns and approach of state management and logical flow in Flutter. For now, just try not to build monstrous applications and make sure you or your developers understand the best way of debugging application — because that will be fastest way of fixing bugs and moving forward. 😅
Flutter IS NOT easy
Flutter is awesome. It’s so freaking easy to kickstart the project, build incredibly looking application. It’s really easy. But it’s not easy. 🤪 What’s not easy is to maintain, improve and add features on top in Flutter.
What I’m really bullish is that people share tutorials all over the place of how easy Flutter is. Yet, no-one is talking how hard it is to have huge and sophisticated application with it. Everyone demonstrate 1–3 pages application with stunning design. But how about the logic? What will happen when application will grow to 5-10–20 pages? Not many people talk about that. Mostly people focus only on beautiful look of the app. But mostly that’s not the product people will look for and use it for. It’s mostly about combination of speed, wonderful user experience and UI. *cough* Make something people want *cough*
As a person who has his own startup and understands product development and tech side, I’m really sad, because I for-see many business founders falling for Flutter, hiring amateur developers who will deliver first part of product real quick raising founders expectations and then running out of money due to delayed product delivery due to too many bug-fixes and/or slow feature updates. I really would love people to understand real side of it.
I think this will get fixed within upcoming two years. Until then, be careful.
Flutter is too flexible
It is just my opinion, but I think Flutter needs to be more strict with logic and it’s widgets. If you have UI, you can implement it in 1M different ways. And I think it is not a good thing. As some of the choices can be really inspirational, I believe most of them will be
wrong and cause more pain in the long run than satisfaction.
What also bothers me is allowing
ifs within widget trees. Ones code can get extremely complicated very easily. I hope there could be some switch to avoid it.
Biggest issues from it all is that with these millions of options, it should be extremely hard to work on your colleagues code if you don’t have internal standards in place. Everyone can build their own best practices now which is not good.
Flexibility is great, but it has to be balanced with the control, guidelines and best practices.
I love dart. As a person coming from Java it was relatively easy to pick up. It’s hard to keep up with all of the updates but damn, it’s so incredibly nice. Writing constructors, managing threads,.. Such a huge upgrade looking from Java side.
Huge community support
I already found several bugs on Flutter. And I was amazed, how welcomed people are to listen to your feedback, help you to debug and fix issues. Flutter team and whole community around it is amazing.
Easy to build wonderful looking apps
It’s so many tutorials already on YouTube of how to build wonderful apps in Flutter. So many speed/live coders implementing concepts from Dribbble or other design inspirational websites.
If your team has a talented UIUX person, your app easily can become Number one Flutter app as for this point being and take the crown from Reflectly (haha).
Extremely fast improvements
Downside of it was lack of libraries on Flutter. Upside of it is that each day, more and more libraries are being created and added to public. Further more, every day PRs from Flutter team makes me happy as a little kid. 😆
Sleek support for iOS
It’s amazing cross platform framework. And even more amazing fact is that Flutter team push it really hard for Flutter to be as native look on iOS as possible. It’s incredible to have a framework which mimics UI elements based on platform you are using. Android devices will experience different UX as iOS ones by default. Which is, from my POV, really powerful.
..and many more
It’s so many more pros on Flutter, I’ll have to stop it here. 😅
As you can see, there are many ups and downs for Flutter. I think it’s okay to play with it, okay to build some small platforms with it. I would not to choose Flutter to refactor my existing React/Android/iOS codebase. I think it’s still too early because that refactor will have many more internal refactors due to Flutter improvements.
If you never tried Flutter, I would strongly encourage you to try to sit on it for a week to understand more about it in depth. And it’s okay to get back to your original mobile programming language afterwards. As now you will form your own opinion aboutFlutter and you will understand, when you can start moving on it more seriously.
Let me know your pros and cons on Flutter!