
React Native 0.59.0-rc.0 released - saranshk
https://github.com/facebook/react-native/releases/tag/v0.59.0-rc.0
======
vjeux
If you’re interested in all the big refactoring projects happening in React
Native right now, there are summaries here:

Fabric: [https://github.com/react-native-community/discussions-and-
pr...](https://github.com/react-native-community/discussions-and-
proposals/issues/4)

TurboModules: [https://github.com/react-native-community/discussions-and-
pr...](https://github.com/react-native-community/discussions-and-
proposals/issues/40)

Codegen: [https://github.com/react-native-community/discussions-and-
pr...](https://github.com/react-native-community/discussions-and-
proposals/issues/92)

JSI: [https://github.com/react-native-community/discussions-and-
pr...](https://github.com/react-native-community/discussions-and-
proposals/issues/91)

------
flaie
RN has been such a big boost of productivity for us, it changed everything. We
were able to onboard junior developers that are excited to work with it as
well as keeping our at the time existing native developers enthusiast about it
(they embraced it since), and the time to market for us have dramatically
improved for new features on both iOS and Android.

Of course some stuff sometimes doesn't work well, react-native link versus
Pods, native modules or various SDK integration, navigation is sometimes
tedious to work with but it is worth it really.

I don't regret at all the choice of migrating our app to RN one year and a
half ago.

------
matchbok
Appreciate all the work FB is doing here, but RN is fundamentally never going
to be a solution for most teams. The compounding problems
(JS/swift/obj-c/java) and their dependencies in the build process demand that
you hire native developers. That eliminates the #1 reason to use it.

After 3 times using RN and having to go back to native... never again. When
even simple things like navigation or animations take hours of research to get
right.

~~~
sokoloff
My experience building a couple of (fairly simple) apps on React Native has
been amazingly productive and very pleasant dev experience. I've built a
couple of toy apps in Swift directly and can honestly say that I find RN
faster and easier. (And I'm neither a mobile dev nor a Javascript expert.)

The hardest part for me was getting React-Navigation and RN-Web to play nicely
together so I could have substantially one codebase for 3 platforms. That was
admittedly a fair bit of googling and fiddling.

~~~
V-2
My experience (as a senior native Android dev) has been definitely bad so far.
Configuration errors and inexplicable error messages popping up on a regular
basis. The amount of troubleshooting it constantly required - instead of
focusing on the task at hand - started to feel cumbersome after a week or two.
Simplest functionality such as breakpoints would randomly stop working. All
these problems aren't exclusive to me, I would pretty much always succeed in
googling them up, usually along with dozens of solutions suggested by the
community (each of them different).

The documentation and tutorials leave a lot to be desired, too. A lot of this
stuff is outdated, and the official documents are imprecise and feel like a
draft (even when compared to what the much less mature Flutter brings to the
table in this regard).

Tooling is far behind what you get if you go native. Eg. support for
refactoring, whatever editor you use, will be more than rudimentary and
virtually nonexistent in comparison to what Android Studio offers. The same
goes for unit testing / integration testing support, it's rather iffy.

One of the more important UI Android features - Material transitions - is
pretty much impossible to recreate in React Native.

I also don't find JavaScript - even with TypeScript on - nearly as good a
language as Kotlin.

This isn't meant to be a rant: just an honest summary of my few weeks of
experience fiddling with RN. You mention your native development was done in
Swift; I heard that React Native is allegedly much more reliable for iOS than
Android development. I can't really verify it either way, but potentially this
might be why our mileages vary.

The upsides? React Native pretty much abstracts away the lifecycle concerns,
which are still a pain in the neck for a native Android dev. Hot reloading. No
obsolete APIs maintained for backwards compatibility; understandably.
Asynchronous programming is simple enough (although with Kotlin's coroutines
arguably on their way to become the go-to solution on Android, it's not
necessarily a win over native). Nothing else has impressed very much me so
far. I used Xamarin for a commercial project once, and it felt considerably
better, even though it was three years ago.

~~~
sokoloff
Very likely. We basically “don’t care” what our apps precisely look like, so
long as they function and the user is not impeded in getting access to their
data. (They’re simple line of business data access/overview apps.)

If we cared about platform perfect compliance with standard UX, it might be
more challenging. Of course, if cared about native perfection, we probably
wouldn’t be trying an inherently cross-platform tool.

------
pvinis
I'll just plug my repo here that helps with upgrading existing RN projects to
new versions.

[https://github.com/pvinis/rn-diff-purge](https://github.com/pvinis/rn-diff-
purge)

------
TheCoreh
Interesting, I thought I had seen it mentioned somewhere (Twitter, I believe?)
that hooks would only be available on v0.60. Excited to see them integrated so
fast!

~~~
onion2k
Nope. Hooks are in 0.59.
[https://twitter.com/reactnative/status/1093889810006200326?s...](https://twitter.com/reactnative/status/1093889810006200326?s=19)

------
blkhp19
I feel like the React Native fad has come and gone. Even FB is using their own
server-driven UI solution nowadays, which allows clients to be dumber while
still rendering native components.

~~~
aaaaaaaaaaab
It’s gone and for the better. The tipping point was the Airbnb blogpost.

~~~
notsrg
If you actually read the full blog you'll realize it'll actually convince the
right people to either adopt or avoid RN:

>The path of a world that is 100% native or 100% React Native is relatively
straightforward.

but ultimately... hybrid apps are hard. Airbnb had a ton of infrastructure
that needed porting over to RN that often required contributing upstream to
fix issues they found. If you're starting from scratch you can get pretty far
sticking to React/JS.

imo I can't imagine a startup using anything other than RN (or react-native-
web) because of how quickly you can build things.

~~~
xenospn
I built my startup using Ionic/Cordova (since certain APIs weren't available
on RN). Now that iOS 12.2 beta is out, it is breaking certain APIs and leaving
me no choice but to abandon the hybrid model. If anyone else out there is
planning on doing anything other than a simple photo sharing/PWA app, don't
bother with hybrid - you'll have to go Native at some point.

~~~
ryanbertrand
Can you expand on the APIs that broke for you?

------
skluck
I apologize for not really commenting on the content of the release, but I am
shocked that it is on version 0.59.

I wonder why they even bother with supposedly following semver at this point.
0.59? This seems to mean they can break anything at any point and it's
technically still "following semver". I guess I just don't understand it. This
library is used by thousands and consumed by millions (billions?). Why not
just use dates as versions?

~~~
terragon
Below 1.0.0, a minor release counts as a major one. So technically, 0.59 is a
major upgrade from 0.58.

~~~
sscotth
You can also consider it: ArbitraryMarketing.Major.Patch

