Mobile Application
Repository: bridges-mobile-app-source-code/oim-mobile-main
The beneficiary mobile application is built with React Native and Expo (Expo Router for file-based navigation), written in TypeScript. It mirrors the web experience for beneficiaries who primarily access the platform from a phone.
Technology
Concern |
Implementation |
|---|---|
Framework |
React Native + Expo (SDK 54) |
Navigation |
|
Language |
TypeScript |
Secure storage |
|
Local storage |
|
i18n / locale |
|
Animations / gestures |
|
Media / UI |
|
Application Contexts
Global state is provided through React contexts in context/:
Context |
Responsibility |
|---|---|
|
Authentication state, login/logout, token lifecycle |
|
Current beneficiary data |
|
Profile completion state and updates |
|
Active language / locale |
Key Components
Reusable components in components/ include CompleteProfileModal,
ProfileCompletionBanner, FilterModal, RecommendationDetailModal,
SessionExpiredModal, themed primitives (themed-text, themed-view),
and haptic-tab for tactile navigation feedback.
API Service Layer
Network access is centralized in services/api:
File |
Responsibility |
|---|---|
|
Configured HTTP client (base URL, auth headers, interceptors) |
|
Authentication endpoints (login, register, password reset) |
|
Beneficiary profile and recommendation endpoints |
|
Reference / lookup data (regions, sectors, skills) |
|
Shared request/response types |
|
Barrel export |
User Flows
The mobile app supports onboarding, registration and email verification, a
multi-step profile-setup wizard, viewing and filtering recommendations, viewing
recommendation detail, and managing notifications. Session expiry is handled
gracefully via the SessionExpiredModal and the AuthContext token
lifecycle.