For a long time in the industry, companies used to have two different app development teams for different platforms like Android and IOS. With the advent of React Native this isn’t the scenario anymore.
What is React Native?
For those of you who are new to React Native, let’s start with a simple definition. React Native is a JavaScript framework developed by Facebook for building fast, flexible and reusable user interfaces. I am sure all of us have used the Facebook app. Have you ever thought how it manages to be so fast and snappy despite having so much of data and functionalities. Well, the answer is React Native. Many other popular apps like Instagram, Airbnb, and Netflix rely on this framework for consistency across different platforms and to ensure performance. It works very similar to ReactJS, Facebook’s popular JavaScript library for building single page web applications.
React Native allows you to build applications using Native code. You can build high-performance mobile apps that are indistinguishable from one that is built using Swift or Java. It helps in achieving the same user experience across Android and IOS.
That being said, there are still some complications to handle that come with building cross-platform apps. What if you need to implement some feature that isn’t yet supported by the React library? Well, it is very easy to write your own Native Module and link it to the React Native codebase because React is an open source project.
Why React Native?
A common ideology among developers is that they don’t want to invest time in learning and exploring new technology because they think that there’s a strong chance it will become obsolete in the near future.
React provides a set of very powerful tools to simplify app development. Apart from that, there are libraries for almost any feature that you would typically implement in an app. Just install the library and go through the simple documentation to implement the feature in your app. As mentioned on the official website of react native – “Thousands of apps are using React Native, from established Fortune 500 companies to hot new startups.” Some of the apps are listed below
The pages in React Native are made up of smaller components. A component is a piece of code that provides a specific functionality. This helps in making reusable components that can be used across different apps. It also makes the code much cleaner and easy to maintain.
“A component should do one thing, and do it well”
React Native first made it’s appearance in 2015. The technology is not very old and there are not many experienced developers in the field. With demand for developers in this field increasing exponentially, I believe learning it will go a long way in helping you build a successful career.
With all that being said, I am confident that it will be used more and more in the years to come.
Where and how to start?
To setup the essential development environment on your machine and start building React Native apps, please refer the official documentation. I would recommend you to use the native code setup rather than the create react native apps which only works with Expo client. If you want to avoid installing a bunch of software and just want to play around to explore React Native, only then use the quick start approach. To build real-world applications use native code.
I personally, used this Udemy course to learn the basics of react and redux. For mere $10, I believe it’s a bang for bucks and does a very good job of making the fundamentals very clear and easy to understand. The course also involves building four simple applications to give you an experience of building apps and solving problems.
Treat for Web Developers
If you’ve been into web development like me, then learning React Native will be a shorter learning curve for you. It uses declarative components called JSX which are similar to declaring and using HTML tags. At first, it might seem a little weird but before you know you’ll find yourself loving react for this very reason.
Styling in React Native also heavily relies on the CSS flexbox which is something that I wasn’t particularly comfortable with initially but once you get used to, it can be one of the best things to position elements and ensure that they behave consistently across different devices and screen sizes. React Native uses inline styles for applying styling to any component.
Amazing Developer Experience
The ability to share code between Android and IOS applications is undoubtedly one of the most attractive features of React Native, but it is only a small part of what makes the tool so incredible.
My favorite part of using React Native is hot reloading. The changes are reflected in the app instantly without having to rebuild the app. I’ve used Android Studio in the past and commonly had to deal with 30-60 seconds of build times even for a tiny change like a change of text. This saves time and doesn’t disrupt your workflow to build app over and over.
Start Exploring
React Native makes mobile app development fun again, and that alone is enough of a reason to try it out for your next project. If you try out React Native, you’ll see just how awesome the results can be. There are thousands of libraries to help you out in building awesome features. Complex features like a swipe deck on Tinder can be implemented with ease with the help of appropriate npm libraries for react native. All you have to do is install the library and go through the documentation to customize it based on requirements to implement the feature.
Good Luck! Go ahead and start exploring the awesome libraries.
Thank you so much for taking the time out to read my article.