Overview
The hard part of a mobile app is not the screens but everything after the store: builds, signing, release flow, notifications and finding out why the app crashes in the field. In this training we build an app with React Native and Expo and set up automated releases to TestFlight and Google Play. The content draws on building our hellobebi app, live on web, iOS and Android.
Course content
1. React Native architecture
- The JavaScript and native layers
- The new architecture: Fabric and TurboModules
- Hermes
2. Expo
- Managed workflow and prebuild
- Config plugins
- app.json and environment variables
- Expo SDK versions and upgrades
3. Project structure
- TypeScript
- Feature-based folders
- Linting, formatting and tests
4. Navigation
- Expo Router
- Stacks, tabs and modals
- Lab: a multi-screen skeleton
5. User interface
- Styling and theming; dark mode
- Accessibility
- Localization
6. Data
- API clients
- Caching and query libraries
- Offline state
7. Identity
- Sign-in with OIDC
- Sign in with Apple and Google
- Secure storage and session refresh
8. Deep links
- Universal links and App Links
- AASA and assetlinks files
- Lab: an app that signs in and loads data
9. Notifications
- APNs and FCM
- Permission flows
- Opening from a notification
10. Media and files
- Camera and gallery
- File uploads
- Image optimization
11. Purchases
- In-app purchases and subscriptions
- Store rules
- Lab: a screen with notifications and photo upload
12. Builds and signing
- EAS Build and fastlane
- Certificates and provisioning profiles
- Separating test and production builds
13. Release
- TestFlight and Google Play internal testing
- Version numbers and tags
- Common store review rejections
14. Monitoring in the field
- Crashlytics
- dSYMs and source maps
- Performance monitoring
- Lab: a release pipeline from CI to the test track
Schedule
Each module takes about 4 hours, half a day; 56 hours in total.
- Day 1: modules 1 and 2
- Day 2: modules 3 and 4
- Day 3: modules 5 and 6
- Day 4: modules 7 and 8
- Day 5: modules 9 and 10
- Day 6: modules 11 and 12
- Day 7: modules 13 and 14
Prerequisites
- Experience with JavaScript/TypeScript and React
- A laptop with Node.js; macOS with Xcode recommended for iOS builds
- An iOS or Android device for testing
Training format
- On site or remote: at your office or in live virtual sessions.
- Hands-on: every day ends with lab sessions where you apply that day’s topic to a working example.
- Lab environment: participants get a prepared working environment and a sample code repository.
- Tailored to your team: content and examples are adapted to your stack after a short call before the training.
- Materials: slides, lab guides and reference code stay with you after the training.