범주 | 기술 | 설명 |
---|---|---|
언어 | Kotlin | 안드로이드 공식 언어. 간결하고 안전하며 현대적 문법 제공. Jetpack과 호환성 우수. |
UI | XML | 기존 레이아웃 방식. |
지도 | Google Maps SDK for Android | 지도 렌더링, 마커 표시, 사용자 위치 추적 등 지도 관련 기능 제공. 커스터마이징 가능. |
위치 기능 | FusedLocationProviderClient | 정확하고 효율적인 위치 추적 API. 배터리 절약 및 실시간 위치 제공. |
아키텍처 | MVVM (Model-View-ViewModel) | 코드 분리 및 유지보수 용이. ViewModel에서 UI 상태 관리. |
LiveData / StateFlow | UI와 데이터 상태를 관찰하고 반응형으로 처리할 수 있는 데이터 스트림. | |
로컬 DB | Room | SQLite 기반 ORM. 간단하게 DB 구축 가능. Entity/DAO/Database로 구성. |
이미지 처리 | Glide | 사진을 효율적으로 로딩하고 캐싱. |
데이터 저장 | SharedPreferences | 간단한 키-값 설정 저장에 적합. (리워드 해금 여부 등) |
이미지 저장 위치 | 내부 저장소 | 사용자 개인 사진 저장. 외부 접근 차단 가능. 앱 삭제 시 자동 제거. |
항목 | 내용 |
---|---|
기능 | 사용자가 위치 기반으로 지도에 핀 추가 |
입력 항목 | 위치 선택, 제목, 설명, 사진, 태그 |
출력 | 지도에 마커 생성 (종류별 색상 구분) |
특수 기능 | 사용자 위치 기반으로 ‘갔다 온 곳’ 방문 인증 |
저장 방식 | Room DB (로컬) |
항목 | 내용 |
---|---|
기능 개요 | 사용자가 미션 장소에 직접 방문하여 위치 인증을 하면 경험치를 획득함. 일정 횟수 이상 인증 시 레벨업. |
미션 종류 | 사전에 등록된 특정 장소 (예: 지역 카페, 문화공간 등) 또는 사용자가 등록한 장소 방문 미션 |
인증 방식 | 사용자가 해당 장소 반경(30m) 내 도달 시 인증 가능→ 위치 기반 인증 처리 (FusedLocationProviderClient 활용) |
경험치 시스템 | 미션 1건 인증 시 고정 경험치 획득획득 경험치 누적으로 레벨 상승 |
레벨 시스템 | 최대 레벨: 10레벨 |
UI 구성 | 카드 뷰 형태의 미션 목록 + 완료 여부/레벨 표시지도에 미션 장소 마커로 표시 가능 |
보상 요소 | 레벨업 시 칭호 등 해금 가능보상은 마이 페이지에서 확인 가능 |
데이터 저장 | 인증 내역, 경험치, 레벨 등은 SpotEntity + UserPrefsManager 에 저장 (Room DB, SharedPreferences사용) |
기능 | 내용 |
---|---|
포인트 획득 | 미션 완료, 장소 등록 시 포인트 지급 |
레벨 시스템 | 누적 경험치에 따라 자동 레벨 상승 (Lv.1~Lv.10) |
시각적 효과 | 레벨에 따라 제공되는 뱃지 수집 |
저장 방식 | SharedPreferences (리워드 상태) |
항목 | 내용 |
---|---|
기능 | 내가 등록한 장소 및 미션 기록을 다양한 뷰(지도/카드)로 확인 |
세부 기능 | 수정/삭제, 상세 정보 보기, 지도/카드 뷰 전환 가능 |
지도뷰/카드뷰 | 장소별 사진, 제목, 날짜(방문 인증 시), 설명을 포함한 카드/지도 마커 형태 |
뱃지(리워드) | 수집한 뱃지와 레벨(칭호 부여) 확인 가능 |
정렬/필터 | 카테고리, 선호/비선호, 방문 여부 필터 가능 |
데이터 | Room DB 기반, ViewModel로 상태 연동 |