10 Reasons to Learn React Native

Since the late 2000s, when the development of mobile application technologies has accelerated, different methods have begun to be sought in addition to the main development technologies that are expressed by Native producers. Until today, many different technologies have developed alternative solutions for mainstream flow. Some of them have been very successful, others have not reached the desired level.

By 2015, React Native was released on iOS and Android platforms. At present, I think it is the most successful alternative technology for mobile development.

In this article we will examine how React Native differs from other alternatives and why we should use it.

1. React Native is really ‘Native’.

Absolutely Native

In fact, although conceptually React Native is shown among the hybrid application frameworks, it can be safely said that the features it contains are far beyond the hybrid word. Facebook’s emphasis on adding ‘Native’ word to the name of the technology and React Native presentation at the homepage of the project shows that it is quite ambitious in this regard.

The keyword here is that React Native can produce applications that are entirely native components, as opposed to the idea that it works on WebView, as it first thought.

We can think of React Native’s working principle as follows. We can create View with xml on Android and we can create View with Java code as well. Let’s say we have a Java class called MakeRectangular.java. This Java class produces rectangle graphics in certain types at runtime. If we take a bridge between Javascript and this class, and after we run the application, we can generate rectangle graphics through this bridge with our Javascript functions. In another example, let’s consider a TextView object. Again, when we make a class that produces a TextView in the same way, Javacript can call it in runTime. In fact, we are not far from this paradigm. While developing a hybrid application, we were able to build bridges with Cordova (or with variants like Phonegap).

The example is based on Java, it has the same working principle on iOS side.

2. You can update your applications remotely.

Remote Update

Facebook says that the glitches in the publishing process of Native applications have forced them to develop React Native.

Let’s think. You want to add a new property to your application. You’ve added this feature on both Android and iOS and you need to update your applications already on the market. One of the problems here is that you can instantly publish your Android app on Google Play while you’ll be under the control of AppStore. This means that the features you develop are published at different times on different platforms.

Especially in A / B testing, we can experience difficulties because data on different platforms arrive at different times. As a workaround, you need to send iOS before. In this case, development processes can lead to various troubles such as the same features of Android and iOS being developed at different times. Of course this is not the only problem. Beyond publishing, the update we publish is not always available to the user. Many users can resist downloading the new update. This, in turn, leads to a lot of additional work, from API versioning to force update.

We allow our users to download the JavaScript bundle. This allows the user to load the latest version automatically (often without annoying the user) when the application is turned on. This means that many of the problems we mentioned earlier are resolved automatically.

The first question that may come to mind here is what will happen to the changes in the Native codes? Naturally, we can not use the remote update feature for changes we made on the Native side. So, when we change an ObjC code (or Java, Swift vs…), we need to publish it in the market because it needs to be compiled. We can use the remote update feature only for Javascript and developments in the assets domain.

You can try many alternatives such as Codepush developed by Microsoft regarding remote updating.

3. You can speed up application development.

The biggest obstacle for software developers in their development process is undoubtedly limited time. In addition to working overtime to train the project on time, it is important to think seriously about development processes and optimize as much as possible.

On the other hand, we can not overcome some obstacles. When we look at the mobile world, we can think of compile times of languages that we use for Native development. If we use Java, ObjC or Swift language, Compile-time is giving us serious time loss.

Of course not only compile, but the application we wrote at the end of the Linking and Building processes becomes testable on the mobile device. In order to shorten these times, there are various solutions such as incremental builders, but we can not reach the development speed of a javascript project at all.

4. A very large community support is always around you.

React Native has been increasing its popularity since its first publication. Below, we can observe the search graph of the React Native keyword from Google Trends over time and the rise in user searches.

In addition, many projects outside Facebook also produce libraries for React Native. As you develop your mobile, you will be able to easily find solutions to many difficulties.

5. A very big company develops React Native. Even better is using it in many applications.

The contribution that Facebook has made to the open source world in recent years is an undeniable fact. They have made many technologies open source so that we can meet many beautiful products. It is important to note here that the production of a technology by a large company is not always enough for other developers to trust and incorporate into their systems. The company has to invest in this technology and most importantly it has to use it in its own systems. In this regard, Facebook is one of the most beautiful examples. They develop and adapt it to their systems.

The Facebook Ads Manager and Facebook Groups applications were developed using the React Native framework. In the following period Facebook has added React Native to its own application and Instagram application. The use of React Native in complex applications is important for the observation and resolution of many problems.

Who is using React Native

Due to the flexible nature of React Native, React Native and Native are being developed together in Facebook and Instagram applications.

6. It allows to learn once and develop applications on many platforms.

Write Once, Run Everywhere is a slogan used by Sun for Java. Over the years, many different technologies have developed similar slogans to indicate the flexibility of the system they have developed. The first thought of React Native developer is that they can write applications like Hybrid applications and produce applications on all platforms.However, React Native’s approach is somewhat different.

Each platform has its own UI structure and working principle structure. Therefore, the code that we write is directly executable on different platforms, so it will not give a good result in terms of user experience.

Learn Once, Write Everywhere, which is also the principle of React Native, allows you to write applications according to the requirements of the platform on different platforms after learning the work structure of React Native.

In addition, when writing custom code for the platform, there will be many common uses for platform-independent mobile applications. At this point, a common codebase can be created for both platforms. So we can centralize event and data management, especially in applications other than designs. The more you increase the amount of common code across different platforms in an application, the greater the sustainability of the application and the shorter your application development time.

For common components that can be used on both platforms, such as TextView, Button, RN can translate the appropriate components to the corresponding UI of the platform with a single JS code. Again there are many common codes on the API side.

7. The Sky is the limit with React Native

Native technologies are constantly evolving and renewing. In the components of the React Native core you can not always find your needs and innovations. However, this does not mean that we can not use these new structures. Whether it’s a new product on the Native side or a need not found in the React Native, you can connect it with React Native by developing it on the Native side.
This will give you flexibility that is not available in many hybrid mobile application technologies. In addition, you can make your component or API available again and again.

8. You do not have to rewrite your native application.

If you already have an application, you may find it a risky way to rewrite it with React Native. Let’s not forget that React Native is capable of producing native applications in real sense. In this case, you can move certain parts of your application to the RN, test both the technology and create a good starting point.

The best example of this type of method followers is Facebook and Instagram applications, as we mentioned before. These applications use React Native in certain components instead of whole application.

9. Have you ever heard of Flexbox before?

Mobile application developers need to optimize the UI of the application for different devices. In the mobile world where the number of devices is increasing day by day, different screen types make extra effort for developers.

Besides, the time that is spent when the tablet support of the application we have developed is added.

Flexbox is the implementation on the React side of the Flexbox Layout system, which is particularly prominent on the web side.It allows you to do UI development independently of the screen.

While developing your mobile application, you can also apply the design of your tablet application at the same time by applying a few minor exceptions. It is now easier to develop applications for different screens.

Flexbox is not just about React Native, but it is an approach you should try when developing native applications. It’s a good idea to try the Facebook Yoga library.

10. Learning React It’s really easy.

ReactJS, the father of React Native, was the biggest problem syntax in developer’s minds at first release. Front-end developers who have used HTML for years as a template for JSX syntax have frightened. But over time it was actually seen how easy it was. Besides, learning RN compared to native application development is quite simple. And because you are a big community, you can find many books and tutorials.

 

Leave a Reply

Your email address will not be published. Required fields are marked *