Responding to change is a key tenant of Agile Software Development. Predicting change is difficult, but software can be developed in a manner that...
When React Native Makes Sense
When React Native Makes Sense
There are three versions of the React Native story. One says that React Native is a silver bullet that allows you to ship two apps for the price of one. Another would have you believe that React Native is the same, disappointing cross-platform novelty we’ve seen before with familiar shortcomings. The third story is the truth, and it’s somewhere in the middle. When React Native’s strengths are aligned with a project, it’s a very attractive option. The following are some questions that you can consider to determine if React Native is a good fit for your organization or project.
Are You Building an App for iOS and Android?
The biggest selling point for React Native is that you can use one codebase to ship apps on multiple platforms, so it makes sense that React Native is helpful for any organization building iOS and Android apps simultaneously. 100% code reuse between platforms isn’t common, but it is quite feasible to reuse the majority of code in an app. When reuse isn’t an option, it’s a straightforward process to write platform-specific code. So while you don’t get two apps for the price of one, you do ship features faster across platforms compared to developing two separate apps. This has positive cost implications, and it can be even more valuable for MVP apps built to answer market questions as quickly as possible.
That’s not to say that React Native is only a good choice when building two apps at the same time, though. Focusing on developing either an iOS or Android app before building its counterpart can reduce development time on the second app thanks to reusing React Native code.
What Are the Design Goals of Your App?
Despite those concerns, there are good reasons to be optimistic about the direction React Native is going. One of the great things about working with a thriving and popular open source technology like React Native is that the limitations facing it are constantly shrinking. Facebook is working on architecture changes that will improve bridge performance, and third-party contributors are solving problems by building solutions that benefit the whole community.
Another design consideration for cross-platform apps is, how closely does the app need to adhere to platform expectations? It is certainly possible to use React Native to create a floating action button for Android users to enjoy, for example, but that requires an Android-specific solution that can’t be reused for iOS. Creating a similar feature for iOS users would require separate iOS code and design. User experience is important no matter what kind of app you’re building, so we generally recommend using platform-specific conventions. Still, it is important to keep in mind that each feature unique to a platform will also require unique code, and using React Native makes the most sense when the least amount of unique code is required.
What Is the Composition of Your Current Dev Team?
Regardless of the team adopting React Native, developers generally find significant benefits in the framework due to tooling conveniences like hot reloading and a powerful debugger, a wealth of open-source libraries that solve problems for them and an active community striving together to build exceptional mobile apps. These elements contribute to making more effective developers who produce code quicker.
React Native has strengths and weaknesses like any other technology; using it in the appropriate situation will let its strengths shine while minimizing the impact of its weaknesses. If React Native is appealing to you because you believe it will cut your development budget in half, or that your React developers building web apps are already prepared to create flawless iOS apps, your expectations might be setting you up for disappointment. However, if you plan to build an app for Android and iOS with a new or existing team that is excited to explore new technologies, React Native could reduce development time as well as some costs.
If you have an app you’re excited about building, get in touch with us to see if React Native could be the right tool for the job.
If you’d like to know more about what adopting React Native could mean for your organization, take a look at some of these firsthand accounts from companies that decided to use React Native, for better or worse.