Skip to content

Demo Week5

MJ edited this page Nov 25, 2021 · 3 revisions

🌈Demo week5

🖥5주차 발표 영상

demo_week5_.mp4

🔥 기능 구현

1. db 타입 변경

  • 기존 : 날짜와 시간을 String 타입으로 설정 -> 매번 확장함수를 만들어서 ui 출력값 형태를 바꾸고 db에 넣을때 타입을 맞추는게 번거로웠음, Calendar를 주로 사용했는데 month 값이 0부터 시작하는 것으로 인해 발생하는 오류가 굉장히 많았음
  • 현재 : LocalDate, LocalTime 타입을 사용해 db에 저장하고 필요한 경우 타입을 변경해주며 필요없는 확장함수를 줄이고 타입끼리 convert해서 로직의 복잡도를 완화, java api 8+ 이므로 desugaring을 추가

desugaring 지원관련 공식 문서

기존 현재

2. Not Todo 생성-수정-삭제 플로우 변경

생성

  • 반복 옵션을 설정하지 않은 경우
    • Todo를 새로 생성할 때 DailyTodo도 생성
  • 반복 옵션을 설정한 경우
    • Todo를 새로 생성
    • DailyTodo는 캘린더의 월을 변경했을 때 또는 날짜를 선택했을 때 반복 옵션(매년, 매월, 매주, 매일) 및 isFinished 속성을 고려하여 생성

수정

  • Todo를 수정하는 경우 반복 옵션 여부에 따라 선택된 날짜 또는 반복 시작일을 기준으로 그 이후의 DailyTodo를 모두 삭제
  • Todo의 isFinished도 false로 업데이트

삭제

  • 선택된 날짜의 Todo만 삭제하는 경우
    • DailyTodo의 isActive 속성을 false 처리
  • 선택된 날짜와 향후 Todo 모두를 삭제하는 경우
    • DailyTodo의 isActive 속성을 모두 false 처리
    • Todo의 isFinished를 true, finishDate를 선택된 날짜의 전날로 설정

🛠 트러블 슈팅

Android 12에서 앱이 종료되는 문제

PendingIntent의 flag를 버전별로 분기하지 않아서 발생한 문제

  • Android 12 이전의 버전에서 FLAG_UPDATE_CURRNET만 적용해도 정상 작동했던 것과 달리, Android 12에서는 PendingIntent의 flag 중 FLAG_UPDATE_CURRNET만 설정하면 인식하지 못한다. 따라서 12버전에서 해당 기능을 사용하고 싶다면 FLAG_UPDATE_CURRNET와 FLAG_IMMUTABLE을 같이 넣어 선택할 수 있게 만들어준다.

다크모드에서 앱이 종료되는 문제

  • night-values에서 NoActionBar 테마를 적용하지 않음
  • 커스텀 툴바에 접근할 때 에러 발생

➡ 다크 모드 지원하기로 결정

🎨 디자인 개선

1. 캘린더 디자인 변경

  • 기존에 날짜 뒤의 배경으로 있던 달성률이 날짜 위의 원형 디자인으로 변경
  • 날짜별 Not Todo의 개수를 출력
  • 왼쪽 상단의 버튼을 눌러 오늘 날짜로 캘린더를 바로 이동할 수 있도록 수정
캘린더

2. 다이얼로그 보완 및 사용자 친화 UX

  • 홈화면의 라벨 메뉴가 바로 라벨 편집화면으로 이동하는 것이 사용자에게 어색한 UI라고 느껴져 메뉴로 바꾸고 바로 라벨을 추가할 수 있게 개선
  • 투두 편집화면에서 라벨 추가가 바로 이루어질 수 있게 개선
홈화면에서의 라벨 메뉴 홈화면에서의 라벨 추가 투두 편집화면에서의 라벨 메뉴 투두 편집화면에서 라벨 추가

3. 다크모드 지원

  • 일부 다이얼로그를 제외한 모든 화면에 다크 테마 적용(개선중)
홈 화면 인기 화면 투두 편집 화면 라벨 편집 화면 옵션 화면
Clone this wiki locally