For each change, then, I try to upgrade any react-specific code while preserving my own changes to that file.
It's certainly cumbersome and I avoid doing it too often, but I've found this manageable.
Last time I checkes, there was still rather much mobile know-how needed :/
That said, there is something about coding in mostly one language (javascript) vs 2 or 3 (Objc/Swift/Android) and also have that live app reloading.
In any case, this react stuff is not for beginners and won't make learning mobile platforms easier - you will still need to put in obligatory 10k hours to get good at mobile dev...
It is possible to create an app without native experience, but it is still needed to create a very good app.
what is a good balance between RN vs pure native? what works and what doesn't?
what about other considerations like power consumption..file size, etc?
Here's a good high-level talk which touches on the balance somewhat: https://www.youtube.com/watch?v=abSNo2P9mMM.
You should only expect to write pure native code when you hit a performance barrier with some particular custom component you're creating and there isn't an existing JS api or a standard/3rd party component which does everything you need already. But when you do hit this barrier, wiring up your own natively implemented module is pretty straightforward.
I do however experience real issues when upgrading. We tried going from 0.38 to 0.39, but getting the xcode project files to merge correctly has proved difficult for us, a couple of newbies. The new react-native-git-upgrade makes it easier to see the conflicts, but it is still hard for us to make it work. Does HN have any wisdom to share?