DEV Community 👩‍💻👨‍💻

13 Reasons why Flutter is the Future of Mobile App Development

Joe Brian on October 22, 2020

Ever since Google launched the stable version of Flutter, developers can’t contain the excitement of how this SDK will be the future of mobile app ...
Collapse
 
andrewbaisden profile image
Andrew Baisden

I have to admit that I was not totally convinced by Flutter at the start. I just did not see that many real world job opportunities available for it at the moment. But now I understand that it is still new and emerging. I have been learning it these past few days and it is pretty impressive. The Flutter plugin has of right now 6.6 million downloads in Android Studio! That's a lot of developers and shows how popular it is. I am still learning it however I have already made some simple cross platform apps that run on iOS, Android and macOS.

Collapse
 
fchamieh profile image
Fadi Chamieh

I have used Xamarin, Cordova and native stuff to develop Android and iOS apps before, experimented a bit in react native, but it seems Flutter is the new kid on the block with high-kicks and fancy elbow strikes. Gonna dive into it and see where I land!

Collapse
 
jeehut profile image
Cihat Gündüz • Edited on

Many of the points in this list are actually arguments against Flutter in my opinion, not in favor of it – or at least it's on the same level.

Like "a single code base" – it's actually not a single code base with Cupertino and Material flavors. Related to that stating that "Testing is much easier" while QAs still have to test for both platforms as the environment is different and the same code might not work on both platforms. "Suitable for Cross-platform Application Development" is just as true as it is for Kotlin or Swift, you can use them both on several platforms already and while there's ongoing work on Flutter, there's also ongoing work on Kotlin & Swift for other platforms. I also highly doubt that writing an app with Flutter is going to lead to "Faster app development" now with the likes of SwiftUI and Jetpack Compose on the way. "Less cost of development" may be true short time, but including the vastly better debugging tools into account native still wins long term. "Integration with Firebase" is a big privacy issue, at least from a European perspective, and if you really need it, there's great SDKs for native coders as well. When I read "Wide range of open source packages" I had to laugh because I thought this post was supposed to be about where Flutter shines in comparison to native. Of course, for native development, there's many more open source packages available and still many more new being written everyday than for Flutter. Same goes for "Support from the Flutter community", which might be true, but even more so it is for the Kotlin & Swift community.

Having all this said, please don't get me wrong, I'm not thinking that Flutter is a bad technology and no one should use it. Some of the points above actually are good reasons to use Flutter and there are good use cases for it, like that Hot Reload is an amazing time saver and that Flutter is good for MVPs, especially for bigger companies who can afford to rewrite the entire code in native later once the MVP helped improve the design. But as long as a technology isn't oficially supported by the big platform owners (mosty Apple & Microsoft), it will always be hard for cross-platform technologies to truely be "the better alternative" as it's praised here. The only thing what Flutter does better than React Native so far in its core is that it isn't targeting Web developers by using Web technology (JavaScript), instead it actually targets Mobile devs. I mean, it's from Google, authors of Android, not from Facebook, who try to tackle everything from the Web perspective.

But if someone asks me what they should learn now if they want to become app developers for Mobile, I recommend modern languages with functional features & strong typing (like Kotlin & Swift) as well as official declarative UI frameworks (namely SwiftUI & Jetpack Compose). It might take more time to learn both, but at least they can be sure that it will still exist, have much improved tooling and will offer the best possible experience for users on the platforms for years to come.

Yes, in a dream world I wish there was this magic cross-platform framework everyone could use to have one singular code base for everything. But inventing a new one that isn't native in any of the platforms isn't going to work in my opinion, it will just create another platform. It's much more probable that one of the native platforms will grow into the other platform over time and that either Apple or Google will at some point oficially support the other – simply because it's half the work (one platform already works perfectly!). Currently, it looks like the chances are higher for Swift to be supported by Android officially (at least Google/Android engineers seam quite interested in Swift) rather than Apple opening up for JetBrains' Kotlin anytime soon.

This is how I view this topic, at least and I'm very interested in the cross-platform topic, actually as I'm developing both apps for Android & iOS. If Flutter actually was just as that better as it's presented in this post, then I could just focus on that and save lots of my time. But I can't.

Here's a recent article that summarizes the risks & hopes for Flutter quite well:
medium.com/@adrianzyga/mobile-deve...

Collapse
 
joebrain032 profile image
Joe Brian

Thanks for sharing your thoughts

Collapse
 
gabek profile image
Gabe Kangas

I've been around the block with all the "write once, run anywhere" mobile frameworks and let me tell you: there's no silver bullet. Every project I've had to build with one of these frameworks ends up being a nightmare. Trust me, I'd love if I could build a single codebase for multiple platforms while being easier at the same time. But the truth is nothing is magic, and you always pay for not doing things the right way the first time.

Use the right tools for the job instead of the tools you wish were for the job and you'll always be happier.

I wrote a bit about my experiences with non-native mobile development in the past if anybody is curious: gabekangas.com/blog/2018/02/why-yo...

Collapse
 
joebrain032 profile image
Joe Brian

Thanks

Collapse
 
pablonax profile image
Pablo Discobar

Good job! If you are interested in Flutter, you can also look at my article about free vs paid Flutter templates. I'm sure you'll find something useful there, too.  - dev.to/pablonax/free-vs-paid-flutt...

Collapse
 
103221 profile image
103221

Thank you for your article! It is very nice and thorough indeed. Concerning testing, I'd like also to mention testing automation provided by Flutter which makes building an app really easy. I've seen another short info with pros of Flutter app development (surf.dev/flutter/) which I find very useful, hope you don't mind me adding it to your material :)

Collapse
 
takunda profile image
Takunda Madechangu

This is very true. I wanted to hang around React Native these past few months but flutter is that cool new kid on the block

Collapse
 
joebrain032 profile image
Joe Brian

Thanks

Collapse
 
sourceking profile image
sourceKing

Nice article, flutter really is the feature once you overcome its initial overwhelming complexity you realize that it is not complex at all :) at least for the most part anyways, hehehe

Collapse
 
joebrain032 profile image
Joe Brian

Thanks

Collapse
 
sunisstillhigh profile image
Daniel Ivanov

Awesome article!

Collapse
 
joebrain032 profile image
Joe Brian

Thanks Man

Collapse
 
joebrain032 profile image
Joe Brian

Thanks man