
Flutter will change everything, and is an excellent choice for iOS development - yannikyeo
https://medium.com/coding-with-flutter/flutter-will-change-everything-and-apple-wont-do-anything-about-it-f495e7087802
======
kgraves
What irks me the most is React Native's stability. RN hasn't even reached 1.0
and I have been concerned about the war stories of Udacity[1] and Airbnb[2]
moving away from RN. Last time I checked out Flutter a year ago it was in
alpha, now it's reached 1.0 perhaps I might give it try...

Has anyone with experience in React Native tried out Flutter/Dart be willing
to share their experience and challenges?

[1] [https://engineering.udacity.com/react-native-a-
retrospective...](https://engineering.udacity.com/react-native-a-
retrospective-from-the-mobile-engineering-team-at-
udacity-89975d6a8102?gi=48bcba631a95)

[2] [https://medium.com/airbnb-engineering/sunsetting-react-
nativ...](https://medium.com/airbnb-engineering/sunsetting-react-
native-1868ba28e30a)

~~~
htkibar
There are two things to consider;

1\. Version numbers are not that much of an indication to stability. RN is
much more battle-tested. 2\. Udacity and AirBnB both have been using React
Native in a "use the bad parts" fashion. (Specifically, they have been using
it with an existing app instead of from scratch). It is not really fair to
React Native to be honest. However one thing from Udacity is quite fair, RN is
much worse on Android in comparison to iOS.

I think giving it a try and having something new in your toolset is a nice
idea. However, I doubt Flutter will be "RN is dead long live the new RN".

Finally, I really don't trust Google not to axe this project too on a spite.
However that might be more personal so keep it out of the equation.

~~~
pvinis
I wanted to write exactly what you wrote, plus this: AirBnB and other similar
big companies, can "afford" to let go of react native because they have enough
resources to make their own way of working. Specifically AirBnB have their own
layout engine. React native is very very good and usable. But trying to
integrate it with your own tools is up to you since Facebook and the community
don't have access to that private lib that someone might have. That is what
make some of these companies drop RN. I think it's important to understand
that, and not just keep the title "X dropped RN" and think "oh it must suck
then". I've seen many people do that and it's unfair.

------
andrekandre
what is up with all of these flutter articles on medium recently proclaiming
that flutter is the second coming of app dev tools or something... almost like
it was some kind of social media strategy...

personally i find flutter interesting, but i don’t like that, hot reloading is
for ui only, and the “pyramid of doom” style inline coding isn’t my cup of
tea...

~~~
75dvtwin
Seems like an organized PR campaign, hidden behind developer blog posts.

I was recently replying to a similar thread

[https://news.ycombinator.com/item?id=18629385](https://news.ycombinator.com/item?id=18629385)

I wish these tactics of subliminal agenda pushes, would stop already.

[https://chasegage.wordpress.com/2018/01/23/american-
politics...](https://chasegage.wordpress.com/2018/01/23/american-politics-the-
agenda-setting-theory-and-the-new-england-patriots-propaganda-in-the-
entertainment-industry/)

~~~
sidcool
There's no conspiracy. Flutter is new, it's from Google and it's growing fast.
Hence people are trying it out and blogging about it. Others are intrigued and
reading the blogs and liking it. That's it.

------
xenihn
I'm a native iOS dev, and I've found the following two tools extremely useful
in lieu of native hot reload:

[https://github.com/johnno1962/InjectionIII](https://github.com/johnno1962/InjectionIII)
(does not work with storyboards)

[https://sherlock.inspiredcode.io](https://sherlock.inspiredcode.io)

------
mamcx
It clearly have discovered the phase1 of cross-platform UI toolkits.

Is a beautiful dream... at that stage...

~~~
specialist
Mayflies.

I think "Galaxy" was the name of the first commercial cross platform UI
library I used. Back when ClearCase was the hot new thing.

I remember starting out so excited. That didn't last.

While a brief search shows no trace of "Galaxy", I did find this:

[https://en.wikipedia.org/wiki/List_of_platform-
independent_G...](https://en.wikipedia.org/wiki/List_of_platform-
independent_GUI_libraries)

------
firemelt
Have use it my gut thinking its still a long way for flutter to become
pratically usable, heck even their tutorial still doesnt have state manager
tutorial, and not even mention the weird way of typing dart code/widget things

------
Nelkins
Hot reload is such a productive feature for anything related to app/GUI
development. Been playing around with a project called Fabulous (F# cross-
platform app development)[0] and it's been a ton of fun. Here's a cool example
of the hot-reloading in action[1].

[0]
[https://fsprojects.github.io/Fabulous/](https://fsprojects.github.io/Fabulous/)

[1]
[https://twitter.com/JasonImison/status/1072074268333228032](https://twitter.com/JasonImison/status/1072074268333228032)

------
IloveHN84
But why the author focuses a lot on Apple? He clearly forgot about the % of
users from Android and Windows platforms, which are at lease 2 orders of
magnitude bigger, compared to Apple.

~~~
heisenbit
As others have pointed out, there seems to be a marketing push. To deliver on
ones promise of a blog post with impact the most simplest solution is to use
"Apple", particularly as XCode is a convenient bogyman.

------
mttyng
I was recently introduced to [https://expo.io/](https://expo.io/), which,
while seeming more flexible (I don't even need to plug my device in to my
machine) for app development, seems to have severe limitations for Native
APIs.

I couldn't find anything explicit -as far as a quick search went- for
Flutter's limitations. Does anyone have experience with it enough to point
them out?

~~~
therockhead
>I don't even need to plug my device in to my machine

This is common for most mobile development including Flutter.

~~~
mttyng
Oh, okay. I'm not a mobile developer. I've just started to get my feet wet
with it. One of its (expo's) other selling points is "over the air" updates,
meaning a user doesn't have to go through the respective app stores. I thought
that was a thing with RN too, but I'm not sure.

~~~
madebysquares
Expo is excellent for developing in RN. The best thing is being able to send
the app to other users without needing to install anything outside of the expo
app. I just started digging into flutter last week so I don’t have a an
opinion yet.

------
akmarinov
How is it better than RN though (haven’t read much about it)?

Can it overtake RN?

Why would I learn Dart when JS is more widespread and a better investment?

~~~
curyous
The release version runs native code, so is faster and uses less power.

~~~
akmarinov
But RN also compiles to native code? How’s it different?

------
alexandernst
Not going to happen. Google will abandon Flutter in less than 5 years, as it
has done will all the rest of the projects...

~~~
kgraves
The difference with other Google projects is that Flutter is open
source[1][2], one can fork it and continue the project if Google decides not
to work on it anymore.

[1] [https://github.com/flutter](https://github.com/flutter)

[2] [https://github.com/flutter/flutter](https://github.com/flutter/flutter)

~~~
jmull
One _could_.

But let's suppose Google provides the contributors making up the bulk of the
people with key responsibilities on the project for five years and then
decides to withdraw them.

It's possible for the project to continue and be healthy, but you are going to
face a large disruption. You're suddenly going to need to fill a lot of key
positions -- developers, designers, managers, etc. The direction of the
project could change radically as the new people controlling the project don't
share the same vision for it as the old ones. All-in-all, it is likely to
prove fatal or cause a radical transformation, and the resources for
enhancements are likely to be much more modest.

------
andrewmcwatters
Two things:

One: If this is the best Flutter has to offer, it needs to go back to the
drawing board. It's too verbose. 20 lines for a custom app bar. 7 lines for a
contact list title. An entire page? Good lord, 24 lines.

The only part it got right was the data-driven-esque portion at lines 66-76.
Most UI development should look like this.

But if you're telling me I need to write imperative code to set padding, much
like the article complains about, you're wasting my time. In fact, most of the
code shown here is imperative. It's not declarative in any sense. The entirety
of the ViewController definition is imperative.

I've written UIs my entire career. Entire career. This isn't progress. It's
why teenagers are having so much fun with web technologies, and in my adult
years I've been dying to see something come out and replace them.

Two: You need an answer to the visual formatting model [1]. Yeah, you know,
the W3C recommendation from 2011, which practically speaking has existed since
'09, and frankly before that, CSS1 was great for a majority of work.
Facebook's answer was Yoga. Great, but that's only the beginning.

Most UI examples seem innocent enough when you're providing samples only a few
hundreds of lines of code long. But codebases are filled with these things
into the 10s and 100s of thousands of lines of code, and all too often that's
literally only for positioning elements around.

Separate from this, you need event logic in entirely separate files. Yeah, I
know it's not really how people do things in React these days, but it's a hard
step backwards. I firmly believe this. It's another reason why people are
holding on to Vue, which, granted you can put an entire component's code in
one file, but eventually you will really, really, not want this.

You'll eventually want to think of things in classical styling separate from
logic, and logic from layout, which all coincidentally have been in place with
HTML, CSS, and JavaScript for decades.

Apple isn't the target. They're a non-player. WHATWG and W3C are.

Anything else is acting like an athlete trying to compete with an old man.

[1]:
[https://www.w3.org/TR/CSS2/visuren.html](https://www.w3.org/TR/CSS2/visuren.html)

~~~
sebe
Interesting thing is Flutter was started as an experiment by guys on the
chrome team, Ian Hickson, co-editor of the CSS 2.1 spec, works on Flutter as a
TL. An aim of the Flutter team is to improve the developer experience.

Google uses a design pattern to helps to separate presentation from business
logic, this allows them to share code across flutter and the web.
[https://pub.dartlang.org/packages/bloc](https://pub.dartlang.org/packages/bloc)

Here is the design bit from Flutter 1.0 live stream.
[https://youtu.be/NQ5HVyqg1Qc?t=5940](https://youtu.be/NQ5HVyqg1Qc?t=5940)

