Development: How to learn React Native
In a previous article in the development series, we wrote about the choice between hybrid and native apps. This time, we’re zooming in on a native technology with a shared codebase for all mobile platforms: React Native. Should you invest your time in learning how to use this framework? Our developer Paul explains when to learn React Native and when to stick to what you already know.
But why would you use React Native instead of regular native code?
The benefits of React Native
Here are the four most important benefits of using React Native:
- React Native apps are just as good as ‘real’ mobile apps
- React Native lets you reuse your code
By using one language, style or framework for cross-platform development, you can re-use a lot of code. This way, you won’t have to write code to do the same logic multiple times. This also makes your app consistent for users on a multitude of devices. Our tests show 90 to 95% code reusability across iOS and Android.
- React Native is very flexible
You can combine React Native with native platform code when you need to. This way, you can build just a part of your app in React Native, while leaving the rest in native code. Creating custom native components for each supported platform and binding them together in a React Component will give you a much-appreciated performance boost. The increased speed will please users, while the native code lowers the visible overhead and grants you the ability to use the “latest and greatest” platform APIs.
Things you should know before learning React Native
So, React Native seems pretty useful. But should you learn how to use it? First of all: you have to want to learn. This applies to any kind of learning, not just programming. If you’re not motivated, you won’t make it till the end.
If you’re motivated to learn, there are a few things you need to know before you can start using React Native:
- Yarn (npm) – A package manager. You’ll need it, because you will want to install some packages. (These packages will, probably, require even more packages, but don’t be afraid. Or be. It’s up to you.)
- Mobile platforms
You will also need to know the mobile platforms that you target. Knowing these systems will allow you to freely use native code when it’s necessary. These are the skills you’ll need:
- iOS: mainly Swift with legacy Objective-C
- Android: Java and Android SDK.
- Windows: Universal Windows Platform and mainly C#
By now, you should be comfortable determining when it is needed to use native code. For example, you’ll want to rely on native code for platform-specific push-notifications, camera-handlers, disk usage, quick-reply features, Live Tiles, etc.
So, should you learn React Native?
If you are an experienced front-end developer and you’ve built a couple of mobile-friendly React.js web apps, learn how to use React Native. It’ll give you three more platforms to conquer.
If that’s not the case, or if you are doing hardcore low-level numbers crunching (complex math functions, bitcoin mining, big data processing, etc.), stick to platform-specific development in your preferred programming language. You’ll be able to use your existing knowledge and you should already know the limitations of the platforms you use.