As a Engineering Manager & Director at SmartZip, I had a mix of front-end, back-end, #mobile engineers reporting to me.
Sprints after sprints, I noticed some inefficiencies on the MobileDev side. People working multiple sprints in a row on their Xcode / Objective-C codebase while some others were working on Android Studio. After which, QA & Product ensured both applications were in sync, on a UI/UX standpoint, creating addional work, which also happened to be extremely costly.
Our resources being so limited, my role was to stop this bleeding and keep my team productive and their time, valuable.
After some analysis, discussions, proof of concepts... etc. We decided to move to a single codebase using React Native so our velocity would increase.
After some initial investment, our initial assumptions were confirmed and we indeed started to ship features a lot faster than ever before. Also, our engineers found a way to perform this upgrade incrementally, so the initial platform-specific codebase wouldn't have to entirely be rewritten at once but only gradually and at will.
Feedback around React Native was very positive. And I doubt - for the kind of application we had - no one would want to go back to two or more code bases. Our application was still as Native as it gets. And no feature or device capability was compromised.
Generally speaking, on larger apps, React Native become unmanageable. I would be interested in hearing what kind of apps you are building. My enterprise apps collapsed when the the view structure become complex. Things like managing data and transports become convoluted and hard to follow.
We had much better results with Native and Rx. RxSwift has been a good way to bind our model to views. React Native became extremely difficult to maintain and was constantly changing and shifting, there was little stability, we dropped it and our performance improved as did morale, with less bugs and faster time to fix bugs.
We used React Native for a CRM-like type of application. Our users (real estate agents) paginating though contact records, editing their information, logging activities, taking pictures, visualizing them on a map, etc. Also, accessing their dashboards while on the go.
Some relatively large apps/customers are actually using #ReactNative :
Isn't increase the app size? Or Does it same as a native app size?
I can't recall that part, however here's an article I found on the topic: https://medium.com/@aswinmohanme/how-i-reduced-the-size-of-my-react-native-app-by-86-27be72bba640