DEV Community

Discussion on: 13 Reasons why Flutter is the Future of Mobile App Development

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

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