This post is meant to be read in the context of its parent post "Lessons Learned on a React-Native Project". If you've stumbled on this particular page randomly, I'd recommend jumping over to that post and starting from there.
I'm guessing the one question you may have is "Would you recommend React-Native"?. And the answer to that question is... yes. An emphatic yes.
When the native concerns got out of the way it was a wonderful experience. Feature development is lightning quick, and being able to iterate so quickly through hot reloading/live reloading almost makes the rest of the suffering worth it. A good chunk of my pain in this project came from lack of knowledge and experience with the native platforms, and having that experience now means the next React-Native project I know what to watch out for.
This recommendation comes with some caveats, however:
- If you're purely a .NET dev coming from Xamarin and expecting magic, I'd think twice. This world is so different from the .NET world.
- You probably want at least some experience in the native space before really attempting a React-Native project. It's not essential, but as you can see above it'll help. Considerably.
- If you know the capabilities you're likely to need for any given project, do your research for the capabilities first before deciding to take the plunge with React-Native. Things you might take for granted in .NET (or even the native space) might not exist in the React-Native ecosystem. Or worse, may be in a fundamentally broken state.
- Dependencies really suck in React-Native. Be prepared for some pain.
So there we have it... My lessons learned on a React-Native project. It's been a wild, eye-opening ride and I hope my experiences help you avoid some of the pitfalls I've encountered!
1. Oh and you may notice I haven't talked about things like CI/CD in React-Native, and a few other technical bits and pieces... I honestly think that needs to be a separate post as (a common theme with React-Native) there's a lot to talk about.
2. If you're wondering "React-Native vs. Xamarin", this is a loaded question and will be a separate post.