Hacker News new | past | comments | ask | show | jobs | submit login
Flutter will change everything, and is an excellent choice for iOS development (medium.com/coding-with-flutter)
54 points by yannikyeo on Dec 10, 2018 | hide | past | favorite | 45 comments



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...

[2] https://medium.com/airbnb-engineering/sunsetting-react-nativ...


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.


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.


I doubt they'll kill flutter, and even if they did, it's still going to remain open-source. Plus it looks like it has a number of internal customers, so it just seems unlikely to get axed anytime soon.


I doubt Google is going to stop development on Flutter anytime soon. Their new Fuchia OS looks like it is made completely with Flutter.


I’ve been using RN since the beginning. I grokked Flutter / Dart in a couple days in September.

The development experience with Flutter is really excellent, I’ve found. Laying out UI is really nice and easy. I really like it.


I'm in the process of porting a reasonably complex hobby app that I built in RN to Flutter.

Things I like better about Flutter:

- Cleaner upgrades. For mere mortals like myself, RN can be really painful to upgrade sometimes. This is imho the most frustrating part of working in RN.

- Navigation makes sense out of the box in Flutter. react-navigation is getting better, but there has been a lot of churn there and there's still no community consensus on the "right" navigation library for RN.

- More opinionated stylized components. It takes a lot less work to get something that looks good using the standard components in Flutter.

- Dart is typed (yes I could use TypeScript with RN, but at least when I started building my app in RN, Flow was in some circles the preferred typing system and it took non-trivial effort to get TS working in RN in earlier versions).

Things I like better about RN:

- I think the debug tools, especially if you're using redux is superior in RN

- Greater portability to the web. Yes, the Flutter team is beginning to address this with Hummingbird, but there are many more options with RN

- React is still my go-to for building webapps, and even though Dart is quite similar to JS, improvements/maintenance of React skills while working on a mobile app is quite nice.


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...


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

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

https://chasegage.wordpress.com/2018/01/23/american-politics...


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.


If anything, astroturfing in tech blogs is probably less likely to be corporate funded, and more to be the sort of breathless SEO self-promotion from savvy self-marketers. Content creators on Medium, YouTube, Quora will latch onto any new tech in order to drive views, regardless of what tech it is.


As one get older, you seems to remember all these pitch for "Flutter" were exactly the same <insert X>.

And given Google's extremely good track record on their product / services / and tools. I think I will take a pass for now.


Probably someone at google decided that fb gains too much influence over developers minds via Reac/ReactNative so they decided to make their own flavor and now they are just pumping some serious money into marketing.


Probably because Flutter releases 1.0 last week so you’re seeing some folks writing about it now that it’s production ready and some additional articles by the folks waiting for the weekend to write about it.


Yeah, I am also noticing the same trend. A heavy push for flutter everywhere. It makes me wary, curious to try it but however to take it with a grain of salt.


Ikr

>Flutter will enable full cross-platform development across iOS, Android, desktop, web and beyond with one codebase.

I’ve seen desktop development mentioned a lot as well and was pretty excited, but right now it does not seem to support shortcuts, tabbing, drag and drop, multiple windows etc. Still, could be a very different story a year from now if Flutter starts to gather market share.


This is Google's last attempt at getting it's failed Dart language into the mainstream. I would not be surprised if they were actively coordinating this considering how hard they are pushing on YouTube.


hot reload is not just for UI


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 (does not work with storyboards)

https://sherlock.inspiredcode.io


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

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


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...


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


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/

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


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.


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.


For mobile, windows does not exist. Android? It is owned by Google anyways.


2 orders of magnitude? Apple recently announced that there are now 100 million active Mac users. Two orders of magnitude more would be 10 billion.. given the number of humans on earth, I really don't think there are that many Windows users. And the iOS platform is bigger than the Mac..


Are you sure about that? Last I saw, there are more iOS users than Windows users now.


I was recently introduced to 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?


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

This is common for most mobile development including Flutter.


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.


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.


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?


Because Dart is similar to JS, easy to learn, and better in regards to performance, tools and security. JS is a mess, just look at the equality operators and the fact that you can manipulate classes like String, etc...


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


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


I don't know.

Seems like astro-turfing to me.

Dart isn't much better than JS (as TS or Reason are) so switching doesn't give you too much gains, but a smaller eco-system.

Also, the canvas approach of Flutter feels kinda backwards.

I think it's artifically hyped by Google.

React will be much simpler with hooks and the RN updates will improve native inter-op.

But yeah, that's just my take and I'm often wrong with predictions xD


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


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

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


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.


I think we'd see the same thing that happened with Parse after Facebook stopped supporting it. I.e. the vast majority of people who were previously using it would stop, despite continued maintenance by an open source community.


Open source won't save you if you write your app in a framework that's deprecated and no good developers want to touch it (see also: Angular 1).


It's an open source software, not an API service.


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


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

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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: