- Stepic은 산책하며 사진과 감정을 기록할 수 있는 산책 일기 앱입니다
- 산책했던 경로, 그날의 날씨, 찍었던 사진과 느낀 감정을 한눈에 확인하고 회고할 수 있습니다.
🗓️ 산책 캘린더
월별로 산책한 날을 감정 이모지로 표시되어 한눈에 돌아볼 수 있습니다.
📷 산책 중 기록
실시간 거리·시간 측정, 날씨 확인, 사진 촬영 및 위치 기반 기록 기능을 제공합니다.
📝 산책 결과 저장
감정, 제목, 내용을 입력하고, 경로 위에 찍은 사진들을 함께 저장할 수 있습니다.
📊 산책 통계
월별 감정 분포, 시간/거리에 대한 그래프를 통해 나만의 산책 패턴을 파악할 수 있습니다.
🔍 산책 기록 검색
기록한 산책을 제목, 지역, 내용으로 검색하거나 북마크로 모아볼 수 있습니다.
| 제목 |
|---|
![]() |
- 월별 캘린더에 산책한 날짜와 감정을 이모티콘을 통해 확인할 수 있습니다.
- 특정 날짜를 선택하면 사진, 산책 경로, 날씨, 이동 거리 등의 정보를 미리 볼 수 있습니다.
| 산책 화면 |
|---|
![]() |
- 산책이 시작되면 현재 날씨와 함께 실시간 이동 거리와 산책 시간을 확인할 수 있습니다.
- 사진 촬영이나 앨범에서 사진을 선택하여 산책 중인 순간을 남길 수 있습니다.
| 제목 |
|---|
![]() |
- 산책 종료 후 제목과 내용, 감정 상태, 사진을 기록할 수 있습니다.
- 지도에는 경로와 함께 사진이 찍힌 위치가 아이콘으로 표시됩니다.
- 기억하고 싶은 산책 기록은 북마크로 쉽게 관리할 수 있습니다.
| 제목 |
|---|
![]() |
- 월별 산책 시간, 거리, 횟수를 확인할 수 있으며 전체 누적 기록도 함께 확인할 수 있습니다.
- 감정, 산책 시간, 이동거리 정보를 그래프를 통해 나의 산책 패턴을 쉽게 이해할 수 있습니다.
| 제목 |
|---|
![]() |
- 전체 산책, 특정 달의 산책, 북마크한 산책들을 리스트로 모아 한눈에 볼 수 있는 화면입니다.
- 각 산책의 사진과 지도, 날씨, 감정, 제목과 내용을 쉽게 확인할 수 있습니다.
- 검색 기능을 통해 원하는 산책을 빠르게 찾을 수 있으며, 지역명, 제목, 내용으로 검색 가능합니다.
- GPS 측위 오차를 완화하기 위해 칼만 필터(Kalman Filter) 기반 좌표 보정 알고리즘을 적용하여 이동 경로 데이터를 실시간 필터링하는 구조 설계
- 적용 전 대비 이동 거리 측정 오차 약 86% 감소
allowsBackgroundLocationUpdates설정을 통해 백그라운드 상태에서도 위치 추적 유지 가능하도록 구성
CLLocationManagerDelegate권한 변경 콜백을 RxSwift 스트림으로 추상화하여 ViewModel에서 실시간 권한 상태 반영 가능하도록 구성
- Realm에는 이미지 파일 경로만 저장하고 실제 이미지는 FileManager에 저장하는 방식으로 데이터 정규화 및 트랜잭션 경량화
- 저장 공간 효율성 및 I/O 처리 안정성 확보를 위한 구조 분리 적용
- 앱 전반의 텍스트 리소스를
StringLiterals로 분리하고, i18n 구조 기반으로 다국어 확장이 가능한 l10n 설계 적용
-
라이트/다크 모드 전환에 대응하기 위해, 직접 정의한 컬러 에셋을 활용하여 디자인 톤과 명도 대비 유지
-
산책 종료 버튼은 실수로 눌리는 상황을 방지하기 위해 2초 이상 롱탭 시에만 동작하도록 구성
-
롱탭 중 버튼이 점차 커지는 애니메이션을 통한 시각적 피드백을 제공.
-
짧은 탭에는 토스트 메시지로 안내하여 사용자의 혼란을 줄이고 명확한 사용 흐름을 유도
- Swift Concurrency의
async let구문을 활용하여 주소 역지오코딩과 날씨 API 요청을 병렬 처리하여 응답 속도 단축 - 네트워크 대기 시간 최소화를 위한 비동기 최적화 구성
- 전역 DIContainer를 통해 객체 생성을 외부에서 관리하도록 구성함으로써, 구현체에 대한 직접적인 의존을 제거하고 추상화 계층에 의존하는 DIP원칙을 준수
- 각 모듈의 의존성은 인터페이스 기반으로 선언되며 런타임 시점에서 구체 인스턴스를 주입하여 유지보수성 극대화
- MVVM 기반 Input/Output 구조를 정의하여 데이터 흐름을 명확히 분리
- 일부 화면에 ReactorKit 도입
- 집중 개발 기간: 2025.03.26 ~ 2025.04.07
- 유지 보수 기간: 2025.04.07 ~ 진행중
- 개발인원: 1명




