4 ms·
The advantage is that you can access ~100% of the mobile market with a single codebase for about 10% extra work compared to native on a single platform. Perfor
by oakesm9 6y ago
The advantage is that you can access ~100% of the mobile market with a single codebase for about 10% extra work compared to native on a single platform.
Performance is roughly the same and you have access to most of the platform features that most apps need.
- mrtksn 6y agoThat's the obvious value proposition but There's a reason why sporks did not make spoons and forks obsolete. I messed around with a few cross platform tools a bit and my impression is that if you want to make something that is better than a WebApp you actually have to learn a lot more tools and frameworks and everything feels like falling apart and you are depended on multiple vendors to upkeep the tooling. The moment you say that your app is more than an UI to access a database, native on multiple platforms is actually easier.
- breakfastduck 6y agoI like that analogy!
- oakesm9 6y agoI work on React Native projects for a living and what you're saying is true. You need to use both Xcode with ObjC/Swift and Android Studio with Java to get the most out of React Native. That comes with the additional complexity of also needing to learn how Xcode builds projects and how Gradle works. That's a lot of extra complexity, but it's also no less than if you had built two native apps. You're now just expecting a single team to manage it. My background is in "real" native development (both Android and iOS) so I get on fairly well with this, however, for people coming to React Native from the web side of things, it's a lot to take in. Overall, I still recommend to 90% of my clients that React Native is a good way to go if they have limited time and budget. For larger companies, they might have the budget to build and maintain two apps. Also, most apps really are just UIs on top of a REST API. And even if you do want to make something more custom, you can always create a native component or module yourself for each platform and wrap it to use it with the rest of your React Native app. That way the "boring bits" like the account management, data handling, etc can all still be shared. It's a trade off, but just about works out for me.
- matchbok 6y ago10%? Try at least 50%. If you wanna do anything complicated you have to drop down to native, which is made more confusing because of the layers of abstraction. RN, never again.
- Tronno 6y agoWould you mind sharing more about your experience? I'm curious what you were trying to build that was too much for RN.