React Native Introduction

What is React Native?

React Native is a framework for creating cross-platform applications, from Android, to iOS, to web apps. It enables developers to write native applications using React components that replicate native functionality such as: displaying text, creating flexbox grids, or handling form input.

Why use React Native?

Writing applications for Android and iOS requires platform specific knowledge (like Java/Swift for iOS). This creates multiple codebases, built on different languages, and requires developers with different (or varied) skillsets. Instead, apps can be built using React Native, which streamlines the codebase by relying solely on JavaScript. Not technically, there is plenty of native code under the hood, but as far as most devs are concerned, they don't ever need to write native code. But you can "eject" and write native code when needed.

You could also achieve a similar shared codebase using frameworks like Ionic, which use HTML/CSS/JS to create native apps. This will have similar limitations to React Native, where the framework only has limited native functionality, and expands it over time (for example, RN doesn't support native Apple or Google payments).

How do I use React Native?

You can use react-native-cli or Expo to create the app. The CLI is more hands-on, and requires you to install/use Android and iOS emulation software (like XCode). While Expo is more simple, and handles the process for you, only requiring you to scan a QR code to test the app natively (or emulates the phone on your desktop).

See the basics guide for a quick start tutorial.

Limitations of React Native?

Compatibility

References

Official Documentation

Tutorials

Tools

3rd Party Integrations

Videos / Media

Compilations