Overview
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 startorbun run start— then pressafor Android orifor iOS, or scan the QR code with Expo Go.
Tech stack
| Category | Technology |
|---|---|
| Framework | Expo 54, React Native 0.81.5, React 19.1 |
| Auth | Clerk (Expo 2.19) |
| Payments | RevenueCat (react-native-purchases 1.26) |
| Web3 | Thirdweb 5.118 |
| State | Zustand 5.0 |
| Storage | MMKV 4.1 |
| UI | Lucide React Native |
| Navigation | Expo Router 6.0 |
| Animations | Reanimated 4.1 |
| Package | Bun |
Features
- Wallet — Tokens, holdings, pack opening, crypto checkout (via PWA backend)
- Shop — Collectibles, cart, coin bundles, checkout
- Leaderboard — Rankings and filters
- Locker room — Social feed and engagement
- Profile — User profile and settings
- Theme — Dark/light mode (default dark)
Architecture
The app follows a modular architecture pattern:- Screen files (
wallet.tsx,shop.tsx) contain only JSX—all state, effects, and handlers live in dedicated hooks (use-wallet-screen.ts,use-shop-screen.ts) - Extracted sub-components in
components/wallet/andcomponents/shop/with barrel exports - Centralized types and constants in
types/andconstants/directories - API client layer in
lib/api/with MMKV cache fallback - PWA-ready with responsive desktop layout and web hover states
Getting started
- Clone the repository and run
bun install. - Configure environment (Clerk, RevenueCat, Thirdweb, API base URL) per repo README.
- Run
bunx expo start. - For development builds:
bun run build:dev(EAS) or run with Expo dev client. - Run
bun tsc --noEmitto check TypeScript types.
Ecosystem overview
See how the native app fits with the PWA, site, and Mic’d Up.
