ν΄μ»€ν€ MVP νλ‘μ νΈ | μ»΄ν¨ν°κ³΅ν μ 곡μ λ° μ£Όλμ΄ κ°λ°μλ₯Ό μν κ²½ν κΈ°λ° CS νμ΅ νλ«νΌ
BitQuestλ μ»΄ν¨ν°κ³΅ν μ 곡μ λ° μ£Όλμ΄ κ°λ°μμ CS κ°λ μ΄ν΄λ ν₯μμ μν κ²½ν κΈ°λ° ν΄μ¦ μ±μ λλ€. μ€λ¬΄μμ μμ£Ό λ§μ£ΌμΉλ CS κ°λ λ€μ ν΄μ¦ ννλ‘ μ 곡νκ³ , Gemini AIκ° μμ±ν μ€μ μ€μ¬μ ν΄μ€μ ν΅ν΄ ν¨κ³Όμ μΈ νμ΅μ λμ΅λλ€.
- π» CS μ λ¬Έ ν΄μ¦: μλλ‘μ΄λ, git λ±
- π§ μ€λ¬΄ μ€μ¬ λ¬Έμ : μ€μ κ°λ° νμ₯μμ λ§μ£ΌμΉλ μν© κΈ°λ° λ¬Έμ
- π€ AI κΈ°λ° ν΄μ€: Gemini AIκ° μμ±νλ μ€μ μμ μ ν¨κ»νλ μμΈ ν΄μ€
- π νμ΅ μ§λ κ΄λ¦¬: λΆμΌλ³ μ΄ν΄λ μΆμ λ° μ½μ λΆμ
- πΎ μ€λ§νΈ μΊμ±: Room DBλ₯Ό νμ©ν μ€νλΌμΈ μ§μ λ° λΉ λ₯Έ λ‘λ©
- π μ΅μ νλ UX: Jetpack Compose κΈ°λ°μ νλμ μ΄κ³ μ§κ΄μ μΈ UI
- μ»΄ν¨ν°κ³΅ν μ 곡 νμ: CS κΈ°μ΄ κ°λ μ 리 λ° μν λλΉ
- μ·¨μ μ€λΉμ: κΈ°μ λ©΄μ λλΉ CS κ°λ νμ΅
- Jetpack Compose 2024.12.01 - νλμ μΈ UI νλ μμν¬
- Material 3 - μ΅μ λμμΈ μμ€ν
- Compose Navigation - μ μΈμ λ€λΉκ²μ΄μ
- MVVM + Clean Architecture - νμ₯ κ°λ₯νκ³ ν μ€νΈ κ°λ₯ν ꡬ쑰
- Hilt - μμ‘΄μ± μ£Όμ
- Coroutines & Flow - λΉλκΈ° μ²λ¦¬
- Room Database - λ‘컬 λ°μ΄ν° μ μ₯ λ° μΊμ±
- Gemini AI API - AI κΈ°λ° ν΄μ€ μμ±
- SharedPreferences - μ¬μ©μ μ€μ μ μ₯
- JUnit 5 - λ¨μ ν μ€νΈ
- Compose Test - UI ν μ€νΈ
- Detekt - μ½λ νμ§ κ΄λ¦¬
- Android Studio Ladybug (2024.2.1) μ΄μ
- JDK 21 μ΄μ
- Android SDK 35 (Target SDK)
- Minimum SDK 35
- Gemini AI API ν€
- μ μ₯μ ν΄λ‘
git clone https://github.com/yourteam/bitquest-android.git
cd bitquest-android- API ν€ μ€μ
# local.properties νμΌμ μΆκ°
GEMINI_API_KEY=your_gemini_api_key_here- νλ‘μ νΈ λΉλ
./gradlew build- μ± μ€ν
./gradlew installDebugapp/src/main/java/com/yourteam/bitquest/
βββ π¨ ui/ # Compose UI λ μ΄μ΄
β βββ theme/ # Material 3 ν
λ§
β βββ components/ # μ¬μ¬μ© κ°λ₯ν Composable
β βββ screens/ # νλ©΄λ³ Composable + ViewModel
β βββ navigation/ # λ€λΉκ²μ΄μ
μ€μ
βββ ποΈ domain/ # λΉμ¦λμ€ λ‘μ§ λ μ΄μ΄
β βββ model/ # λλ©μΈ λͺ¨λΈ
β βββ repository/ # μ μ₯μ μΈν°νμ΄μ€
β βββ usecase/ # μ μ€μΌμ΄μ€
βββ πΎ data/ # λ°μ΄ν° λ μ΄μ΄
β βββ local/ # Room DB, SharedPreferences
β βββ remote/ # Gemini API
β βββ repository/ # μ μ₯μ ꡬν체
βββ π§ di/ # Hilt μμ‘΄μ± μ£Όμ
βββ π οΈ util/ # μ νΈλ¦¬ν° λ° νμ₯ ν¨μ
- μ± μ΄κΈ°ν λ° CS ν΄μ¦ λ°μ΄ν° λ‘λ©
- λ°±κ·ΈλΌμ΄λμμ μ΅μ λ¬Έμ λκΈ°ν
- CS λΆμΌλ³ μΉ΄ν κ³ λ¦¬ 그리λ
- μλλ‘μ΄λ : μλͺ μ£ΌκΈ°, compose ui
- git : λΈλμΉ μ λ΅, κΈ°λ³Έ λͺ λ Ήμ΄, μΆ©λ ν΄κ²°
- κ° λΆμΌλ³ νμ΅ μ§λμ¨ λ° μ λ΅λ₯ νμ
- μ€λ¬΄ μν© κΈ°λ° κ°κ΄μ, OX λ¬Έμ
- μ§κ΄μ μΈ λ΅μ μ ν UI
- λΆμΌλ³ μ μ λ° μ λ΅λ₯ λΆμ
- AI μμ± μμΈ ν΄μ€
- νλ¦° λ¬Έμ λ³΅μ΅ λ° κ΄λ ¨ κ°λ μΆμ²
- μ 체 νμ΅ μ§λ λμ보λ
- λΆμΌλ³ κ°μ /μ½μ λΆμ
- μ 체 μν€ν μ² μ€κ³ λ° μ½λ 리뷰
- Gemini AI μ°λ λ° λ³΅μ‘ν λΉμ¦λμ€ λ‘μ§
- CS λ¬Έμ λ°μ΄ν° νλ μ΄μ λ° κ²μ¦
- νμ λ©ν λ§ λ° κΈ°μ μ μμ¬κ²°μ
- Jetpack Compose UI ꡬν
- Material 3 ν λ§ λ° μ»΄ν¬λνΈ κ°λ°
- μ¬μ©μ κ²½ν μ΅μ ν
- Room Database μ€κ³ λ° κ΅¬ν
- Repository ν¨ν΄ ꡬν
- CS λ¬Έμ λ°μ΄ν° μ΄κΈ°ν λ° μΊμ± λ‘μ§
- μ±λ₯ μ΅μ ν
- CS λ¬Έμ μ νμ± κ²μ¦
- UI/UX ν μ€νΈ λ° λ²κ·Έ 리ν¬νΈ
- μ±λ₯ ν μ€νΈ λ° μ΅μ ν
- μ¬μ©μ μλλ¦¬μ€ ν μ€νΈ
- νλ‘μ νΈ μ΄κΈ° μ€μ (JDK 21, Target SDK 35)
- Clean Architecture κΈ°λ° ν΄λ ꡬ쑰 μ€κ³
- Room Database μ€ν€λ§ μ μ (CS λ¬Έμ νΉν)
- Hilt μμ‘΄μ± μ£Όμ λͺ¨λ μ€μ
- CS λΆμΌλ³ μ΄κΈ° λ¬Έμ λ°μ΄ν° μμ§
- Jetpack Compose UI μ»΄ν¬λνΈ κ°λ°
- μ½λ μ€λν« λ λλ§ μ»΄ν¬λνΈ
- ViewModel λ° UseCase ꡬν
- Gemini AI API μ°λ (CS νΉν ν둬ννΈ)
- λ€λΉκ²μ΄μ νλ‘μ° κ΅¬ν
- AI ν΄μ€ μΊμ± λ° μ€νλΌμΈ μ§μ
- νμ΅ μ§λ μΆμ μμ€ν
- ν΅κ³ λμ보λ ꡬν
- λ¨μ ν μ€νΈ λ° UI ν μ€νΈ μμ±
- μ±λ₯ μ΅μ ν λ° λ©λͺ¨λ¦¬ κ΄λ¦¬
main # λ°°ν¬ λΈλμΉ
βββ develop # κ°λ° ν΅ν© λΈλμΉ
βββ feature/ui-cs-theme # CS νΉν UI ν
λ§
βββ feature/quiz-engine # ν΄μ¦ μμ§ κ°λ°
βββ feature/ai-integration # AI ν΄μ€ μ°λ
βββ feature/progress-tracking # νμ΅ μ§λ κ΄λ¦¬
- λΈλμΉλͺ
:
feature/κΈ°λ₯λͺλλfix/λ²κ·Έλͺ - μ»€λ° λ©μμ§:
[feat|fix|docs|style|refactor|test]: μ€λͺ - μ½λ 리뷰: μ΅μ 1λͺ μ μΉμΈ νμ
- ν μ€νΈ: κ΄λ ¨ ν μ€νΈ μΌμ΄μ€ ν¬ν¨
- μ± μμ μκ°: < 2μ΄
- ν΄μ¦ λ‘λ© μκ°: < 1μ΄
- AI ν΄μ€ μμ±: < 5μ΄
- μ½λ λ λλ§: < 500ms
- λ©λͺ¨λ¦¬ μ¬μ©λ: < 200MB
- μ± μμ μκ°: TBD
- ν΄μ¦ λ‘λ© μκ°: TBD
- AI ν΄μ€ μμ±: TBD
- λ©λͺ¨λ¦¬ μ¬μ©λ: TBD
- API ν€ λ³΄μ: local.properties λ° νκ²½λ³μ μ¬μ©
- λ°μ΄ν° μνΈν: Room DB μνΈν μ μ© (CS λ¬Έμ 보νΈ)
- λ€νΈμν¬ λ³΄μ: HTTPS ν΅μ λ° Certificate Pinning
- μ¬μ©μ λ°μ΄ν°: κ°μΈμ 보 μ΅μ μμ§ μμΉ
- μ‘ν°λΉν° μλͺ μ£ΌκΈ°
- MVVM μν€ν μ³
- μ½λ£¨ν΄
- κΈ°λ³Έ λͺ λ Ήμ΄ (clone, commit, push, pull)
- λΈλμΉ μ λ΅
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€.
- ν 리λ: onlym6659@gmail.com
- νλ‘μ νΈ μ μ₯μ: GitHub Repository
- μ΄μ νΈλ컀: GitHub Issues