2024-01-18 복습 모드 지원 및 틀린 문제 기능 개선
January 18, 2024
📝 업데이트 요약
핵심 개선 사항
1. 복습 모드 버그 수정 ✅
- O/X 버튼 비활성화 문제 해결
- 마스터 처리 로직 개선 (원래 파일명으로 저장)
2. 복습 완료 UI 개선 ✅
- “다시 복습” 버튼 추가
- 마스터된 문제 수 표시
3. 기술적 개선 ✅
- Play Store 업데이트 릴리즈 노트 추가
- GitHub Pages + Jekyll 설정
1. 복습 모드 버그 수정
문제
복습 모드에서 4번째 문제부터 O/X 버튼이 비활성화(disable)되는 문제가 발생했습니다.
원인
QuizScreen에서isAnswered속성만으로 버튼 활성화 여부를 판단- 복습 모드(
isReviewMode) 체크 로직이 없었음 - 이미 답변한 문제(
userAnswer != null)가 섞인 순서로 먼저 나오면 버튼 비활성화
해결
// QuizScreen.kt
val isReviewMode = uiState is QuizUiState.Success && uiState.quiz.fileName == "review_mode"
// O/X 버튼
enabled = isReviewMode || !currentQuestion.isAnswered
2. 복습 완료 UI 개선
문제
복습 모드 완료 후 일반 결과 화면(“결과 보기”)이 표시되어 사용자 경험에 부자연스럽지 않았습니다.
해결
// ResultScreen.kt
@Composable
private fun ReviewModeResultContent(...) {
// 복습 완료 전용 UI
- "다시 복습" 버튼
- "홈으로 가기" 버튼
- 마스터된 문제 수 표시
}
3. 마스터 처리 로직 개선
문제
복습 모드에서 정답 맞춘 문제를 마스터 처리할 때 현재 파일명(fileName)이 “review_mode”로 저장되어, 틀린 문제 목록에서 제외되지 않았습니다.
해결
// Question.kt
data class Question(
val originalFileName: String? = null // 원래 파일명 보존
)
// QuizRepository.kt
wrongQuestions.add(
Question(
fileName = "review_mode",
originalFileName = fileName // 원래 파일명 보존
)
)
// 마스터 처리
repository.markQuestionMastered(currentQuestion.originalFileName!!, currentQuestion.id)
4. Play Store 업데이트
내용
- 최근 복습 모드 기능 추가
- 틀린 문제 기능 개선
- 스트릭 및 연속 학습 로직 최적화
사용자 개선 사항
- ✅ 복습 모드에서 언제든 O/X 선택 가능
- ✅ 복습 완료 후 “다시 복습” 또는 “홈으로 가기” 선택 가능
- ✅ 정확한 마스터 처리 (틀린 문제 목록에서 올바르게 제외)
- ✅ 사용자 경험 개선 (복습 완료 UI 개선)
기술적 개선
- Compose 성능 최적화 (불필요한 recomposition 방지)
- Flow 구조화된 동시성 처리
- SharedPreferences 키 관리 체계화