React Native Pros and Cons for Building macOS Apps

Project Source Code

Get the project source code below, and follow along with the lesson material.

Download Project Source Code

To set up the project on your local machine, please follow the directions provided in the README.md file. If you run into any issues with running the project source code, then feel free to reach out to the author in the course's Discord channel.

This lesson preview is part of the Building React Native Apps for Mac course and can be unlocked immediately with a \newline Pro subscription or a single-time purchase. Already have access to this course? Log in here.

This video is available to students only
Unlock This Course

Get unlimited access to Building React Native Apps for Mac, plus 70+ \newline books, guides and courses with the \newline Pro subscription.

Thumbnail for the \newline course Building React Native Apps for Mac

Now, before we start, it's a good idea to discuss the pros and cons of using React Native. There are many good things, but like everything in life, there's no magic bullet. So among the good things is React Native is cross-platform. You will be able to reuse most of your code across all the platforms that you are aiming for. You also have hot reloading. If you ever develop a native application, you know it's time consuming. With the JavaScript stack, most of the time you only need to save your files and your changes will be replicated. You will also be able to save costs, not only because the framework itself is quite fast, and you will be able to reuse a lot of the code, but you will also be able to find developers for the web stack. React Native also has a very large community nowadays, and there are libraries for most of the use cases, so you don't have to develop all the functionality yourself. And lastly, we do have performance as a good point. Even though React Native runs on the JavaScript stack, the apps are quite performant by default. Not always, but you don't have to do that much work to achieve a very perform ant app. Now, there is also some compromises. First of all, is the experience, since you will be running inside of React Native, you may not have access to all the native elements that you would wish. We also have performances at downside. Even though some of the elements of your application might run fast by default, if you try to achieve certain things like background uploads or download, your application might suffer a little bit of a slowdown. Now, those are the pure React Native points, but macOS has some peculiarities about it, let's just say. So among the good things is, again, you will be able to reuse most of the mobile code, but at the same time, you also want to provide a desktop experience. So sometimes you will require to write a specific code for the desktop. Among the good things is you won't have to learn all the Objective-C APIs, and you also want to have to learn Objective-C, which is most of the time very cumbersome. And one of the downsides is the port is quite new, the port is quite good, and a lot of the holes are being patched, but every once in a while you might find some missing functionality that you will have to work around on your own.