holy's story
[Error] 1차 스프린트 본문
4월 9일, 에코노 일정관리 프로젝트인 Error 프로젝트에 AOS 개발로 중간참여하게 되었습니다.
이후 4월 15일부터 26일까지 진행한 1차 스프린트 내용에 대하여 작성하려고 합니다.
Error의 기능으로는 캘린더, 일정 관리, 그룹별 일정 필터, (멘토링 일지 정리) 등이 있으며, 기존 팀원들은 1차 스프린트를 끝내고 2주의 중간고사 기간을 가지고 있었습니다. 저는 중간고사 기간동안 개인적으로 1차 스프린트를 진행하여 팀원들과 개발 일정을 맞춰가기로 하였습니다.
1차 스프린트 개발 기능으로는 캘린더, 일정 등록, 읽기, 수정, 삭제 등이 있었고 이미 개발이 진행된 웹의 디자인을 앱 디자인으로 변환하여 ui를 개발 진행하였습니다.
디자인
혼자서 앱을 디자인해보는 건 처음이라서 고민을 많이 했습니다.
사실 처음에는 피그마에 그리지 않고 코드를 변경해가며 split 화면을 확인하며 디자인을 진행했는데, 적용되는데 걸리는 시간때문에 답답해서 피그마를 켜게 되었습니다.
웹 디자인은 왼쪽과 같이 캘린더에 일정과 함께 기간이 나타내도록 되어있는데,
앱은 웹에 비해 화면이 작은 점을 고려하여 오른쪽과 같이 캘린더에는 일정의 유무를 나타내고 아래 리스트로 일정의 제목과 기간을 나타내도록 디자인했습니다.
2차 스프린트에 대한 디자인은 생각하지 않고 디자인해버려서 변경이 많이 될 것 같긴 합니다.
(+ 1차 스프린트 기능만 생각하고 디자인했는데 추후 그룹별 일정 필터 기능이 추가된다고 하면 웹과 같은 디자인이 더 보기 좋을 것 같아 변경 고민중)
개발
캘린더 라이브러리
일정 관리 어플리케이션이니 캘린더 라이브러리를 사용했는데, 선택한 캘린더 라이브러리와 선택한 이유에 대해 작성하겠습니다.
안드로이드에서 제공하는 캘린더는 원하는 디자인으로 만들기 힘들 것 같아 여러 라이브러리를 찾아보았고 다음 4개의 compose 라이브러리를 찾았습니다.
- https://github.com/kizitonwose/Calendar
- https://github.com/boguszpawlowski/ComposeCalendar
- https://github.com/mateusz800/Expandable-Compose-Calendar
- https://github.com/hi-manshu/Kalendar
이중 4번 hi-manshu의 Kalendar와 1번 kizitonwose의 Calendar 중에서 고민했는데,
Kalendar는 아기자기한 디자인과 월간, 주간 캘린더에 대한 ui를 제공하였고
Calendar는 여러 유형의 캘린더를 제공, 일정에 대한 LazyRow/LazyColumn까지 구현되어 있었습니다.
kizitonwose의 Calendar는 사용한 사람이 가장 많아 레퍼런스가 있었고 제공하는 디자인도 여럿이었지만
이번 프로젝트에서는 월간, 주간 캘린더만 필요했고, 레퍼런스가 없어도 문서를 보며 충분히 잘 사용할 수 있을 것 같아 hi-manshu의 Kalendar 라이브러리를 선택하였습니다.
api 통신
팀원들은 이미 1차 스프린트를 마친 상태였고 백엔드 개발자가 aws 상 배포까지 해둔 상태라서 통신 테스트는 수월하게 할 수 있었습니다.
다만 데이터를 받아올 때
각 요청에 맞춰서 데이터를 받아올 지 아니면 commonResponse로 받아온 후 viewModel에서 처리할 지를 고민했는데 PUT과 POST 요청에서는 응답 양식이 달라 GET과 함께 commonResponse로 받아오기 힘들 것 같아 일단 전자로 받아오기로 결정했습니다.
1차 스프린트까지는 사용하는 api가 4개밖에 없어서 추가되는 api를 보고 변경/유지하게 될 것 같습니다.
회고
- keep
- 여러 방식으로 개발하고 비교하기
- try
- 기능 개발 완료 후 흐름에 맞게 디자인 변경해보기
- 다른 라이브러리 적용 후 비교해보기
- 팀원들과 디자인, 진행상황 논의 더 활발하게 하기
- problem
- 디자인 피그마에 안하고 바로 개발 들어간 거
- 1차 스프린트 개발 양에 비해 기간이 길어서 좀 게으르게 개발한 것 같음