React Native Fundamentals
React Native is a framework for building Android and iOS app interfaces with React and JavaScript. Its components render through native platform UI, while you keep shared application code where the platforms allow it.
itMobile and client application development | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: React Native Fundamentals
React Native is a way to describe a mobile interface with React and JavaScript, then render it through native platform UI. That is the useful bit. You write a screen as components instead of maintaining two unrelated descriptions of the same button, field, and list. It is not a spell that makes Android and iOS agree about everything. It is a shared starting point, which is much more honest and far more useful.
The thing to keep in your head is the component tree. A parent component contains children. View groups them, Text shows words, TextInput accepts keyboard input, Pressable notices presses, and Image shows images. Props are values a parent supplies when something renders. State is the small pocket of data that changes after an interaction. There is no tiny committee inside the phone deciding this for you: change state, and React Native updates the interface that follows from it.
Layout is Flexbox, with a few manners of its own. Children flow in a column unless you choose otherwise, and flexShrink begins at zero. That second detail has surprised enough web developers to deserve a chair at the meeting. For a long repeated collection, FlatList or SectionList renders the rows that are currently visible instead of treating a long screen as an endurance event.
Then comes platform-specific code, which sounds alarming but usually means one sober question: do both platforms need the same behavior? If yes, keep the component shared. If one small value differs, use the Platform module. If the implementation genuinely differs, use Android and iOS files. Sharing code is valuable because it avoids duplicate work, not because users should receive an interface that ignores their platform.
Read the Intro when you want the full model and its limits. Use Slides for the relationships between components, state, layout, and the platform boundary. Keep the Cheatsheet nearby while building a screen. The Practice reference and Exercise turn that map into a testable preferences screen. React Native supplies the foundation. The remaining decisions are still yours, because software has yet to invent a framework that politely makes them disappear.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://reactnative.dev/
Supports
- React Native uses React and JavaScript to create Android and iOS app interfaces rendered through native platform UI
- Core components such as View, Text, and Image map to native platform UI building blocks
- React Native does not prescribe routing or access to every platform API, and the project recommends a framework such as Expo for a new app
- React Native has ecosystem projects for web and Windows targets
- https://reactnative.dev/docs/getting-started
Supports
- JavaScript fundamentals are a prerequisite for working with React Native
- The official documentation organizes learning from basic concepts through environment setup, workflow, UI, testing, performance, and native development
- https://reactnative.dev/docs/intro-react
Supports
- React Native relies on React concepts including components, JSX, props, and state
- Components return React elements, props configure rendering, and state stores data expected to change over time or after interaction
- useState adds state to function components
- https://reactnative.dev/docs/components-and-apis
Supports
- View, Text, Image, TextInput, Pressable, ScrollView, FlatList, and SectionList are built-in React Native components
- FlatList and SectionList render currently visible list elements and are appropriate for long lists
- https://reactnative.dev/docs/flexbox
Supports
- React Native uses Flexbox for child layout
- flexDirection defaults to column, alignContent defaults to flex-start, and flexShrink defaults to zero
- justifyContent aligns on the main axis and alignItems aligns on the cross axis
- flex divides available main-axis space and position absolute leaves normal layout flow
- https://reactnative.dev/docs/platform-specific-code
Supports
- The Platform module supports small platform-specific parts of a component
- React Native selects .ios. and .android. files when imported without a platform suffix
- .native. files support a shared native module when web code differs
- https://reactnative.dev/docs/environment-setup
Supports
- The official documentation includes environment setup and integration paths
- https://docs.expo.dev/get-started/overview/
Supports
- Expo documentation is the first-party reference for Expo's getting-started workflow
- https://github.com/jondot/awesome-react-native
Supports
- The curated Awesome React Native list includes React Native for Web, React Native for Windows, and Storybook among ecosystem resources
- https://necolas.github.io/react-native-web/
Supports
- React Native for Web provides React Native components and APIs for browser targets
- https://microsoft.github.io/react-native-windows/
Supports
- React Native for Windows is an ecosystem platform project for Windows targets
- https://storybook.js.org/docs/get-started/frameworks/react-native
Supports
- Storybook documents a React Native framework for component-focused UI development
- https://reactnative.dev/blog/2015/03/26/react-native-bringing-modern-web-techniques-to-mobile
Supports
- React Native was introduced publicly in March 2015 as an application of React techniques to mobile development
- https://reactnative.dev/blog/2016/04/13/react-native-a-year-in-review
Supports
- Microsoft announced work to bring React Native to the Windows ecosystem in 2016
- https://reactnative.dev/blog/2017/03/13/introducing-create-react-native-app.html
Supports
- Create React Native App introduced a getting-started workflow without initial native development-tool setup
- https://reactnative.dev/blog/2018/06/14/state-of-react-native-2018
Supports
- The React Native team described its new architecture direction in 2018
- https://reactnative.dev/blog/2019/07/03/version-60
Supports
- React Native 0.60 introduced native-module autolinking and CocoaPods by default
- https://reactnative.dev/blog/2019/09/18/version-0.61.html
Supports
- React Native 0.61 introduced Fast Refresh for modern React components and Hooks
- https://reactnative.dev/blog/2020/07/06/version-0.63
Supports
- React Native 0.63 enabled LogBox by default
- https://reactnative.dev/blog/2022/09/05/version-070
Supports
- React Native 0.70 made Hermes the default JavaScript engine and improved Codegen configuration
- https://reactnative.dev/blog/2024/10/23/the-new-architecture-is-here
Supports
- React Native 0.76 enabled the New Architecture by default
- The New Architecture includes rewritten renderer and native module systems and an interoperability path for older libraries
- https://shopify.engineering/react-native-future-mobile-shopify
Supports
- Shopify described organizational and technical considerations in its React Native adoption strategy
- https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native
Supports
- Shopify described training and supporting infrastructure in a large React Native migration
- https://shopify.engineering/improving-shopify-app-s-performance
Supports
- Shopify measured and improved application performance after a React Native migration
- https://shopify.engineering/five-years-of-react-native-at-shopify
Supports
- Shopify reported percentile screen-load and crash-free session measures for its React Native applications
- https://expo.dev/
Supports
- Expo provides a React Native application framework and services around the core UI layer
- https://reactnavigation.org/
Supports
- React Navigation provides routing and navigation for React Native applications
- https://callstack.github.io/react-native-paper/
Supports
- React Native Paper provides reusable components for React Native applications
- https://www.nativewind.dev/
Supports
- NativeWind provides a utility-class styling system for React Native
- https://docs.swmansion.com/react-native-reanimated/
Supports
- React Native Reanimated provides animation capabilities for React Native applications
