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
- https://reactnative.dev/
- https://reactnative.dev/docs/getting-started
- https://reactnative.dev/docs/button
Tutorials
Tools
- Snack by Expo
- Live coding for React Native (like CodePen/CodeSandbox)
- Flipper by Facebook
- Dev tools for RN
3rd Party Integrations
- https://github.com/react-native-community
- Semi-official components that usually get adopted to official RN