안녕하세요, 1인 개발하고 있습니다.
요즘 달리기가 취미인데, 기존의 유명 앱들에는 제가 필요로 하는 기능이 없어서 직접 만들어 보았습니다.
플러터(Flutter)로 개발했으며, 초기 컨셉 검증용 버전은 약 2주 만에 완성했지만, 이를 다듬고 출시할 수준으로 끌어올리는 데는 3~4개월 정도가 걸렸습니다.
현재 Apple과 Google 스토어에 출시하여 다운로드가 가능하며 웹사이트를 방문하시어 각 스토어 링크를 누르면 편리하게 받을 수 있습니다.
서비스 소개
Pace Teller(페이스 텔러)는 달리는 동안 실시간으로 10km, 하프코스, 풀코스 마라톤의 예상 기록을 알려주는 앱입니다.
왜 만들었나
- '매일 5~6km 달리기 도전'을 하던 중, 마지막 속도로 계속 달릴 경우 10km 예상 기록이 얼마나 될지 문득 궁금해졌습니다.
- 달리기 앱에 평균 속도를 확인할 수 있는 기능은 있지만, 마지막 컨디션에 따라 실제 기록을 머릿속으로 예상하는것은 쉽지 않았습니다.
- 달리기를 자주 하는 사람이라면 대략적인 예측이 가능하겠지만, 대략의 예상 기록을 계산하기 힘든 사람들을 위해 이 앱을 개발하게 되었습니다.
- 실제 달리면서 예상 기록을 듣다보니, 목표에 대한 동기부여와 페이스 다운 등의 컨디션 조절에 큰 도움이 되고 있습니다.
- 저 혼자 사용하려고 만들긴 했지만, 써보니 너무 좋아서 용기내어 Show GN에 글을 씁니다.
예상 기록 계산 방식
- 지금까지 달린 거리는 평균 속도로 계산하고, 남은 거리는 최근 20% 구간의 페이스를 기준으로 계산하여 실시간으로 예상 기록을 제공합니다.
- 또한, 음성(TTS) 안내를 통해 기록을 들을 수 있게 했습니다.
- 다만 이 계산 방식의 한계점은 마지막 페이스가 좋으면 예상 기록이 과도하게 좋아질 수 있다는 점입니다.
- 현재는 컨디션이 좋아지는 페이스나 나빠지는 페이스를 고려하지 않았지만, 추후 운동 종료 후 사용자에게 컨디션 상태를 묻는 질문을 통해 보정할 계획입니다.
서비스 특징
- 기본적인 러닝 앱에서 제공하는 대부분의 지표를 기록할 수 있습니다.
- 운동별 필터와 달력 보기, 통계 보기 기능을 제공합니다.
- GPX 파일 가져오기/내보내기 기능을 지원합니다. (이 앱의 기록을 다른 서비스로 가져가기 편하게 해놨습니다)
- Strava 데이터를 가져오거나, Strava로 (자동) 전송하는 기능이 있습니다.
- RunKeeper 처럼 GPX를 모두 export 해주는 서비스는 파일을 받아 압축하여 가져오면 한 번에 데이터가 입력됩니다.
- 갤럭시 기기 사용자는 헬스 데이터를 가져와 심박수를 운동 데이터와 매핑할 수 있습니다.
- 앱 내 SQLite DB를 활용하며, 외부 서버에 데이터를 저장하지 않아 빠르게 작동합니다.
- Open Weather Map API 키를 개인이 입력하면 날씨 정보도 자동으로 기록됩니다(다만 정확도는 다소 떨어질 수 있습니다).
- 영어/한글을 지원합니다.
향후 계획하는 기능
- 워치에서 작동하는 앱을 만들어 보고 싶습니다.
- 특히 풀코스 예상기록은 가민을 사용하는 분들이 많이 궁금해 하신다하여 하게 되면 가민앱을 만들어야 할 것 같습니다.
- 지금은 워치앱도 실행하고, 이 앱도 실행하여 2개를 동시에 누르며 달리고 있습니다.
- 케이던스 및 페이스 차트 관련 미비한 점들을 개선할 예정입니다.
- 데이터를 서버에 저장하는 기능은 아직 고민 중이지만, 개발할 가능성이 높습니다. 현재는 GPX 파일로 내보내지 않으면 앱 삭제 시 데이터가 모두 사라질 수 있기 때문입니다. 단, Strava로 자동 전송 설정을 해두면 Strava에 데이터가 저장되니 안심할 수 있습니다.
- 커뮤니티나 자랑하기 같은 소셜 기능 추가도 고려 중입니다. 다만 이미 Strava가 잘 되어 있어 굳이 추가해야 할지 고민하고 있습니다.
- 달리기 코스를 'Route'화 하여, 이동네는 어떤 코스가 좋은가.. 라는 서비스도 이미 다른 엡에서 하고 있어서 이 역시 고민중입니다.
개발후기
- 개발하면서 느낀 점은,,, "와 이런 앱이 1인 개발로, 이렇게 빨리 가능하다고??" 라는 생각이 들면서, 다들 체험하셨을 'AI 활용 개발'의 놀라움을 저도 느낀 서비스였습니다.
- iOS, Android 앱들을 native로 둘 다 만들다 보면 한개 완성하고 나머지 한개 만들때 현타가 자주 왔습니다.
- 그래서 플러터로 시작을 해봤는데 일단 이런 '정신적인 스트레스' 면에서는 대 만족입니다.
- 다만, 패키지와 라이브러리들이 자주 업그레이드 되며, 의존성 문제들이 생겨 고생을 많이 했는데 앞으로도 걱정입니다.
- GPS가 뱉어주는 속도 같은 데이터가 완벽하지 않아서 여러 방법으로 계산식의 정확도를 높이다 보니 완성도 올리는데 시간이 많이 걸렸습니다.
- 당연히 AI의 도움을 많이 받아서 빙빙 도는 경우도 많이 있었지만, 안 쓸 수 없었습니다.
- 언제나 양쪽 스토어에 정기결제를 붙이는 작업은 힘듭니다.