Switch to Flutter (Android + iOS) for iPhone support; port engine to Dart
아이폰 지원 요구로 Android 전용 Kotlin 스택을 크로스플랫폼 Flutter로 교체. - app/: Flutter 프로젝트(android+ios). 코어 로직은 순수 Dart 모듈 app/lib/engine.dart 로 이식(SRS+180 킥·7-bag·홀드·고스트·락딜레이·T-spin/mini·콤보/B2B). 웹/Kotlin 판과 동일 알고리즘. - app/test/engine_test.dart: Dart 테스트 24개 전부 통과, flutter analyze 0 issue. - 이전 android/(Kotlin) 모듈 제거(Flutter로 대체). README에 Flutter 전환 + iOS 빌드 제약(맥 필요) 명시. - 게임 UI(목업 ② + §11 터치)와 설치용 빌드는 다음 단계.
This commit is contained in:
@@ -6,7 +6,9 @@ TETR.IO 스타일의 **모바일 실시간 대전 블록 스태커** 웹 게임.
|
||||
|
||||
이 문서는 앱 제작을 위한 **최종 빌드 진입점(entry point)** 이다. 모든 설계 결정·수치·에셋의 **정본(source of truth)은 [`TETRIG-최종명세서.md`](./TETRIG-최종명세서.md)** 이며, 구현 시 반드시 명세서와 UX 목업을 함께 열어 작업한다.
|
||||
|
||||
> **클라이언트 변경 (2026-08-22 사용자 결정)**: 플레이스토어 출시를 위해 클라이언트를 **네이티브 Android (Kotlin + Jetpack Compose)** 로 제작한다. 소스는 [`android/`](./android). 코어 게임 로직은 UI와 분리된 순수 Kotlin 모듈 [`android/engine`](./android/engine) 에 있고 JUnit 으로 검증한다(SRS 킥테이블·7-bag·T-spin 판정·점수·좌표 등 §4·§13 데이터는 그대로 이식됨). 서버 계획(Cloudflare Workers + D1 + WebSocket)은 변경 없이 유지된다. 초기 웹(HTML) 프로토타입(`src/`, `index.html`)은 검증된 **동작 레퍼런스**로 남겨둔다.
|
||||
> **클라이언트 변경 (2026-08-22 사용자 결정)**: 플레이스토어 + 앱스토어(아이폰) 동시 출시를 위해 클라이언트를 **크로스플랫폼 Flutter (Dart, Android + iOS)** 로 제작한다. 소스는 [`app/`](./app). 코어 게임 로직은 UI와 분리된 순수 Dart 모듈 [`app/lib/engine.dart`](./app/lib/engine.dart) 에 있고 `flutter test` 로 검증한다(SRS 킥테이블·7-bag·T-spin 판정·점수·좌표 등 §4·§13 데이터는 그대로 이식됨). 서버 계획(Cloudflare Workers + D1 + WebSocket)은 변경 없이 유지된다. 초기 웹(HTML) 프로토타입(`src/`, `index.html`)은 검증된 **동작 레퍼런스**로 남겨둔다.
|
||||
>
|
||||
> **iOS 빌드 제약**: Android(APK/AAB)는 리눅스에서 빌드 가능하나, iOS(.ipa)·앱스토어 제출은 **macOS + Xcode** 가 필수다. 맥 한 대 또는 클라우드 맥 CI(Codemagic 등) + **Apple Developer Program($99/년)** 이 필요하다. 이 저장소는 iOS 코드베이스와 CI 설정까지 포함하되 실제 iOS 바이너리는 맥 환경에서 빌드한다.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user