본문 바로가기
⛏️ | 개발 기록/⏰ | Schedule Planner

[Android, Kotlin] 죽은 프로젝트 살리기 위한 v2 계획 (1)

by immgga 2023. 10. 10.

 

이번부터 필자의 기존에 개발을 완료했거나 개발 중단된 프로젝트를 살리는 개발 기록을 일기처럼 남겨볼까 한다.

이 시리즈를 작성하면서 내가 경험했던 죽은 프로젝트를 살려가는 과정을 글로 담아볼 예정이다.

첫 번째 프로젝트는 1년 전에 개발을 완료하고 버려진(?) Planner를 살려보는 프로젝트를 진행해 볼 것이다.

저의 개발 썰(?)로만 가득한 글입니다 ^^

 

1. Planner란 무엇인가?

예전에 필자가 기획한 Planner는 당시 필자가 점점 게을러지기도 했고 이번에 프로젝트를 내가 사용할 수 있는 앱을 만들어보자! 해서 번뜩인 아이디어로 구상을 시작한 프로젝트이다.

이름에서도 알 수 있듯이 일정 관리 앱이다. 당시 필자는 다른 Planner 앱들과 차별성을 주기 위해 하루 일정을 기록하는 것을 넘어서 시간마다 일정을 기록할 수 있도록 앱을 기획했다!(시간마다 일정을 기록한다는 것은 몇 시부터 몇 시까지 무엇을 한다. 를 일정으로 적어놓는 것을 뜻한다. 예) 3시부터 5시까지 마트 갔다 오기)

 

2. v2의 탄생 일화

현재의 필자가 다시 이 프로젝트를 봤을 때에는 흠 옛날이니까 그럴 수 있지 했다. 그리고 최근에 이 앱을 다시 실행해 보았는데 수많은 오류(로그인, 사용자 정보 쪽)가 발생했다 ㅠ

그래서 필자는 이번에 Planner를 v2로 아예 새로 만들어보기로 마음먹었다.

기존의 xml을 compose로 변경하고 몇 개의 기능을 변경, 추가, 삭제하기로 했다.

일단 삭제한 기능은 시간별로 일정을 추가하는 기능이다.

필자가 시간별 일정 추가 기능을 삭제한 이유는

시간마다 일정을 기록하는 것이 굳이 필요할까?

해서 과감히 버리기(?)로 했다

 

다음으로 추가하기로 한 기능은 일정 크게 카테고리를 넣고 progress를 넣어서

카테고리의 checkbox를 체크하면 progressbar의 progress가 증가하도록 하는 기능을 추가하고자 한다.

말로는 이해가 어려울 수 있으니 사진으로 보여주겠다.

출처: 노션 템플릿

노션 템플릿에 다음과 같은 기능이 있기에 영감을 얻어서 이번 v2에서 한 번 개발하고자 마음먹게 되었다.

 

마지막으로 변경할 기능은 생성한 일정의 통계 부분이다.

기존 v1의 로직으로는 완료한 일정, 전체 일정, 진행 중인 일정 총 3개로 현재 자신의 일정 진행 여부를 알 수 있었다.

v1 앱의 일부 화면

v2에서는 진행 중인 일정을 지우고, 총 일정 개수와 완료한 일정을 차트로 보이게 하고자 한다.

총 일정 개수와 완료한 일정 가지고 완료율(최대 100%)로 매주 자신이 일정을 얼마나 잘 지키는지 확인할 수 있게 만들겠다. 또한 매주 월요일 자정(오전 12시)이 되면 자신의 일정 완료율을 차트에 넣는 로직을 workmanager를 이용해 만들어볼 생각이다.)

 

이제 파이어베이스에 데이터 설계 작업을 해주도록 하겠다.

간단하게 메모장에 구상을 해보았다.

파이어베이스 데이터베이스 간단 설계

보는 방법을 간단히 설명해 주자면

key(Type): value Type 이런 형식으로 작성하였다.

콜론을 기준으로 왼쪽이 key이고 오른쪽이 value이다

totalPlanCount이랑 completedPlanCount를 초기화하는 이유는 매주 통계를 다시 잡으려면 초기화를 해야 한다고 생각했기 때문이다.

 

그러면 최종적으로 기능 정리를 하고 포스팅을 마무리 짓도록 하겠다.

 

3. 최종 기능

  • 로그인, 회원가입(구글)
  • 달력으로 오늘 일정 확인하는 기능
  • 일정 생성
  • 클릭한 날짜의 일정 조회 기능
  • 일정 통계(해당 주 기준의 현재 일정 완료율과 완료한 일정, 전체 일정을 보여줌)
  • 일정 완료를 확인 가능한 기능(매주 월요일 오전 12시에 데이터베이스에 업데이트하도록 구현하기)

추후에 기능 구현까지 모두 완료하면 기능이 추가될 수도 있겠다.

지금까지 긴 글을 읽어 주셔서 감사합니다 ^^.

728x90

댓글