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 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 1.26 |
| Web3 | Thirdweb 5.118 |
| State | Zustand 5.0 |
| Storage | MMKV 4.1 |
| UI | Lucide React Native 0.562 |
| 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, crypto checkout (Arbitrum, Ethereum, Polygon)
- Leaderboard — Rankings and filters
- Locker room — Social feed, quests, daily games (Pick ‘Em, Spin Wheel, Guess the Player)
- Profile — User profile and settings
- Onboarding — New user onboarding flow
- Settings — Nested settings pages (accessibility, appearance, privacy, notifications, etc.)
- Theme — Dark/light mode (default dark)
- PWA support — Responsive desktop layout with web hover states
Project structure
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. - For native iOS builds: use Xcode Cloud CI scripts in
ios/ci_scripts/.
Architecture patterns
- File-based routing via Expo Router with route groups
(tabs),(auth),(onboarding) - Modular screen architecture — screen files contain only JSX; state/effects/handlers live in dedicated hooks
- Extracted sub-components — wallet and shop screens decomposed into
components/wallet/andcomponents/shop/ - Zustand + MMKV for global state with synchronous persistence
- API client layer in
lib/api/with MMKV cache fallback - Crypto checkout via Thirdweb SDK calling PWA backend for on-chain payments
- PWA-ready —
display: standalone, responsive desktop layout, web hover states
Ecosystem overview
See how the native app fits with the PWA, site, and Mic’d Up.
