3 ms·
I primarily do web dev work and I've been diving deep into React Native recently and have worked with Ionic for a little bit. What I find with these hybrid fram
by rkho 10y ago
I primarily do web dev work and I've been diving deep into React Native recently and have worked with Ionic for a little bit. What I find with these hybrid frameworks is that they aren't perfect.
I love React Native. I think it's an incredible piece of technology and the level of accessibility and empowerment it gives web developers to venture into the realm of mobile development is a great thing. But at the same time, there are so many things that React Native cannot take advantage of -- at least, not at the Facebook-developed level (remember, Facebook's RN team is going to focus in on the parts of the framework that they can get the most value out of internally).
You're going to miss a lot of things that you would normally take for granted in real native iOS and Android development such as a Camera module (yes, I know!) and OpenGL. There are third party libraries that support these things, but your tradeoff here is that you are going to either become dependent on the maintainers' ability to fix bugs and introduce new features or (if your app becomes the biggest consumer of those libraries) you will become the lead maintainer.
RN is still great for letting web developers add components to an existing Swift/Obj-C/Java codebase and I really enjoy using it. However, I think the maintenance and dependency costs of building a larger-scale RN-first app might not be the best idea
Regarding Ionic/Phonegap/Other "Write once, run anywhere" frameworks: I feel this is a large UX tradeoff and would never make it. Things don't feel smooth when emulated. I would never use one of these types of frameworks for production purposes.
- tempestn 10y agoThank you, this is exactly the kind of insight I was hoping for. My understanding is that RN allows you to fall back to native code wherever necessary. Is that not as easy in practice as in theory? It just seems like at worst it would allow you to share many parts of your application between iOS and Android, as well as possibly your web app, and then anything else could be built natively as necessary. As someone with no experience using this tech, that seems like it would simplify and save time, both in initial development and future revisions, but avoiding duplication between code bases. I can't help wondering if these teams tried older hybrid app frameworks like PhoneGap, found them lacking, and have written off RN as being basically the same thing, while it's actually considerably more powerful. It's also possible that adding that layer adds more complexity than I'm accounting for, and really isn't worth it for the duplication saved.
- rkho 10y agoI actually haven't used RN with the intention of falling back into native code before. I was working on contributing an RN-built component as a CocoaPod dependency into an existing Obj-C code base but that project ended up not getting very far for reasons beyond my control. Before it was scrapped, we were exploring performance issues in loading up RN in each individual component.