Skip to main content

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 or bun run start — then press a for Android or i for iOS, or scan the QR code with Expo Go.

Tech stack

CategoryTechnology
FrameworkExpo 54, React Native 0.81, React 19
AuthClerk (Expo)
PaymentsRevenueCat (react-native-purchases)
Web3Thirdweb
StateZustand
StorageMMKV
UILucide React Native
NavigationExpo Router
PackageBun

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)

Getting started

  1. Clone the repository and run bun install.
  2. Configure environment (Clerk, RevenueCat, Thirdweb, API base URL) per repo README.
  3. Run bunx expo start.
  4. For development builds: bun run build:dev (EAS) or run with Expo dev client.
The app targets both native and web (responsive) and uses the same backend (d-sports-api) as the PWA for API and checkout flows.

EAS builds

Expo Application Services (EAS) handles native builds, OTA updates, and store submissions. All EAS CLI commands use bunx eas-cli via npm scripts.

Development builds

Development builds include expo-dev-client for dev menu, fast refresh, and JS updates without rebuilding native binaries.
# iOS simulator
bun run build:dev:ios

# Android APK
bun run build:dev:android

# Both platforms
bun run build:dev
After building, start the dev server with:
bunx expo start --dev-client

Preview builds

Preview builds are release-mode binaries for internal QA and stakeholder testing.
bun run build:preview

Production builds

Production builds are store-ready with auto-incrementing build numbers.
bun run build:prod

OTA updates

Push JS/asset changes to existing installs without a new store build:
# Push to production channel
bun run update --branch production --message "Fix: wallet balance display"
OTA updates only work if JS is compatible with the installed native binary. If you add or change native modules, do a full build first.

Store submission

# Submit both platforms
bun run submit

# Single platform
bun run submit:ios
bun run submit:android

Ecosystem overview

See how the native app fits with the PWA, site, and Mic’d Up.