I don't know. I've been spending some time learning React-Native, but it's in fits and starts. There are several things that trip me up. I've got the basics pretty much down now, but now I'm banging my head against local storage and wrapping my head around Redux in general. It is interesting, but time consuming. And I don't have much leisure time right now.
I've made stuff in Xamarin before, and it was a pretty smooth experience, except for needing to have separate UI code for each platform. The language and syntax never got in the way, it was more just having to look up the corresponding UI elements (especially Android, where I have less experience) and get those working from time to time. As such, I could generally code like a fiend and get tons accomplished in a short period of time.
That being said, I really, really like how most of the React Native code is the same, and it's quite possible I'll get to that point with React Native also.
Do you ever have to be connected to the internet to use local storage? I'd like my app to be totally usable offline. I've heard of Realm, but something made me think that it needed to be online. If not, I'll look into it.
Also why did it allow you to skip Redux altogether? I thought that was necessary for anything remotely complicated.
"I've made stuff in Xamarin before, and it was a pretty smooth experience, except for needing to have separate UI code for each platform."
That's what you SHOULD be doing. Trying to force the same UI on platforms with different paradigms and look and feel is a recipe for a shitty, shitty app.
It's not the same UI with React Native. It conforms to Native expectations (more or less) with each platform. It just wraps both of them in the same component name, and you can have separate files if you need to specify a parameter unique to a platform. So you still have platform specific code, it's just RN's approach gets you a lot closer with the same code.
That's what Xamarin.Forms (https://www.xamarin.com/forms) does, for iOS, Android and UWP (desktop, mobile, xbox). My preference is still to go the native UI route though. If you take an MVVM approach, you'll naturally keep the logic in the shared code - the models and viewmodels - and you then can build views specifically for each platform and bind them on.
I've made stuff in Xamarin before, and it was a pretty smooth experience, except for needing to have separate UI code for each platform. The language and syntax never got in the way, it was more just having to look up the corresponding UI elements (especially Android, where I have less experience) and get those working from time to time. As such, I could generally code like a fiend and get tons accomplished in a short period of time.
That being said, I really, really like how most of the React Native code is the same, and it's quite possible I'll get to that point with React Native also.