Section 1: How React on the Web Differs from React Native
- What carries over straight away: components, props, state, hooks and context
- What changes: no DOM, no CSS cascade, and rendering to native views
- The New Architecture: Fabric, Turbo Native Modules and JSI, plus Hermes V1
- Choosing between the Community CLI and a framework such as Expo
Section 2: Lab: Setting Up Native Tools on Windows and macOS
- Install the Node.js LTS release, JDK 17 and VS Code
- Android Studio, the Android SDK, the ANDROID_HOME variable and creating an emulator
- Xcode, the iOS Simulator, CocoaPods and Watchman on macOS
- Lab: check that your machine is ready before starting a project
Section 3: Lab: Creating a Project with the React Native Community CLI
- Create a project with npx @react-native-community/cli@latest init
- The project structure: App.tsx, the android and ios folders, and package.json
- The Metro bundler, Fast Refresh and React Native DevTools
- Lab: run your first app on the Android emulator and the iOS Simulator
Section 4: Lab: Core Components in Place of HTML Tags
- View, Text and Image compared with div, span and img
- TextInput, Switch and Pressable in place of input and button
- ScrollView, Modal and Alert for long content and pop-ups
- Lab: move a product card component from the web to React Native
Section 5: Lab: Styling with StyleSheet and Flexbox
- StyleSheet, unitless sizes and styles that do not cascade like CSS
- Flexbox on mobile: flexDirection defaults to column
- useWindowDimensions, Platform.select and multiple screen sizes
- Safe areas and edge-to-edge display on recent Android versions
- Lab: lay out a profile screen that works on phones and tablets
Section 6: Lab: State, Hooks and Forms on Mobile
- useState and useEffect in the context of a mobile app
- Controlled TextInput, keyboard types and dismissing the keyboard
- KeyboardAvoidingView so the keyboard does not cover the form
- Lab: a sign-up form with validation