🎉 TimeBattle이 정식 출시되었습니다! 지금 다운로드 🎮
TimeBattle은 친구들과 함께 즐길 수 있는 스톱워치 기반 미니게임 컬렉션입니다. 다양한 스톱워치 게임들을 통해 친구들과 재미있게 경쟁할 수 있습니다. Compose Multiplatform을 활용하여 Android와 iOS 플랫폼 모두에서 동일한 사용자 경험을 제공합니다.
이 프로젝트는 Cursor AI를 활용하여 개발되었으며, 다음 MCP(Machine Control Protocol) 도구들을 적극 활용했습니다:
- GitHub MCP: 저장소 관리, 이슈 추적, PR 생성 및 CI/CD 파이프라인 구성
- Figma MCP: UI/UX 디자인 및 에셋 생성
- Sequential Thinking MCP: 복잡한 문제 해결을 위한 단계별 논리적 사고 프로세스
지정된 시간 (5초)에 최대한 가깝게 스톱워치를 멈추는 게임입니다. 목표 시간에 가장 가깝게 멈춘 플레이어가 승리합니다.
10초 이내에서 가장 늦게 멈추는 사람이 승리합니다. 하지만 10초를 초과하면 탈락!
게임 시작 전에 짧게 표시되는 랜덤한 시간을 기억하고 정확히 맞추는 게임입니다.
모두가 동시에 시작한 뒤, 15초 내에서 가장 오래 버티는 사람이 승리합니다. 제한 시간을 초과하면 탈락합니다.
자유롭게 스톱워치를 멈추고, 밀리초 끝자리 숫자만 비교합니다. 가장 큰 숫자가 승리합니다!
- Kotlin Multiplatform: 안드로이드 및 iOS 공통 코드 작성
- Compose Multiplatform: 크로스 플랫폼 UI 구현
- Material 3: 디자인 시스템
- Kotlinx Coroutines: 비동기 프로그래밍
- Kotlinx Datetime: 크로스 플랫폼 날짜/시간 처리
- Feather Icons: 아이콘 리소스
- MVVM 패턴: UI와 비즈니스 로직 분리
- 상태 기반 UI: 단방향 데이터 흐름
- Composable 함수 컴포넌트화: 재사용 가능한 UI 요소
- 다양한 스톱워치 기반 미니게임
- 게임 결과 정산 및 순위 표시
- 꼴찌 플레이어를 위한 랜덤 벌칙
- 재미있는 승리 애니메이션
이 프로젝트는 GitHub Actions를 활용한 CI/CD 파이프라인을 구축하여 다음과 같은 자동화 작업을 수행합니다:
- 자동 유닛 테스트 실행
- 안드로이드 APK 빌드
- 테스트 리포트 및 빌드 아티팩트 생성
- Dependabot을 통한 의존성 자동 업데이트
- KDoctor로 시스템 환경 확인
- JDK 17 이상 설치
local.properties파일에 Android SDK 경로 설정
- Android Studio에서 프로젝트 열고 실행
- 또는
./gradlew :composeApp:assembleDebug명령으로 APK 빌드composeApp/build/outputs/apk/debug/composeApp-debug.apk경로에서 APK 파일 확인
- Xcode에서
iosApp/iosApp.xcproject열고 실행 - 또는 Android Studio의 Kotlin Multiplatform Mobile plugin 사용
./gradlew :composeApp:run명령으로 실행- 핫 리로드:
./gradlew :composeApp:runHot
MIT License