[개인 프로젝트 스노우맨] 프로토타입 개발
프로젝트 기획
이번 겨울에도 어김없이 눈이 내렸다.
달라진 점이 있다면 어릴적엔 눈사람을 만들고 녹지 않길 바라며 냉동고에 보관했던 것이었다.
그래서 이틀동안 간단하게 만들어보았다.
눈사람 어플리케이션~~
그날의 걸음 수에 따라 눈사람 크기가 결정되고 냉동고에 눈사람을 저장할 수 있는 어플리케이션이다.
WeatherKit로 날씨를 불러오고 HealthKit로 걸음수를 불러오고 CoreLocation으로 현재위치를 불러왔다.
그리고 CloudKit에 그날그날 걸음수를 기록해 냉장고에 저장된 눈사람 정보를 불러오는 식으로 만들어보았다.
처음 기획의도는 포켓몬GO 처럼 걸을때마다 걸음수를 기록해서 눈사람 몸통이 굴러가는 모션을 주려고 했으나
너무 빠른 주기로 걸음수를 확인하다보니 CPU 사용량이 너무 커졌고, 정확성또한 매우 떨어졌다.
추가로 백엔드를 거치지않고 24시간이 지날떄마다 저장되는 방식으로 하는것도 불가능했다.
개발 방향
크게 두가지로 나뉜다.
- 실시간 걸음수를 체크해서 눈덩이가 굴러가는 액션 기능 개발
- 간단하게 건강앱의 걸음수를 불러와 화면에 표시
1번 방향
다음과 같은 장점이 있다.
1. 하루단위나 특정시간으로 체크하는것이 아니라 목표 걸음수를 지정해주고 사용자가 달성할 수 있는 성취감을 제공할 수 있다.
2. 기존 건강앱과 날씨앱처럼 정보확인에서 끝나는게 아니라 걸음을 유도하는 운동앱으로 발전가능성이 있다.
다음과 같은 단점이 있다.
1. 포그라운드 뿐만아니라 백그라운드에서도 걸음수를 측정해야하기 때문애 CPU 사용량이 너무나 커진다.
2. CoreMotion뿐만 아닌 Unity 하이브리드로 사용하는것도 고려해야한다.
2번 방향
다음과 같은 장점이 있다.
1. CPU에 부담이 사라진다.
2. 일기 기능을 추가해 다이어리앱으로 발전 할 수 있다.
3. 앱의 특별함보다 상태관리나 테스트코드 작성에 시간을 더 쏟을 수 있다.
다음과 같은 단점이 있다.
1. 건강앱과 날씨앱의 기능을 일부분 따왔을 뿐 특별히 다른점이 없다.
장단점을 비교해보았을떄 앱의 특별함으로써는 1번 방향
기술 스택을 갈고 닦는 면으로써는 2번 방향이 더 낫지만
이전 돌키우기 프로젝트에서 TCA 구조를 공부하며 테스트코드와 상태관리에는 어느정도 익숙해진 상태라
1번 방향으로 진행해보기로 정했다.
1번 개발 방향의 가장 큰 문제인 Unity를 함께 사용하여 포그라운드 백그라운드 모두 동작하면서도 CPU 사용량이 적당하게 나오는지 확인을 해봐야 할 것 같다.