2026/05/17

오늘의 이야기

**) 단계별 구현 로드맵 (MVP -> 확장)


앱 작업중 이미지



 


Phase 1 - MVP (핵심 기능)



  • Hilt/Room 기본 세팅

  • Receipt Entity/DAO/Repository 구현

  • 스캔 화면 + 코드값 저장

  • 목록/상세/수정/삭제 (현재 상세는 Edit 화면 겸용)

  • 기본 테스트(DAO + ViewModel)


Phase 2 - 사용자 경험 강화



  • 검색/필터/정렬

  • 영수증 이미지 첨부

  • 스캔 실패/중복 처리 UX 개선

  • DataStore 설정화


2-1) 검색/필터/정렬


세부 작업



  • ReceiptUiStatesort, filters 상태(기간/금액/저장여부 등) 추가

  • ReceiptListScreen 상단을 검색 + 필터 + 정렬 UI로 확장

  • ReceiptDao에 필터/정렬 쿼리 추가(또는 통합 쿼리 전략 적용)

  • ReceiptRepository.observeReceipts(...)를 query + sort + filter 입력으로 확장

  • ReceiptViewModel에서 검색/필터/정렬을 단일 Flow 파이프라인으로 결합


완료 기준 (Acceptance Criteria)



  • 검색어/필터/정렬 변경 시 목록이 즉시 반영된다

  • 빈 결과/초기 상태/검색 결과 상태가 UI에서 구분된다


권장 테스트 포인트



  • DAO 테스트: 정렬 우선순위 및 필터 조합 결과 검증

  • ViewModel 테스트: query/sort/filter 변경 시 상태 전이 검증


2-2) 영수증 이미지 첨부


세부 작업



  • ReceiptEditScreen에 이미지 첨부/변경/삭제 액션 및 썸네일 추가

  • ActivityResult 기반 이미지 선택 플로우 연결

  • imageUri 저장/수정 경로를 Repository 저장 로직에 반영

  • URI 접근 실패 시 플레이스홀더 + 재선택 안내 UI 제공

  • 목록 카드에서 첨부 여부(썸네일/아이콘) 표시


완료 기준 (Acceptance Criteria)



  • 이미지 첨부 후 저장 시 재진입해도 첨부 상태가 유지된다

  • 잘못된 URI/권한 문제 시 크래시 없이 복구 안내가 표시된다


권장 테스트 포인트



  • Repository 테스트: imageUri 저장/수정/삭제 검증

  • UI 테스트: 첨부 전/후/삭제 상태 렌더링 검증


2-3) 스캔 실패/중복 처리 UX 개선


세부 작업



  • 스캔 결과 모델을 성공/취소/실패/중복으로 구분

  • 취소/실패(raw 없음) 시 사용자 피드백 + 재시도 액션 제공

  • 중복 판단 기준 정의 및 DAO/Repository 중복 조회 API 추가

  • 중복 시 기존 열기/신규 저장 선택 다이얼로그 제공

  • 실패/중복 이벤트를 scan_history에 기록


완료 기준 (Acceptance Criteria)



  • 취소/실패/중복 상황에서 다음 행동(재시도/이동) 안내가 제공된다

  • 동일 코드 재스캔 시 중복 정책 분기가 일관되게 동작한다


권장 테스트 포인트



  • Repository 테스트: 중복 판단 경계값 검증

  • UI 테스트: 실패/중복 다이얼로그 표시 및 액션 검증


2-4) DataStore 설정화


세부 작업



  • DataStore 의존성 추가 및 버전 카탈로그 반영

  • 설정 모델(SortOrder, 기본 필터, 스캔 옵션)과 SettingsDataStore 구현

  • Hilt 모듈에 DataStore/Settings Repository 제공 추가

  • ViewModel에서 DataStore Flow와 목록 Flow 결합

  • 최소 UI(정렬/필터 선택)에서 설정 저장 연결


완료 기준 (Acceptance Criteria)



  • 선택한 정렬/필터 기본값이 앱 재실행 후에도 유지된다

  • 설정 변경 시 목록이 즉시 반영된다


권장 테스트 포인트



  • DataStore 테스트: 기본값/쓰기/읽기/복원 검증

  • ViewModel 테스트: 설정 Flow 반영으로 목록 상태 변경 검증


Phase 3 - 고도화 기능



  • Kakao Map 연동(상세 -> 지도)

  • In-app Update 적용

  • 통계/리포트(월별 금액, 카테고리)





댓글 없음:

댓글 쓰기

오늘의 이야기

#billcorea #운동동아리관리앱 🏸 Schneedle, a must-have app for badminton clubs! 👉 Match Play – Record Scores & Find Opponents 🎉 Perfect fo...