When to use React Native
Considerations to make if you are a Consultant or a Services Company
With Airbnb and Udacity doing away with React Native in their mobile Apps, the old discussions around“ReactNative vs Native App Development” have started again with full vigour. Their experiences and analysis have strengthened our original beliefs around this decision.
Based on original understandings, data from our own studies, and the data that has come with their studies, I have put together some questions that you should ask yourself while deciding whether or not React Native is good for your client project.
Why did you consider React Native in the first place?
React Native is usually suggested when:
- Clients want to be able to work without specialist native developers.
- Just one code-base means lesser development time, which means lesser development costs.
Hold that thought…
What are you building?
A short ‘Proof of Concept’ or a ‘MinimumViable Product’ to test out an idea would greatly benefit from a quickly built React Native App.
It is important to note that this little App should not have too much hardware interaction or very complex UI. A quick check for availability of exiting React Native libraries to achieve what your app wants to do is crucial. If they do not exist, you will end up writing native code for those pieces; that defeats the purpose of having React Native because you wanted just one codebase.
If you are planning on building a full fledged app that is going to be maintained by a completely different team that has no members from the original team, you are setting them up for failure. React Native, like all fast growing technology, changes quickly and not having the code looked after constantly will result in bad experiences for both the customers and the developers maintaining that code.
What is your team structure?
Even if the plan is to have all of your code written by masters of React, please make sure you have a few good old native developers for each platform handy at all times. A good understanding of the Native platform is crucial to React Native development even if you plan to write no native code.
Assess the features you want to implement in the App and check if the people on the team have done this before recently using React Native.On projects with tight timelines, you would need to have a very understanding client to give you the opportunity to do your own learning while billing them… or burn the midnight oil till the end of the project, whatever makes more sense.
Who are you building this for?
There may be customers who are sure that they want to build this app in React Native. Make sure they understand that an expert will be required to maintain it till the app lives. Make sure that they understand that developers may get stuck in unexpected issues and will have little or no help from the documentation and there will be delays.
If you have gone through the rest of the questions and the conditions for the first answer are still met, go ahead build that app in React Native. Don’t let Airbnb or Udacity scare you.