Important React Native Topics
Core Concepts
- JSX and Component Structure
- Functional vs Class Components
- State and Props
- Lifecycle methods (useEffect, etc.)
- Event Handling (onPress, onChangeText, etc.)
UI & Layout
- Flexbox (for layout)
- ScrollView vs FlatList vs SectionList
- Modal, Alert, ActivityIndicator
- Platform-specific code ([Link])
- Custom reusable components
Styling
- [Link] vs inline styles
- Dynamic styling
- Theming (with libraries like Gluestack, Tailwind, NativeBase)
Navigation
- React Navigation (stack, tab, drawer)
- Passing params between screens
- Navigating programmatically
- useNavigation, useRoute hooks
APIs & Data Fetching
- fetch or axios for REST APIs
- Using useEffect for async calls
- Loading and error handling
- Pagination (in FlatList)
Authentication & Storage
- Login/Signup flows
- Secure token storage (AsyncStorage, SecureStore)
- Navigation guards (protected routes)
- Context API or Redux for auth state
State Management
- Local state (useState)
- Global state: Redux / Context API
- Redux Toolkit (modern Redux)
- React Query (for API cache/state)
Device Integration
- Permissions (camera, location, etc.)
- Image picker
- Camera access (expo-camera or react-native-camera)
- Linking & Deep Linking
- Push notifications
Performance Optimization
- Memoization ([Link], useMemo, useCallback)
- Avoiding unnecessary re-renders
- FlatList optimization (keyExtractor, windowSize)
- Lazy loading screens
Debugging & Tools
- Debugger ([Link], Flipper, React DevTools)
- Error boundaries
- LogBox and yellow box suppression
- ESLint and Prettier
Build & Deployment
- Expo vs React Native CLI
- APK/AAB build (eas build)
- Over-the-air updates (Expo Updates)
- Play Store & App Store publishing