d-sports-engage-native (package name: engage-native) is the native mobile app for D-Sports. It mirrors the core PWA experience on iOS and Android: wallet, shop, leaderboard, locker room, and profile.
Run:bunx expo start or bun run start — then press a for Android or i for iOS, or scan the QR code with Expo Go.
The native app communicates with d-sports-api through a typed client layer in lib/api/. The useApi() hook exposes domain-specific modules (wallet, shop, user, quests, leaderboard, locker room, teams, collectibles, checkout) with automatic Clerk token injection.
If a response does not include a top-level success field, the client rejects it with an INVALID_RESPONSE_ENVELOPE error code. There is no fallback parsing for legacy response shapes.
All backend routes consumed by the native app must return the { success, data?, error?, code? } envelope. Routes that return raw objects or arrays will cause client-side failures.