Facebook moving away from React Native?
twitter.com
twitter.com
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."
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.
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
- 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.
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’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.
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.
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.
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.
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.
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.
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.
Totally NOT COOL.
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.
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?
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?
It's hard to criticize fake news if we fall for it ourselves so easily.
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.
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).
Also Facebook Marketplace is built with RN
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.
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
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.
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.
Xamarin Forms gives you a cross platform UI, but you can use fully native Fragments/ViewControllers where needed.
However, we do use Expo[0] to manage some of the rough edges of RN.
[0] - https://expo.io
Seriously, I don't think I need a QR code to make a mobile device work.