기획 요구 사항 - mandol96/Navi GitHub Wiki
- 기획 의도
- 나비앱을 만들게 된 이유 : 사용자들이 기억하고 싶은 장소들을 손쉽게 저장하며, 나만 알고 있던 장소를 다른 사용자들에게 공유하는 목적을 가지는 앱을 만들고 싶었습니다.
- 타겟 고객 : 특별한 장소를 찾는 사용자들에게 좋습니다.
-
화면별 기능
-
메인 지도 화면 (Map)
- 핵심 기술 요소: Kakao Map SDK, 커스텀 마커, 클러스터링, Firebase Firestore 연동
- UI 구성: 지도 중심 좌표 설정, 사용자 현재 위치 표시, 커스텀 마커 표시, Floating Action Button으로 ‘장소 추가’ 전환
- 기술 스택: Kakao Map SDK 를 활용한 지도 활용, ViewModel을 활용하여 마커 동적 관리, Firebase Firestore로부터 장소 데이터 관리
- 특징: 지도 내 마커 클릭 시 상세 화면으로 이동, Firestore와 연동하여 커스텀 마커 표시
-
장소 추가 화면 (Add Spot)
- 핵심 기술 요소: 이미지 업로드, 유효성 검사, Firebase Storage, Form 상태 관리
- UI 구성: 장소명, 카테고리, 설명, 이미지 선택 필드, 모든 필드 유효성 검사 후에만 등록 버튼 활성화
- 기술 스택: MVVM패턴 적용, Firebase Storage를 통한 다중 이미지 업로드 및 다운로드 URL 저장, Coroutines + StateFlow를 통한 UI 상태 실시간 반영
- 특징: 이미지 선택 시 Android PhotoPicker 활용 (SDK 버전 대응 적용x), 업로드 완료 후 Firestore에 통합된 Spot 객체로 저장
-
게시글 목록 화면 (Post)
- 핵심 기술 요소: RecyclerView, Firebase, MVVM 구조
- UI 구성: 카테고리별 필터링 가능한 게시글 목록, RecyclerView 리스트
- 기술 스택: MVVM패턴 적용, Firestore에서 작성된 게시글 목록 실시간으로 반영, DiffUtil, ListAdapter 활용한 효율적 렌더링
- 특징: 사용자를 고려한 UI/UX 리스트 정렬 및 필터링 기능, 게시글 클릭 시 상세 화면으로 이동 연결
-
게시글 작성(Add Post)
- 핵심 기술 요소: 이미지 업로드, 유효성 검사, Firebase Storage, Form 상태 관리
- UI 구성: 게시글명, 카테고리, 설명, 이미지 선택 필드, 모든 필드 유효성 검사 후에만 등록 버튼 활성화
- 기술 스택: MVVM패턴 적용, Firebase Storage를 통한 다중 이미지 업로드 및 다운로드 URL 저장, Coroutines + StateFlow를 통한 UI 상태 실시간 반영
- 특징: 이미지 선택 시 Android PhotoPicker 활용 (SDK 버전 대응 적용x), 업로드 완료 후 Firestore에 통합된 Post 객체로 저장
-
게시글 상세(Add Post)
- 핵심 기술 요소: Glide 이미지 로딩, Firestore 연동, 좋아요 기능
- UI 구성: 선택한 장소의 이미지, 설명, 좋아요 유/무 표
- 기술 스택: Glide를 활용한 고해상도 이미지 로딩, Firestore의 document ID 기반 데이터 조회, 좋아요 확
- 특징: Firebase Firestore로부터 실시간 데이터 바인딩
-
-
일정 산정
Epic | Story | Task | 예상시간 | 실제시간 |
---|---|---|---|---|
장소 | API 연동 | Kakao REST API 연동 | 8h | 8h |
게시글 | 좋아요 | Firestore 활용 | 10h | 10h |
자세한 내용은 아래 링크를 확인해주세요.
https://docs.google.com/spreadsheets/d/1I9uKHtYkvSsZuO2O99-WazzFlOwDid2nZwHAaByokOY/edit?gid=0#gid=0