3 ms·
React Native (RN) is not for all apps, it has its uses if what your app does is mainly text delivery, example news app. One of the more complicated app that use
by jaxondu 11y ago
React Native (RN) is not for all apps, it has its uses if what your app does is mainly text delivery, example news app. One of the more complicated app that uses React Native is Discord for iOS (http://stackoverflow.com/questions/35309471/is-discord-mobile-app-really-built-with-react-native http://stackoverflow.com/questions/35309471/is-discord-mobil...), a Slack like chat app. That was then but I'm not sure the latest version is still RN heavy. You can actually build a native iOS app, and then add RN as part of your app. The tweet by Discord that said they are using RN is deleted.
Some reservations to choose RN: RN is possible due to the JavaScriptCore framework build by Apple. It is the bridge between JavaScript code and Cocoa API. Apple designed this so that you can use JavaScript as scripting language for Cocoa. The popular Sketch for OS X is using the precise JavaScriptCore to power its plug-in scripting feature. I guess Apple never have thought JavaScriptCore could be used the way RN does. Choosing RN means your app is relying on Apple's decision on JavaScriptCore API. Someone please enlighten me if RN is still possible or not if Apple remove JavaScriptCore.
JavaScriptCore opens up the Cocoa API, but does not give you a JavaScript ready API. So RN has to implement the bridge internally. So when iOS 10 is released, you will have some lag waiting for new features or changes to be supported by RN. I guess this is common problem to all cross-platform framework.
In order to implement RN for Android, Facebook implements its own JavaScripCore for Android. I have no Android experience, but what I read is RN app for Android is not performing as natively as its iOS counterpart.
If your business rely on all Apple's platform, then choosing RN does not help as there is no RN for watchOS and tvOS.
React Native will make app manager and web-dev team happy, but not those who treasure the last mile UX experiences. But is could also be useful for those startups creating their first MVP. Get app release fast and then change to native codes when you got the traction. Is this good or bad startup advice?
It will be a different ballgame if Facebook announce they are moving to use 100% React Native for Facebook for iOS app.
- jhgg 11y agoI work at discord. The app is still react native. We use component kit for chat messages view though. But this was because early react native when we built it couldn't do what we wanted to. May switch to full RN soon.