반응형
습관관리 앱, 개발 작업 일지
1. 하드코딩된 한글 문자열의 strings.xml 이전
- 앱 내 하드코딩된 한글 텍스트를
strings.xml로 이동하여 다국어 지원 및 유지보수성을 개선함.

2. AlertDialog를 MaterialDialog로 변경
- 기존
AlertDialog를com.afollestad.material-dialogs라이브러리의MaterialDialog로 교체. - 다이얼로그의 테마와 색상 문제를 해결하기 위해
theme속성 및color.xml을 활용하는 방법을 검토함.
3. 다이얼로그 색상 및 테마 적용
- MaterialDialog에서 배경색 투명 문제 발생 시,
theme를 지정하거나color.xml의 색상 리소스를 활용하여 해결. - MaterialDialog의
md_title_color등 속성은color.xml에 정의된 색상과 일치시켜 사용하도록 권장.
4. color.xml과 color.kt 색상 동기화
color.kt에 정의된 색상과color.xml의 색상 코드가 일치하도록 정리.- 누락된 색상은
color.kt기준으로color.xml에 추가함.
5. 홈 화면 뒤로가기 버튼 다이얼로그 추가
- 홈 화면에서 뒤로가기 버튼 클릭 시 앱 종료 여부를 확인하는 MaterialDialog를 추가.
- 사용자가 "확인"을 누르면 앱이 종료되고, "취소"를 누르면 다이얼로그가 닫힘.
6. 기타 작업 및 오류 해결
- MaterialDialog 관련 타입 오류(
Argument type mismatch,Cannot infer type) 및 리소스 오류(Cannot resolve symbol 'md_title_color')를 해결. - 다이얼로그 중복 호출 방지 로직 추가.
7. 코드 예시
// 뒤로가기 버튼 다이얼로그 예시
BackHandler {
showExitDialog = true
}
if (showExitDialog) {
MaterialDialog(context).show {
title(text = context.getString(R.string.dialog_exit_confirm))
message(text = context.getString(R.string.exit_app_dialog_message))
positiveButton(text = context.getString(R.string.dialog_exit_confirm)) {
(context as? Activity)?.finish()
showExitDialog = false
}
negativeButton(text = context.getString(R.string.dialog_cancel)) {
showExitDialog = false
}
}
showExitDialog = false
}
8. 결론
- 오늘 작업을 통해 UI 일관성, 유지보수성, 사용자 경험이 크게 향상됨.
- MaterialDialog와 리소스 관리 방법을 숙지하여 향후 확장 및 수정이 용이해짐.
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
| 습관관리 앱 구현 과정 : Jetpack Compose에서 TopAppBar 구현 과정, 동적 버전 표시 및 웹 연동 (2) | 2025.10.18 |
|---|---|
| 습관관리 앱 개발 일지: 대규모 리팩토링 및 기능 추가 (2) | 2025.10.16 |
| 습관관리, 사용자 경험을 한 단계 위로 (개발 일지) (2) | 2025.10.12 |
| 습관 관리 앱 만들기 (1) - Hilt, Room으로 뼈대 세우기 (1) | 2025.10.10 |
| FocusMe — 습관 트래커 프로젝트 기획서 (1) | 2025.10.08 |