top | item 15796069

Why Flutter Will Take Off in 2018

26 points| seenickcode | 8 years ago |medium.com | reply

26 comments

order
[+] Kipters|8 years ago|reply
I may be biased since I've been working with Xamarin since 2013, but I fail to see how Flutter could be a better choice than Xamarin:

- the language is a niche compared to C# (which translates in "it's harder to hire devs")

- it's less mature (both the framework and the language)

- most importantly, Flutter uses its own set of controls that look like the native ones, while Xamarin uses the platform's native controls.

Can someone please fill in what are the advantages of Flutter?

[+] MarkMc|8 years ago|reply
For what it's worth, as a long-time Java programmer I found it very easy to pick up Dart. I was porting a Java program and found I could copy and paste the Java code into my Dart app, then fix the compile errors (mostly by deleting the verbose scaffolding that Java requires). If I was scaling up a project written in Dart I would just hire strong Java programmers and expect them to get up to speed with Dart pretty quickly.
[+] hesarenu|8 years ago|reply
Does Xamarin have native UI widgets not just basic components?

ReactNative has native controls but most are just basic. Flutter has material/ios widgets built in which simplifies develpoment. I like flutters declarative syntax similar to reactjs. But its still in alpha hence can't commit much time to it.

[+] jbergens|8 years ago|reply
As I understand it he says that Flutter uses dart and that is much better than js, react native lacks good documentation and the developer tools are great for Flutter/dart.

Both Flutter and Dart seems interesting but I don't think they will take over the world in 2018. TypeScript already exists and has a lot more users than dart and also has good tooling. It is also typed like dart which makes more traditional c# and java devs happy. React is getting more an more popular and react native will probably live on that, even if it isn't the best solution for building mobile apps (and it might be the best one yet, I don't know).

[+] piotrkubisa|8 years ago|reply
Disclaimer: I don't have experience with developing RN apps.

I mostly agree, but do a lot of RN modules are written in ES6 rather than TypeScript, so they are lacking type definitions [1]? Also I noticed a lot of modules which are just converted cordova plugins to RN.

[1]: Yes, I know. I can use anonymous definitions or use some magic tools...

[+] seenickcode|8 years ago|reply
Good points. After writing native mobile apps with ObjC, Swift etc I still prefer strong typed languages like Go, TypeScript, etc.
[+] ubersoldat2k7|8 years ago|reply
Although it seems like a great alternative and competition is always welcome, one of the best points about React Native is that any JS/React/Web developer can go to a React Native project and know what the hell is going on. Even if they don't know exactly what a View is.

Flutter would be great if Google didn't have to sell Dart somehow and instead stick with TS/JS. Now you have Flutter developers, not Dart developers because Dart is dead as it was 5 years ago, who can't do either Web nor Native. Not a great selling point there.

So, if you're a web developer, you have to learn a new language, framework (whatever Flutter uses) and set of APIs. If you're a native developer, you have to learn, pretty much the same things. And then, you're stuck there. Implementing everything which you can already find on JavaScript and with a knowledge you won't find a job for.

This was funny:

_Native mobile engineers who are adding a hybrid mobile framework to their tool belt DON’T want to slide back to JavaScript._

Yeah, like learning a whole new set of language and tools, which we cannot reuse for anything else, is going to drive us to the wonders of Dart.

_It’s also not only for mobile but for the web as well._

Angular, one of Google most successful projects, uses TypeScript and not Dart, let that sink in.

And BTW, Dart is a language, so expect many other Dart-Flutter Frameworks poping up. React Native is based on a framework with lots of traction already and you can just use stuff you're already familiar with like Redux, Underscore and pretty much a whole set of JS libraries already present. Almost every service has a JS library. Now you have to redo the whole thing on Dart?

In conclusion, Dart and Flutter is the next smoke cloud and fad to sell on 2018 and will die (or evolve to use TypeScript/JavaScript) on 2019.

Edit: I really hope it's the second option because, the other points about RN are true. The documentation is not the best and competition is always a good thing.

Edit 2: After the demise of so many projects from Google, I frankly distrust them whenever a new thing comes from them.

Edit 3: Now that I think about it, NativeScript already uses Angular and TypeScript, so maybe that's the reason for choosing Dart for Flutter.

[+] seenickcode|8 years ago|reply
A huge amount of people out there try to avoid JS like the plague, hence the popularity of TypeScript, so yep, if I can learn Dart in an afternoon and have the ability to write hybrid mobile apps then it's plenty worth it.

Re "Angular, one of Google most successful projects, uses TypeScript and not Dart, let that sink in.": Google is also promoting AngularDart as well, "Hundreds of Google engineers use AngularDart to build the sophisticated, mission-critical apps that bring in much of Google’s revenue." https://webdev.dartlang.org/angular/

"Demise of so many projects from Google" I agree with (sans the popularity of Go).

Flutter is in alpha so time will tell if Google will put enough funding/focus into it.

[+] m_fayer|8 years ago|reply
I'd be excited about Flutter if it wasn't using a language that I would only ever use to write Flutter apps and literally nothing else, ever.
[+] MarkMc|8 years ago|reply
Well Dart can be compiled to Javascript. In fact I think that was why it was created, then a few Googlers said, "Maybe we can use this to build mobile apps too"
[+] slig|8 years ago|reply
Yes! TypeScript would be perfect.
[+] sho|8 years ago|reply
> I’ve already started to learn Dart and create some test apps

Doesn't sound like the author actually has much experience with the product? And the JS hate seems a bit silly. Sure, JS and its ecosystem has its frustrations but it also has a ton of momentum and a wide, deep hiring pool. The solution isn't to learn a new language (never even heard of anyone using dart).

Will be tough to beat React-Native IMO, especially once it settles down a bit.

[+] seenickcode|8 years ago|reply
Hey thx for the comment. Per the post, I already stated I don't much experience yet and that will change come next mo. But wanted to simply emphasize that after working with RN that I'm quite excited about Flutter.

Re the JS hate, it's more of "JS exhaustion" but yes I'm strongly opinionated. Hopefully WebAssembly will cure this down the road who knows. For example, it's almost 2018 and folks are still trying to settle on something as fundamental as React Native navigation. I guess with the dev landscape now the JS love/hate varies.

Re the hiring pool that's a great point. But hiring JS devs sometimes is like hiring PHP devs: if you're doing something simple it's no problem, but more complex then you get lots of horrible candidates to sift through until you hopefully manage to find someone good/with a proper programming education. But I guess it also greatly depends on the hiring location too.

Re adoption, I think if you're a web dev already, you're used to it, but if you're a backend dev or native mobile dev it's something hard to deal with.

I guess I can point out some situations:

1. People who can tolerate JS but no mobile dev exp yet

-> React Native is a great option.

2. Existing native mobile engineers used to compiled languages like Swift or Java and who want to pick up a hybrid dev framework

-> Flutter, (while still in alpha) has a ton of potential.

Note that anyone who knows Ruby, Go, C#, etc etc can easily pick up Dart in less than a day.

As stated in my original post, I do plan to re-write some of my apps with Flutter and I will be reporting about my experiences for better or worse.

[+] tempodox|8 years ago|reply
Meh. Just because companies want the lazy way out doesn't mean it's actually a good idea. Differences between patforms don't go away just because you close your eyes to them.
[+] ENGNR|8 years ago|reply
After seeing React upgrade the entire library to v16 to enable entirely new use cases, without breaking the API... I'm pretty impressed. That's in production right now

If Flutter does something cool like provide better native component libraries it might end up as a library inside the React API

[+] yupyup|8 years ago|reply
Does anyone have some experience with Flutter?

Have checked out some apps from Google Play and it seems slick.

[+] kennydude|8 years ago|reply
The demo has an iOS app which looks like an Android app. Why.
[+] ElectricPenguin|8 years ago|reply
:-) In the demos that I've seen they even say... "Don't do this."

I think it's to emphasize that while it can mimic the native environment of either platform Flutter also has the ability render non-native custom controls to either platform.