Android is a playground of diverse devices, requiring developers to embrace flexibility and adaptability.
4 Months Duration
Overview of React Native
Setting Up Development Environment
JSX Syntax
Components in React Native
React Native UI Components
Flex direction, alignItems, justifyContent
Responsive layouts for different screen sizes
Inline styles vs. StyleSheet
Platform-specific styles (Android vs iOS)
Managing colors, fonts, and spacing
Types of navigation: Stack, Tab, Drawer
Installing and configuring React Navigation
Stack navigation for screen transitions
Tab and Drawer navigation for app structure
Passing data between screens with navigation params
TextInput for text inputs
Button, Switch, Picker for user interactions
Using useState and useEffect for form handling
Form validation techniques
Handling user input with controlled and uncontrolled components
Requesting permissions in Android (camera, location, contacts)
Using Android APIs (e.g., geolocation, camera, storage)
Using libraries like react-native-camera, react-native-geolocation-service, etc.
Accessing native device APIs (location, battery, etc.)
Using React Native Debugger
Console logs and error handling
Debugging on Android Emulator/Device
Profiling and identifying performance bottlenecks
Optimizing rendering (e.g., FlatList, shouldComponentUpdate)
Memory management best practices
Local vs. Global State in React Native
Context API for simple global state management
Introduction to Redux
Setting up Redux in React Native
Actions, reducers, and store
Connecting Redux to React components
Fetch API and Axios for HTTP requests
Handling promises and async/await
Parsing and displaying JSON data in React Native
Redux-thunk for async actions
Redux-Saga
Best practices for handling API calls in React Native
Introduction to React Native's Animation API
Animated.View, Animated.Text
Sequence and parallel animations
Spring and timing animations
Gesture-based animations with react-native-gesture-handler
Using AsyncStorage for key-value storage
Using SQLite for relational data storage
Integrating Realm or WatermelonDB
Using Firebase for authentication and data storage
Firebase Realtime Database vs Firestore
Using FlatList for large data sets
React.memo and useMemo for performance
Minimizing re-renders
Unit tests with Jest
Snapshot testing
End-to-end testing with Detox
React Native Debugger, Flipper
Android Studio Profiler
Crashlytics and Sentry for monitoring
Project requirements and design
Wireframes and user flow
Database schema and API integration
Building out the app’s core functionality
Implementing navigation, forms, state management
Testing and debugging the app
Building a release APK or AAB
Signing the APK
Configuring the app for production (removing debug code, enabling Proguard)
Publishing to Google Play Store