기획 요구 사항 - mandol96/Navi GitHub Wiki

  1. 기획 의도
  • 나비앱을 만들게 된 이유 : 사용자들이 기억하고 싶은 장소들을 손쉽게 저장하며, 나만 알고 있던 장소를 다른 사용자들에게 공유하는 목적을 가지는 앱을 만들고 싶었습니다.
  • 타겟 고객 : 특별한 장소를 찾는 사용자들에게 좋습니다.
  1. 화면별 기능

    • 메인 지도 화면 (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로부터 실시간 데이터 바인딩
  2. 일정 산정

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