An Introduction to Understanding React Native and Building Your First App

An Introduction to Understanding React Native and Building Your First App.

React Native is a powerful tool for building cross-platform apps—used by Facebook, Instagram, and Airbnb to develop their mobile app experiences. In this post, we’ll go over React Native and how it works with Swift on iOS or JavaScript on Android. We’ll also walk through the basics of setting up your development environment so you can get started coding in no time!

React Native gives web developers a way to bridge the gap between native iOS/Android programming languages and ReactJS/JavaScript—for those who have written code without an IDE before, this will be very easy for you to grasp due to similarities with HTML.


What is React Native, and how does it work?

React Native is a mobile app development framework that enables developers to create native apps written in JavaScript and use React components for their user interface. React Native uses a “learn once, write anywhere” philosophy, meaning that once you learn how to use React Native, you can use it to create apps for both Android and iOS.

The open-source framework allows you to create mobile apps using Javascript. Developed by Facebook and Instagram, it has only recently enjoyed an explosion of interest due to its ease of use and cost-efficiency. Numerous companies have adopted it, including Airbnb, Tesla Motors and Bloomberg.

React Native uses native components, making your app indistinguishable compared to those written with Java or Objective C. React Native has limitations, such as the inability to access device hardware like the camera. Hence, it’s crucial to consider the features you need before building your app. Toolkits like Cordova allow for more complex development on both iOS and Android.

The main benefit of React Native is that it provides a single source of truth when developing a mobile application. You only need to learn one language and one UI library. The other advantage is that you don’t need to worry about platform-specific issues since React Native handles all that for you.

What are the benefits of using React Native?

React Native has several benefits over other mobile app development frameworks:

  • It is faster and more responsive than traditional hybrid apps as it renders native UI elements rather than using webViews like traditional hybrid frameworks.
  • The use of native components delivers the look and feel of a native app rather than a hybrid one.
  • Increased stability over traditional hybrid frameworks and has a smaller learning curve.
  • Easier to share code across platforms—changes made to your codebase are reflected automatically on both platforms.
  • Provides a unified view layer across all platforms, making it easier to debug issues when they arise.
  • Able to run on multiple devices simultaneously (as long as each device supports the same version of React Native).
  • Easier to maintain than hybrid apps requiring manual updates wherever a component is used within the application.
  • Free to use—no additional fees for things like App Store submission fees.

How do I get started building my first React Native app?

The best way to get started with React Native is to read the official React Native documentation. The documentation covers everything from installing React Native to creating your first app. You can also find lots of tutorials and examples online that will help you learn how to use React Native.

How do I set up my development machine?

To start working with React Native, you must set up your development environment.

  1. First, download NodeJS and install it locally. Then follow this tutorial to install all necessary tools.
  2. Next, install the latest versions of Xcode and Android Studio. Follow the instructions here to get started.
  3. Install the react-native package via NPM.
  4. Create a new project using the command line. This will generate files for both iOS and Android projects.
  5. Open your project’s folder in Xcode. Open the file.xcodeproj/project.pbxproj in a text editor and find the following lines. Replace them with your values.

Basic UI components in React Native.

React Native uses a different set of React components than ReactJs and provides a set of basic UI components, including:

  • View
  • Style
  • TouchableHighlight (Touchable)
  • ScrollView (Scroll)
  • WebView (Web)
  • TextInput (Text)

The React component for each platform is shown in parentheses after the component name. For example, to use the <View> component you would import it like this: var MyComponent = require(“./MyComponent”); This allows React Native to render your native Android and iOS components using Javascript. It also means that if there is an overlap between React Native and ReactJS for any given component, React Native will use the React Native component.

React Native also provides several built-in components that are not available in ReactJS. These include:

  • Button (Touchable)
  • Checkbox (Toggle)
  • RadioButton (Switch)
  • Slider (Scroll)
  • TabBarIOS (Tabbar)
  • ToolbarAndroid (Toolbar)

Interacting with React’s DOM Helpers.

One important thing to note is that React Native does not yet have a fully implemented equivalent to React’s Refs and Dom helpers. If you need to access React’s internals or manipulate the DOM directly, you can use react-native-reflection, providing limited Refs support. React Native also exposes ReactElement#findDOMNode, which you can use to interact with React’s DOM helpers in React Native.

  1. Navigation provides an easy way to create React Native apps with multiple screens. React Native Navigation is a library that allows you to create stack-based navigation, similar to React Router, and supports tabs, side menus, and custom transitions.
  2. Animations provide React components for animating common mobile UI changes, such as React Native Navigation and React Router.
  3. Images and Videos provide React components for loading and displaying images from the React Native library or a remote server while also providing components for displaying videos from a remote server.
  4. Web Views provides components for displaying web content in a React Native app and interacting with the WebView’s native counterparts.
  5. Storage provides components for accessing the device’s built-in storage system and interacting with React Native Storage, a JavaScript implementation of IndexedDB that works on iOS and Android devices. You can use React Native Storage to store data in your app that persists between sessions.
  6. Networking provides components for accessing the device’s built-in networking system. React Native also provides React components for interacting with React Native Networking, a JavaScript implementation of the React Packet Manager library that works on iOS and Android devices. You can use React Native Networking to send requests to remote servers from your app.
  7. Platforms provide components for accessing the device’s native platform features, including React Native for Android and React Native for iOS.
  8. Modules provide components for working with third-party modules and include react-native-fetch-blob, allowing users to fetch files from a remote server as Blobs easily.

How do I test React Native apps?

Testing your React Native app is similar to testing traditional web apps. You can use React Native’s built-in packager and developer tools to enhance your debugging experience or use Jest or Enzyme.

For those looking for a complete guide on getting started with React Native, check out the official documentation—it contains an overview of React Native, installation steps, and walkthroughs for various features.

The future of React Native development.

React Native is still relatively new and is growing rapidly—although the React Native development community is still small with less tooling and support than more mature frameworks like Angular or ReactJS.

Overall, React Native is an excellent choice for mobile app development. It is relatively easy to learn. It produces fast and responsive apps while retaining the look and feel of a native app. If you are interested in learning React Native, I recommend reading the official React Native documentation and looking for online tutorials and examples.


React Native is a robust framework for building mobile apps with JavaScript with several benefits over other mobile app development frameworks, including faster performance, native look and feel, and a smaller learning curve. If you’re interested in building a mobile app, React Native is worth considering.