React Native, and similar cross-platform frameworks are all the rage these days. However, while React Native makes cross-platform development easier, there are a few points to consider:
- React Native has still not reached v1.0 of release. It is still constantly evolving, and there may be breaking API changes, which would need work to incorporate.
- Cross-platform development using React Native isnt necessarily half the effort of doing Native development. Some effort needs to go into making the apps compatible with the Human Interface Guidelines and UX patterns of the respective platform.
- There exist a variety of components and libraries for implementing features. If however, we need to customise some aspect of these, we would either have to write custom native modules, or write our own. That will require diving into native code as well. This is something to consider especially from a maintenance point of view, as developers need to be familiar with native development as well, that too both Java and Objective-C/Swift.
- React Native communicates with the underlying native part of the app via a Javascript bridge. While this is not an issue in most cases, the overhead of communicating via the bridge does impose a slight performance penalty.
For these reasons, I would not choose to develop my own personal apps using React Native. It's definitely great for putting together a quick proof of concept though, and when resources are a constraint, it's a good choice.
Top comments (0)