Jetpack Compose MVVM ViewModel Navigation3 Coroutine Koin
- Environment: Gradle, Kotlin, AGP 버전 업데이트,
compileSdk36 설정 - Chore: 불필요한 설정 파일 제거 및
.gitignore업데이트
- UI Components:
AuthCodeInputField,EmailAuthInputField,MediumButton,BigButton,InputField구현 및 스타일 적용 - Feature:
- 회원가입 이메일 인증 화면(
SetEmail) 및 로직(정규식 검사, 코드 입력 등) 구현 - 로그인 화면(
LogIn) 디자인 - 앱 첫 실행 화면(
FirstScreen) 구현
- 회원가입 이메일 인증 화면(
- Refactoring:
BigButton재사용성 개선, 입력 필드 UX 개선 (TextField 전환, 한 줄 제한, 키보드 타입 설정) - Design System:
AppColors,AppFonts,AppTextStyle등 공통 리소스 및 테마 정의
- Feature: 비밀번호 설정 화면(
SetPassword) 레이아웃 및 디자인 구현 - UI Components:
PasswordInputField컴포넌트 구현 및 텍스트 필드 속성 적용 - Design: 비밀번호 유효성 조건 문구 및 일치 여부 확인용 체크 아이콘 추가
- Environment: Android Gradle Plugin(AGP) 버전 업데이트 (8.13.1 -> 8.13.2)
- Navigation:
Navigation 3및kotlinx-serialization라이브러리 추가,NavigationRoot를 통한 화면 전환 구조(Splash, SetEmail, SetPassword, Login) 구축 - Feature:
Login,SetPassword화면 Route 정의MediumButton,BigButton클릭 이벤트 및 활성화 상태 제어 기능 추가- 인증 번호 전송/재전송에 따른 UI(버튼, 입력 필드) 상태 제어 로직 구현
- Architecture:
SetEmailViewModel및SetPasswordViewModel도입으로 UI와 비즈니스 로직 분리 (MVVM 적용) - Feature:
- SetEmail: 이메일 유효성 검사 및 인증 코드 확인 로직 연결, 다음 화면으로 이메일 데이터 전달 구현
- SetPassword: 비밀번호 유효성 검사 상태 관리 및 UI(체크 아이콘) 연동, 비밀번호 설정 화면 라우팅
- SetInformation: 개인정보 입력 화면 UI 및 컴포넌트(
InformationInputField) 초기 구현
- Refactoring:
EmailAuthInputField등 주요 입력 필드 상태 호이스팅(State Hoisting) 적용SetEmail,SetPassword패키지 구조 재정리 및 불필요한 코드/리소스 정리
- Feature: 이용약관 동의 관련 컴포넌트(
AgreeTerms) 및 다이얼로그 구현, 회원가입 정보 입력 후 약관 동의 화면으로의 내비게이션 연결 - Refactoring: 약관 동의 관련 변수명 직관적으로 수정 (
isNextButtonEnable->isNextButtonEnabled등) 및 코드 정리 - Fix:
AgreeTermsDialog상태 관리 이슈 수정 (rememberSaveable->remember) - Design:
AgreeAllTermsButton체크박스 레이아웃 개선
- Architecture: 의존성 주입(DI) 라이브러리
Koin도입 및 설정 (HealthMeApplication, 모듈 정의) - Feature: 회원가입 완료 화면(
SignUpComplete) 구현 및 약관 동의 후 라우팅 연결 - Refactoring:
ViewModel주입 방식 변경 (Factory->koinViewModel) 및 불필요한 코드 제거 - Design: 완료 화면 로고 아이콘 추가 및 텍스트 스타일 적용
- Feature:
- 메인 화면(
MainScreen) 및 하단 내비게이션(BottomNavigationBar) 구현 - 주요 탭 화면(홈, 운동, 식단, 스케줄, 마이페이지) 추가 및 라우팅 구성
- 로그인 완료 후 메인 화면 진입 프로세스 구현
- 메인 화면(
- Design: 하단 내비게이션 바 아이콘 및 색상 스타일링
- Refactoring: 내비게이션 백스택 관리 로직 개선 (
topLevelBackStack제거)
- Feature:
- 마이페이지 화면(
MyPageScreen) 및 관련 라우팅 구현 - 프로필 이미지 및 메뉴 구성을 포함한 마이페이지 UI 개발
- 마이페이지 화면(
- UI Components:
MyPageButton컴포넌트 구현 (아이콘 및 설명 텍스트 동적 처리) - Design:
- 마이페이지용 아이콘 리소스 및 전용 색상 추가
- Route에 따른
Scaffold배경색 동적 변경 기능 구현
- Chore:
MainActivityEdge-to-Edge 설정 비활성화