BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
iOS용 축구 팀 암기 게임, React Native·Expo·TypeScript로 단독 개발, App Store 출시
Football squad memorisation game for iOS. React Native / Expo, TypeScript. Built solo with Claude Code. Live on the App Store.
게임TypeScript · JavaScriptGitHub @tovmassian온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Escuadra — a football squad memorisation trainer for iOS and Android. Expo SDK 57 + expo-router, TypeScript strict,
Zustand, Reanimated. Light and dark themes, following the device setting by default, with a toggle on Home.
Runs in Expo Go for local development — no Xcode, no Apple Developer account, no native build.README 전문 보기 ↗Escuadra — a football squad memorisation trainer for iOS and Android. Expo SDK 58 + expo-router, TypeScript strict, Zustand, Reanimated. Light and dark themes, following the device setting by default, with a theme setting in Settings.
Runs in Expo Go for local development — no Xcode, no Apple Developer account, no native build.
Escuadra is on the App Store and Google Play. What each version shipped is in CHANGELOG.md; how a change reaches users, as an over-the-air update or a store build, is docs/release.md. The marketing site and the privacy and support pages are published from the gh-pages branch.
Prerequisites, once per machine and phone:
.nvmrc pins 24; CI runs 24). nvm use picks it up
automatically on either OS.npx expo login -b, then confirm with npx expo whoami.Then:
git clone <repo-url>
cd escuadra
npm install # also wires up the husky git hooks (prepare script)
npx expo start
Scan the QR with the iPhone Camera app; it offers to open in Expo Go.
| Windows | macOS | |
|---|---|---|
| Watchman | Not used — skip it | Metro's file watcher; install with brew install watchman. Without it, large projects can hit EMFILE: too many open files |
| First-run network prompt | Windows Firewall asks to allow Node.js on private networks — allow it, or the phone never connects | macOS asks to allow incoming connections for node/Terminal — allow it, or add it under System Settings → Privacy & Security → Firewall |
| Everything else | Same commands, same scripts, same Expo Go flow |
npm run check
npx expo start
Scan the QR with the iPhone Camera app; it offers to open in Expo Go. Edit, save, see it on the phone.
Useful keys in the Metro terminal: r reload · m dev menu · j DevTools ·
Ctrl+C stop. npx expo start -c clears the bundler cache.
| Script | Does |
|---|---|
npm run check | typecheck, lint, format check, tests, squadctl's registry check and the generated-file diffs: everything CI runs, and the pre-push gate |
npm test | Vitest, once |
npm run typecheck | tsc --noEmit |
npm run lint | expo lint |
npm run format | Prettier, write mode |
npm run format:check | Prettier, verify only |
A husky pre-push hook runs npm run check, so nothing reaches the remote with
broken types, lint errors or unformatted code. git push --no-verify bypasses it
in an emergency. Hooks install themselves through the prepare script on
npm install.
app/ expo-router routes (files = routes)
components/ shared UI; ui/ holds primitives
data/ static squad JSON
lib/ logic: pure modules are unit-tested; the few that wrap a native API keep their decisions in a pure sibling
i18n/ the catalogs and translations
scripts/ generators, CI logic and evals
tools/ squadctl
stores/ Zustand: progress (persisted), session (ephemeral)
theme/ design tokens + font map
types/ shared domain types
lib/questionEngine.ts stays pure, so the question engine is unit-testable without a renderer.
package.json pins SDK 58, and an SDK upgrade changes the native runtime, which invalidates every over-the-air update path and forces a new build and submission. An SDK upgrade is a release decision.useFonts in app/_layout.tsx. Expo Go cannot
use the expo-font config plugin — that needs a prebuild.@expo-google-fonts/inter/700Bold),
never the package root. The root barrel pulls in every weight and italic.| Symptom | Fix |
|---|---|
| QR scans but never connects (Windows) | Allow Node.js on private networks in Windows Firewall (port 8081) |
| QR scans but never connects (macOS) | Allow incoming connections for node when macOS's firewall prompt appears |
| Connects once then dies | Settings → Privacy & Security → Local Network → Expo Go → on |
| Server runs but phone never lists it | Sign in to the same Expo account on both: npx expo whoami and Expo Go |
| Phone and laptop can't see each other | Same Wi-Fi, no client isolation; else npx expo start --tunnel |
EMFILE: too many open files (macOS) | Install Watchman: brew install watchman |
| Animations do nothing | npx expo start -c |
| Stale code after adding a package | npx expo start -c |