KPUCE2021SP / hummingbird

커밋할수록 자라나는 귀여운 병아리들과 꾸준한 개발습관 들이기 어플 PeepPeep
MIT License
9 stars 1 forks source link

커밋 기록에 따른 병아리 레벨업 구현 #28

Open hhhminme opened 3 years ago

hhhminme commented 3 years ago

레벨업은 병아리 졸업과 관련이 있습니다. 좀 더 개발해보고 스펙과 시나리오를 따져봤습니다. 결과 해당 어플에서 db 아예 뺄 예정입니다. db를 다룰 이유가 없습니다. 그 이유는 db를 사용하려고 했던 이유는 데이터를 저장해놓고 api의 호출을 줄이고 뷰간 데이터를 자유롭게 이용하기 위함이였습니다.

커밋 정보는 매번 어플을 킬때마다 불러와야 합니다. 그럼 그럴때마다 경험치와 레벨업을 확인해야하는데 굳이 db에 저장할 필요가 없다고 판단 했습니다. 안전성이나 재사용성면에서 데이터가 자칫 더러워 질 순 있겠는데 굳이 db 쓸 이유가 없습니다. 과거 데이터를 db에 넣어두고 튜플값이 있으면 api호출 안하고 db에서 접근하면 되는데 서브 쓰레드에서 달력 ui 작업를 할려니 배보다 배꼽이 커질 것 같아요. 스펙 상 그때그때 필요한 데이터를 변수에 넣어서 써도 상관 없겠어요. 졸업 기능도 마찬가지 입니다. api 호출에 따라 intent로 작업을 하거나 CollectionData.kt를 entity로 사용하여 어댑터에 연결해서 쓰면 됩니다.(현재는 room db의 user entity가 어댑터에 연결되어 있음)

  1. 커밋 횟수 1 회 할경우 경험치 1 을 얻는다. 단, 경험치는 하루에 최대 2를 얻을 수 있다. 이때 경험치는 home_fragment의 프로그레스 바에 표시되어야 한다.

  2. 레벨업은 레벨 당 최대 경험치를 채우면 실행 됩니다. level 1 -> max exp는 2 level 2 -> max exp는 4 level 3 -> max exp는 8

  3. level 3이 될 시 졸업이 됩니다. 현재 병아리는 컬렉션으로 이동합니다. 만약 컬렉션에 병아리가 있다면 기존 리사이클러 아이템의 병아리 count만 증가해주고, 병아리가 없다면 리사이클러 뷰에 새로 리사이클러 아이템이 추가됩니다.

  4. 졸업을 하고 나면 새로운 병아리가 와야합니다. 이때 병아리는 랜덤으로 받아야 하지만 졸업 기능도 급하기 때문에 일단은 새로운 병아리를 받는 것으로 작업하겠습니다.