React Native Core
Based on React Native docs as of 2026.
See also:
- Ecosystem libraries (navigation, state, TanStack Query, Reanimated) →
react-native-ecosystem
- Expo SDK and EAS tooling →
react-native-expo
- Deep performance work (FPS, bundle, TTI, memory, native) →
react-native-performance
- React Native Testing Library deep dive →
react-native-testing
React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components. With React Native, you build a real mobile app that's indistinguishable from an app built using Objective-C or Java.
Core References
| Topic | Description | Reference |
|---|
| Core Components | View, Text, Image, TextInput, ScrollView — fundamental UI building blocks | core-components |
| Layout with Flexbox | Flexbox layout system for positioning and aligning components | core-layout |
| Styling | StyleSheet API for creating and organizing component styles | core-styling |
Features
Animations
| Topic | Description | Reference |
|---|
| Animated API | Built-in Animated API — timing, spring, composition (use Reanimated v3 for complex cases) | features-animations |
| Easing Functions | Easing functions for custom animation curves and natural motion | features-easing |
User Interactions
| Topic | Description | Reference |
|---|
| Touch Handling | Pressable, Touchable components, and gesture responders for handling user input | features-touch-handling |
| Keyboard | Keyboard API for handling keyboard events, dismissing keyboard, and KeyboardAvoidingView | features-keyboard |
UI Components
| Topic | Description | Reference |
|---|
| Additional Components | Modal, Switch, ActivityIndicator, RefreshControl for dialogs, toggles, loading states | components-ui |
Data Display
| Topic | Description | Reference |
|---|
| Lists | FlatList and SectionList for efficiently rendering large, scrollable lists | features-lists |
Styling and Theming
| Topic | Description | Reference |
|---|
| Colors and Theming | Colors, PlatformColor, Appearance API for theming and dark mode support | features-colors-theming |
Platform Integration
| Topic | Description | Reference |
|---|
| Platform APIs | Linking, Dimensions, Platform detection, AppState, and native integrations | features-platform-apis |
| Network | Fetch API for HTTP requests (production apps: Axios + TanStack Query) | features-network |
| StatusBar | Control status bar appearance, style, and visibility | features-statusbar |
| Share & Vibration | Native share dialog and device vibration for haptic feedback | features-share-vibration |
| Timers | setTimeout, setInterval, requestAnimationFrame for scheduling and delays | features-timers |
| Platform-Specific APIs | Android (ToastAndroid, DrawerLayoutAndroid) and iOS (ActionSheetIOS) native patterns | features-platform-specific |
Accessibility
| Topic | Description | Reference |
|---|
| Accessibility | Screen reader support, accessibility labels, roles, and states | features-accessibility |
Advanced Styling
| Topic | Description | Reference |
|---|
| Transforms | 2D and 3D transforms for rotation, scale, translation, and skew | features-transforms |
Architecture
| Topic | Description | Reference |
|---|
| New Architecture | Fabric, JSI, TurboModules — default since RN 0.76, what it means for your code | features-new-architecture |
Best Practices
| Topic | Description | Reference |
|---|
| Debugging | React Native DevTools, LogBox, Dev Menu, and debugging techniques | best-practices-debugging |
Key Recommendations
- Use
StyleSheet.create() for all styles instead of inline objects
- Use FlatList instead of ScrollView for long lists
- Use Pressable for new touch interactions (preferred over deprecated Touchable components)
- Animations: the built-in
Animated API suffices for simple cases; use Reanimated v3 for complex or gesture-driven animations
- Permissions: use
react-native-permissions for cross-platform permission handling instead of the low-level PermissionsAndroid
- Handle platform differences with
Platform.select() and Platform.OS
- Test on real devices — simulator behavior may differ from actual devices
- Use TypeScript for better type safety and developer experience
- New Architecture is default in RN 0.76+ — Fabric, JSI, and TurboModules are active; check library compatibility