Hacker News new | past | comments | ask | show | jobs | submit login
[flagged] Facebook moving away from React Native? (twitter.com/sandofsky)
159 points by mpweiher on June 2, 2018 | hide | past | favorite | 71 comments



Sophie Alpert, engineering manager of React at Facebook, has publicly responded to the report to deny it:

https://twitter.com/sophiebits/status/1003090742296735744

"This is not true."

"Blood Donations, Crisis Response, Privacy Shortcuts, Access Your Information, Wellness Checks are recent projects in the main app mentioned in F8 keynote that use RN. (The whole Oculus Go mobile app as well.) More to come. RN hasn’t been used yet in News Feed but that may change."

"I’m not remembering any [teams] that moved away (but there may be some; dozens of teams have used RN so it’s hard to track them all). But you’ll find diehard native devs who dislike RN at any medium or large co, including Facebook."


Some manager making that claim in order to protect trust in Facebook's bleeding edge tech now and in the future doesn't really mean anything. Remains to be seen.


Are you kidding me? Random dude on Twitter who's quoting some unknown friend of a friend who knows someone who heard something gets more credit than the engineering manager at Facebook? As she said, maybe one or two teams at Facebook moved away from using it but they're heavily invested in it and intend on expanding it's usage.

Honestly with all the work going into ReasonML (and Reason React) I wouldn't be surprised if they came up with a way to do Reason React Native, since Reason can be compiled to native. But seriously giving credit to this FUD / fake news on front page of HN is just awful.


This is incorrect. Here is a response from Tim, who manages the React Native team - https://twitter.com/yungsters/status/989361665752748033

Also, here is a list of all the things that our team has been working on with React Native - https://www.youtube.com/watch?v=1hvQ8p8q0a0


That tweet was a month ago. This change could have been more recent than that.


Nothing has changed. Multiple people have directly rebutted him on the twitter thread. This was FUD plain and simple.


As someone who manages a team at a large corp that uses react native and ships a successful project things have definitely changed. It feels like Facebook has lost interest.

- the android debugger has been broken for months (it opens to the wrong url, delta patches also broke source maps). No one at Facebook cares. Do they not use the debugger?

- pull requests have stopped being merged. We have FIVE outstanding pull requests fixing bugs as old as ones ignored by Facebook from 2016. No one will reply or merge them anymore. We've been told to just create a fork on GitHub for our project. Apparently that's what every serious RN user does because Facebook doesn't really care about it anymore.

- they have a bot who auto closes bugs somewhat randomly. For example an old bug that Facebook ignored with hundreds of comments gets closed for "inactivity", but it's not active because folks all complained and now they're just waiting for someone to fix it.

So it all combines to a situation where the platform is buggy, but you can't get fixes merged, and filing bugs is largely a waste of time since all it gets is auto replies from the bot and "me too" responses from others.

We really like RN, it helped us ship fast at first, but Facebook absolutely seems to have lost interest in it and in having a community around it.


I work on React so I have some context on this.

I’m sorry it’s frustrating but it’s not at all because FB lost interest. In fact it’s the opposite. We’re making pretty big bets on complex core architectural improvements to RN, and the team is heads down busy with these core changes. Unfortunately it does mean that PRs and external contributions get less attention until those core improvements are done.

If there’s a specific PR that’s blocking you please ping me in DM on Twitter and I’ll try to get somebody to review it.

Cheers.


I use RN, interested in these architectural improvements being done. Any link to an issue or description of these, or a short explanation?


We’ll post more when it’s closer to being production-ready. But TLDR is that we’re making improvements to the threading model and interop with native code.


I understand what you are saying, since I too am upset about many issues being closed without being fixed. I come across them when doing searches for various problems with RN. It's the same with Flow, the Javascript type checker, only that there it seems like nobody from the dev team even cares about the Github repo and the huge list of open issues (hey, at least they don't close them all automatically by bot).

On the other hand, the commit history seems pretty active - and that's an understatement: https://github.com/facebook/react-native/commits/master (same for Flow)

I think the commit history says more than (auto-)closed issues. They may not share our priorities but they keep working on the project pretty actively.


I was a mobile developer and moved away from it towards web development because of how uncertain the future looks for the tooling.

Investing hundreds of hours into the web framework of the week at least informs me on javascript/html/css in general. However, with mobile, your experience with Swift and AutoLayout might be totally irrelevant in the job market if most businesses want a Cordova or React Native developer, and vice versa, or the mood of the industry shifts.

Further, from a business POV, what do you do? 3 separate codebases (iOS, Android, Web) for native, and deal with a nightmare of hiring, maintenance, and disparate features? 2 separate codebases via hybrid native, and pray the platform continues to be supported while dealing with shaky native features? One codebase + extra for a Cordova application, having suboptimal performance + UX alongside another hiring nightmare? Or pray Apple decides to be benevolent, and hitch your app to iOS picking up support for PWAs?

People who complain about churn in front end have never done mobile.


It's not like the time spent learning it is wasted. The concepts are very transferable. I started a job last year, which involved working on a React Native app. I had zero experience with either React Native or React, but I could be productive pretty much right away, as I had lots of JavaScript and TypeScript experience so no problem with the language, and some experience with Angular, so could handle the concepts. My native iOS and Android experience meant I could write plugins too. Recently I had the slightly odd experience of helping to lead a class on React within a couple of days of using it for the first time. Aside from some fumbling with the styling, I could apply my React Native experience with no mode switching required.

Learning a new framework is rarely time wasted. Even my totally obsolete experience with Adobe ActionScript was really useful a decade later, as it's basically the same as TypeScript, while Flex shares a lot of concepts with React.


You make great points but mobile still favors native greatly- only React Native has made any significant challenge to it. Yes there are a lot of options but I suspect the tooling questions in mobile is about stuff like Objective-C/Java vs Swift/Kotlin or Autolayout vs. third party libraries, not native vs. cross-platform.


Xamarin has a good reputation too.


"People who complain about churn in front end have never done mobile."

This is as incorrect as it can get. There are these frameworks like RN, Cordova etc. but in the end these are and probably will be niche that don't really matter. Pretty much everything in mobile is done native and often with standard MVC etc.


The future is as certain as in any other platform.

Focus on OS vendor tooling and a specific platform instead of whatever pops up as alternative 3rd party tooling, with various degrees of integration with the platform APIs.

One of the best options I did after my delusion how Borland went under with their uncertainties where to focus next, was to always use OS vendor SDK for production code.

So far this option has worked out the last 20 years, and I bet it will continue to work out until I retire.


I can’t disagree with this more.

I’ve done native iOS dev as a freelancer since 2010 and I’ve never had even a hint of trouble getting work.

Third-party frameworks for cross-platform dev come and go, but RN is the only one that has ever felt like it might offer a challenge to native dev. A year ago I would have said maybe everyone was going to shift to RN, but then I actually tried it and I realized that it’s incredibly immature. I really doubt it’ll ever be more than a large niche, and most apps will continue to be built natively.

Regardless, I think you’re worried about changes that might possibly occur more than you are about changes that have already occurred. In iOS dev, the only major shift I’ve seen in the last eight years is Objectice-C to Swift, and even that wasn’t that painful because you can mix and match the code.


We recently began work on a mobile app version of our web-based kanban board application. We ended up spending a week on react native, then switching to Cordova, which I don't agree with 100% but you're dead on about the ups and downs. At the end of the day, a 2nd code base, even if its similar to our web react code base (and even if you can share all your state management code like we could), is still a 2nd code base.


React Native was never meant to be "write once, run anywhere", like Java. I've heard it described as "learn once, write anywhere".


Clubhouse?


I'm going the other direction - I've been in embedded/systems since forever, but focused mainly on mobile since forever .. and now I'm more and more convinced that the insanity of hell that is mobile development, is no different than the putrid festering cess-pool that is web, and the only way out is to write yet another host app, with its own ecosystem-supporting embedded script capabilities, turn the whole thing inside out and write all of my own damn GUI controls, subscribe to nobody's slippery gravy treadmill, and just say no: to all the things.

Like the DOS days, if you don't have your own GUI lib, gtfo... I know its an offensive position, but frankly I find the big web con, and all the fancy dancing of mobile, to be just as offensive.

Lua all the things.


Hmm, what's the problem with this guy? After told on the face that his statement is unfounded from a much reliable source, he doesn't correct his statements nor apologize for spreading (seemingly?) false information (If you dissent, please elaborate with more strong evidences, not some holy "Sources"), instead, he continues with what appears to be insinuation that he is more authentic.

Totally NOT COOL.


He’s also retweeting uncorroborated replies that agree with him, and ignoring replies from the team that work on the project telling him he is wrong.


Pretty scant on evidence. I'd like a little more than two tweets from a guy that seems to have an idealogical slant against non-native development.


There's no question that Facebook only uses RN for part of the main Facebook app. They've been open about the fact that Newsfeed on Android uses Litho rather than React Native: https://github.com/facebook/litho

Ironically, this is because they weren't happy with the performance of native Android components, and that's what React Native uses under the hood.


If you have any experience with Litho can you compare it to native Java Android UIs?


Afraid not


(one of the twitter comments): > [...] there’s no smoke without fire. Facebook has a history of just abandoning things.

When I was evaluating which web-technology to use I came to choose between angular and react. At that time angular2 just popped up and a lot of people where annoyed by that. One point why I decided for react was because google has a bad reputation when it comes to keeping things alive.

Is facebook just as bad?


I haven't heard of Facebook having a reputation for abruptly shutting platforms down. On the contrary, I believe its widely accepted that they handled the shutdown of Parse very gracefully. Year+ notice, with significant open sourcing and community efforts to maintain continuity.


At this point I think React has wide enough adoption with other large companies that it could easily survive even if Facebook abandoned it.


Well React and React Native are two different things, just because they move away from it for their apps doesn't mean they're going to move away from it on the web.


[flagged]


Only considering products made by actual engineers at big companies makes a ton of sense. All the dead web frameworks of the week where made by silly hipsters weren't great choices in retrospect.


Other than an announcement from Facebook that this project is being moved away from I would rather consult the github page which has updates from the last two days ago.

If they are moving away it would make more sense that they changed the licence to BSD on these projects. On the other hand even if they are moving away from using react native wouldn't the community try to pick it up?


Since this is obviously baseless speculation by a source with no credibility, and more authoritative sources have denied it, I recommend flagging this story so that it disappears from the front page as soon as possible.

It's hard to criticize fake news if we fall for it ourselves so easily.


It was flagged earlier I don't know how it got unflagged.


I have an ex-coworker who just got a job in Seattle at Facebook and he mentioned something similar. The reason it came up is because some executives were trying to push React Native as a solution for a project we're working on. No engineer thought it was a good idea and we get to build native. After talking to my buddy, he said that Facebook as moving to some new framework.


It sounds like the expectation that a Facebook mobile app is built in just one way or with just one framework is faulty.


I have few RN apps on ios/play store. Its very good for cases where you do not need to access much of device/os functionality. For video, audio other native functionality you need to hunt for well maintained libs.

Flutter is a very alternate for RN. But when it comes to device functionality i feel its the same case.

Ultimately i feel its better to write in native swift/kotlin/java.


I have exactly the same experience(two years of RN).

Be conservative when adding dependencies, rather try to solve it yourself unless it's very complex and the dependency is well maintained.

Often dependencies will cause you problems when upgrading and many maintainers don't respect semver(could be a JS-ecosystem issue).


@Vjeux has denied this....

Also Facebook Marketplace is built with RN


React Native is the best thing to have happened for native mobile dev.

FB has LOTS of full-time devs working on it. If/when that changes, we can revisit this tweet. Until then, nothing more than FUD.


And here I was thinking about what to use for native mobile apps. So what are the current alternatives to React Native?


React native is used by Facebook, Discord, Wal-Mart, Baidu, etc etc it's not going to be abandoned. This is one person's random click-baity rumormongering tweet. Facebook showcased react native at it's F8 developer conference just one month ago. It's a great tool, use it if it works for you.


There's a ton even beyond old mainstays like Xamarin, Phonegap/Cordova, Titanium. Even Alibaba made one:

https://weex.apache.org

There's new stuff like Ionic, NativeScript, and Flutter. There's obscure ones like Codename One. And there's speculative ones like SCADE and Kotlin Native which are really just language bridges.


Why would you let a rumor influence your decision? Also, even if it were true, why would it influence your decision?


Flutter is looking pretty good right now but I haven't used it ever.


NativeScript is pretty good. It can be used without a framework, or you can use it with Angular or Vue (and perhaps others). I used it with vanilla ES6 about a year ago for a side project. After finishing the project, I ported it to RN to compare the two. At the time, I felt that RN had the upper edge, because it could hot-reload updates more quickly. I suspect that the NativeScript team has made progress on that since then, though.


Here's the repo for that app I created with NativeScript: https://github.com/BinaryNate/voxophone


I would seriously consider Xamarin. The tooling with ReSharper is great. LiveXAML gives you the same instant reload that React Native has.

Xamarin Forms gives you a cross platform UI, but you can use fully native Fragments/ViewControllers where needed.


Xamarin is awful. Incredibly slow tooling and useless UI libraries.


My mobile teams threatened to quit if we adopted Xarmin after building an app in it.


Xamarin is consistently roasted in the Stack Overflow dev surveys.


Flutter?


Can you do background services, notifications, etc stuff Beyond just ui


Yeah. You can even implement custom classes in Java/Kotlin and ObjC/Swift and interop them in dart.


so this isn't really an alternative to RN right now. As for basic features you have to know native development.


Flutter is very much in beta still for the next couple months at least, so you'd expect that.

If I was choosing between RN and Flutter as something to learn, assuming I had no prior experience in either, then Flutter is probably a better choice. I'm sure there are arguments both ways though, but Flutter is very 'solid' for lack of a better term.


Which basic features require native development?


background service

notification

sending intents "The other popular use-case for Intents is to call external components such as a Camera or File picker. For this, you would need to create a native platform integration (or use an existing plugin)."

UI isn't everything for all the apps


There are fluuter plugins (not third party) for notifications and intents. Background service can be tracked at this issue https://github.com/flutter/flutter/issues/3671


This is good news for Flutter?


Yeah I'm sure Google won't abruptly dump an ecosystem, that's so unlike them.


Good. React Native does not work for even the simplest things.


Our company has been using RN with real users for just about a year now. And there really aren't any complaints other than we sometimes can't use some API's (but we still manage to figure out a solution at the end of the day - to the satisfaction of our iOS & Android users).

However, we do use Expo[0] to manage some of the rough edges of RN.

[0] - https://expo.io


You must have had a better experience with it than I did. More power to you.

Seriously, I don't think I need a QR code to make a mobile device work.


Yeah, you don't need a QR code with React Native, that's a nice feature of Expo...but you can always plug a USB cable in and deploy your app that way.


I think you are talking about the dev experience using Expo.


Yup. Pretty terrible.


It's not really enough to judge the developer experience of React Native in general. The whole point of Expo is that is replaces the normal experience.


That's a fair point and I certainly don't mean to knock devs who enjoy RN. I found it quite frustrating compared to regular React, which is usually a very pleasant framework to work with.




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

Search: