·업데이트·1 분
React Native (Expo) mobile app + full game flow
Scaffolded a React Native (Expo) mobile app with TypeScript and expo-router, then built the full game UI, AI/PvP flow, and ported the web 'game feel' features to native.
Brought Ki Clash to mobile with a React Native (Expo) app, then ported the full game flow and game-feel features across.
What changed
- Scaffold — Set up the Expo project with TypeScript and expo-router (file-based routing:
app/index.tsx,app/game.tsx,app/pvp.tsx), plus a shared lib for API access (src/lib/api.ts) and theming (src/lib/theme.ts). (commit3c8ca45) - Game UI components — Added the mobile component set to render the match natively:
ActionCard,GameBoard,KiMeter,MatchHUD,TurnReveal. (commit821c6d2) - Game flow — Implemented the full flow with two driving hooks:
useGame(AI matches) andusePvP(player-vs-player), wired into the game and pvp screens. (commit9fa0bb1) - Mobile polish — Added a
useAppStatehook for foreground/background transitions,SafeAreaProviderin the root layout, and environment configuration via.env.example. (commit255ae8c) - Game feel — Ported the web game-feel features to native:
AIThinking,Countdown, andMuteButtoncomponents, sound effects viauseSoundEffects, plus updates toMatchHUD,TurnReveal, anduseGameto match. (commit8b6095b)
Commits
3c8ca45— feat: set up React Native (Expo) project with TypeScript and expo-router821c6d2— feat: add mobile game UI components for React Native9fa0bb1— feat: implement mobile game flow with AI and PvP hooks255ae8c— feat: add mobile polish — AppState handler, SafeAreaProvider, env config8b6095b— feat: port all game feel features to React Native mobile