300 Spectrum Center Drive, Suite 1110
Irvine CA 92618
520 Broadway, Suite 200
Santa Monica CA 90401
470 Ramona St
Palo Alto CA 94301
Mikonkatu 15 A, 00100 Helsinki
John Stenbergin ranta 2, 00530 Helsinki
Visiokatu 1, 33720 Tampere
Helsinginkatu 15, 20500 Turku
Hôtel des Postes Place Numa-Droz 2 Case postale 2511
+41 32 727 70 70
When should you use React Native?
What is React Native
Reasons to use React Native for your project
- Code Base Reduction: React Natives write once deploy twice has most apps sharing somewhere between 30%-95% of the code base between Android and iOS. Some, like Walmart, were able to share as much as 95%.
- Maintenance: There is a large amount of research that suggests the code maintenance is actually the largest cost to an software project. So by reducing your codebase you can also reduce the cost of maintaining and adding now features.
- Fast Refresh: As RN 0.61, Fast Refresh was introduced to combine hot and live reloading. Which is able to quickly and gracefully recover from typos such as forgetting to import a component while using it. Even back in 2016 React Natives goal was to get hot reloading to under 1 second.
- Web and Mobile Code Sharing: Wasn’t just enough that you could share code between Android and iOS but also some code can be shared between web(React) and mobile (React Native). Obviously the UI elements themselves cannot be shared but much of the business logic can be shared. Like in the instance that making rest calls or state management.
- Based on React: React Native is based on the popular and loved Web framework React making it easier for web developers to learn because of the plethora of shared paradigms.
- Flutter: Flutter, similar to React Native is a write once deployed twice for iOS and android. However, when you write in React Native, your components by default are made to look like their native UI standards, Material UI for example. Whereas Flutter will look the same, which you can also do in React Native.
Reason to NOT use React Native for your project
- Current State: Currently React Native is very close to native except in certain process heavy scenarios, animation/tab heavy pages, and rendering really long lists
- Near Future: React Native is set to release their re-architecture of RN in Q4 of 2020 that and reanimated just released the alpha for reanimated 2.0. Both of which are supposed to give huge performance increases. One way both updates increase performance is by moving processes away from their own thread and onto the native one and making them aware of each other and their state.
- More Info: If you want to look more into the re-architectures you can find more info here. React Native reanimated 2.0