
React Native Open Source Update - cpojer
https://facebook.github.io/react-native/blog/2019/03/01/react-native-open-source-update
======
shafte
Glad to see the team really embrace the nitty-gritty of keeping the open-
source community healthy. React Native is a project with a lot of potential
that's taken a few high-profile lumps this past year. Being an OSS maintainer
can be difficult and thankless sometimes, but it's good to see teams that
recommit to open source instead of withdrawing and focusing solely on internal
needs.

~~~
itwy
'thankless'! They are getting paid big bucks as Facebook employees. What are
you talking about?

~~~
warent
Well, aside from money though have you seen some of the issues created on git
repos and their responses? The software is OSS and free, yet there are
countless people who use it acting like they're high profile businesses
deserving white-glove treatment and they'll totally take out their anger on a
maintainer.

~~~
throwaway_9168
To counter your point, you might remember the React team's about face when
probably their largest benefactor in terms of free goodwill, Wordpress,
threatened to drop ReactJS for its ambiguous license. I would think it matters
a lot to FB right now that they don't do anything remotely annoying to the
community.

I would be willing to bet that if Facebook adopted an attitude of "screw it,
lets just stop responding to these idiots" that will make _even fewer_ people
want to work at Facebook right now, given all the bad press these days. I bet
if you ask people why they are still continuing at Facebook these days, a fair
number would say something like "Yeah, at least I can work on open source
projects".

If anyone at Facebook reading this wants to go for a dare, why don't you try
dropping support for a high profile open source project like ReactJS and see
if that affects the candidates entering your pipeline.

~~~
lhorie
> why don't you try dropping support

I hear that sort of happened w/ ReasonML. Apparently Jordan still maintains it
(because he's a prolific OSS guy like that), but FB itself is not investing in
it, and is instead doubling down on Flow.

Jest is another project that largely yielded governance to its community.

You gotta understand that the number one incentive for someone to interview at
FB is compensation. OSS opportunities are often a minor perk, and many (most?)
employees don't do high profile OSS at all.

~~~
turbo_fart_box
Doubling down on flow? Has TS not won?

~~~
lhorie
Not at Facebook. Yes elsewhere

------
sjroot
This is great!

I like to think that React — or more generally, component-driven user
interface design — is the future of development on all platforms, not just the
web. It really seems like we have “peaked” with concepts like state
management, composability, and so on. Don’t get me started on how nice hooks
will be in the mobile dev ecosystem.

I feel like React Native has taken a hit in the last year or so, with large
companies saying they are moving away from it. I really hope that the RN
community continues to flourish because I think it will inspire other
platforms to move toward better developer experiences.

~~~
jeswin
Well, UI has been component driven forever - although we faltered on Web UIs.
For instance, the entire control library in late 90s Visual Basic were
components, and people would build re-usable custom components and forms just
like you would on React. It went even beyond that - need a Telephony
connection or TCP Listener? Drag a TCP component on to your application
surface and set some props visually (like port number). It really was that
easy.

We haven't peaked. If you leave out the closed-source nature of the Microsoft
dominated tech scene, the tech from the 90s is arguably better than what we
have now.

------
dirtylowprofile
We used React Native back then when it first came out. Surprisingly the
problems that exists back then, still exists today like red error screen, slow
TableView scroll, upgrading RN problems.

It is too late for Facebook because a lot of high profile startups are moving
away from it. When you release something like this and then have the OSS deal
with it and not responed to PRs for several months and years, it leaves a bad
taste.

~~~
KaoruAoiShiho
Which high profile startups are moving away from it?

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

~~~
notsrg
AirBnb always comes up as an example of a team abandoning RN but it seems like
no one actually read the entire blog post. Migrating an existing native app to
RN is going to be hard for anyone. Starting from scratch with CRNA? Not so
much.

------
lbacaj
While I like react Native, in my opinion Flutter from Google is proving to be
far more superior as a cross platform app development technology. The apps are
incredibly fast, feel far more native, and are actually fairly easy to build.

I went down this path of trying both and ultimately ended up building my side
project with flutter. My project is a cross platform App that reads articles
to you using some great sounding open source AI/ML models by converting any
article to audio so you can maximize that dead time on your commute.

This is a little self promotional but if you want to see what’s possible with
Flutter, you can check it out here:

[https://articulu.com](https://articulu.com)

Edit: while I get folks may be upset with my comment and are down voting me,
I’ve geniunely worked with both technologies so I’m not just making this up.

~~~
saagarjha
> feel far more native

I don't see how emulated native controls can feel more native than actual
native controls.

~~~
hliyan
Not emulated. Painted at the OS level, same as native controls. Uses
[https://skia.org/](https://skia.org/). I second the grandparent poster's
opinion about runtime speed and developer productivity, but Flutter is still
not mature enough for production.

~~~
lbacaj
You are correct but I obviously disagree on not mature enough for production,
I’m in production with paying users. :)

~~~
hliyan
I'm glad to hear that. Let me know your experiences. We've a customer base of
about 0.5 million, and ours is a mission critical system. Which is why I'm
currently reluctant to use Flutter, even though I'm a huge fan.

------
burtonator
I'm really torn here between React Native and just building a PWA.

I'm building a tool for managing your reading across devices. IT basically
allows you to suspend and resume your reading easily and supports caching web
pages offline and reading them like you would a PDF.

[https://getpolarized.io/](https://getpolarized.io/)

Right now I'm torn between a PWA and React Native.

Our PWA code is React, just not react native.

Being a PWA means I don't have to deal with React Native issues and I can keep
the same code across my entire app.

The changes that Microsoft has made to their app store to support PWAs are
really nice.

Additionally Google has their new 'custom web view' that allows you to compile
a PWA into an Android App.

Part of the whole thing with the app store is being discoverable.

You might be a PWA but people are taught to go to the app store to find new
apps to install.

However, with React Native I think you would have to do a bit more work but
your app would look better on that platform.

Has anyone had to make this decision lately? Would love to hear your feedback.

~~~
kgwxd
When did google hijack the PWA term?
[https://developers.google.com/web/progressive-web-
apps/](https://developers.google.com/web/progressive-web-apps/)

It used to just mean you would build on standard html features so your app
would fallback to it and still work if your crazy new JS driven input type
didn't work the way you expected, and for accessibility purposes. I don't see
either of those goals mentioned.

~~~
tazard
That sounds to me like you are describing "Progressive Enhancement", PWA's are
different. To answer your question, according to Wikipedia the name got coined
in 2015.
[https://en.m.wikipedia.org/wiki/Progressive_web_applications](https://en.m.wikipedia.org/wiki/Progressive_web_applications)

~~~
kgwxd
Sounds to me like you are right.

------
bfrog
React and redux are nice but I'd never use it for native again personally. You
update it to fix one bug only to get 2 more in its place, after you spend a
day updating and fixing your app. I've spent less time coding entire Android
apps than I have hunting bugs down in rn apps.

~~~
debt
It really is unbelievably painful trying to work within the RN ecosystem.
There's so much promise but ol well.

------
debt
"Unfortunately, this is not something that we experience ourselves because we
run React Native from master."

What does this mean? Does this mean they're always on the very latest RN
version? If so, wouldn't this constantly break like many layers of
dependencies?

I kind of like the idea though.

~~~
dymk
(Nearly) all of Facebook exists in a single repository, so all dependencies
are building against other dependencies at ~master. Things do break, but
extensive automated testing goes a long way.

~~~
boowoo
Non-facebook users are in a less fortunate position though, because while the
automated testing might keep their dependencies working, yours will break. So
people tend to stick to certain release and avoid upgrading at all costs,
trying to find a permutation of library and RN versions where everything is
mostly working and rest can hacked around. All bug reports by react-native
team have traditionally been treated with 'please upgrade to latest release'
which makes things problematic, because while your specific issue might be
solved, you'll have bunch of new ones caused by the new release and your
dependencies not playing nice. Hopefully there will be some improvement with
this in the future.

------
Octoth0rpe
React native is pretty cool, but I do wish they would add support for desktop
apps, not just ios and android. Proton native exists and seems stable-ish, but
the underlying cross platform UI library (libui) still says it's only at an
alpha level.

~~~
joshuagross
Have you seen React Native Windows ([https://github.com/Microsoft/react-
native-windows](https://github.com/Microsoft/react-native-windows)) and react-
native-macos ([https://github.com/ptmt/react-native-
macos](https://github.com/ptmt/react-native-macos))? I haven't used either,
but they both look very popular, 5k-10k stars on Github.

~~~
Octoth0rpe
I was aware, but I don't recall those projects being very active.
Additionally, IIRC they're both implementing their UI widgets differently
rather than trying to build a common API that is desktop agnostic. There also
is this project: [https://github.com/status-im/react-native-
desktop](https://github.com/status-im/react-native-desktop) which seems
somewhat more active, and also supports linux (which is much more important to
me than windows support).

