**맛팅(Matting)**은 네이버 지도 API와 Firebase를 활용하여
내 주변 맛집 정보를 탐색하고, 새로운 사람들과 약속을 잡고,
인스타그램 스타일의 피드와 팔로우 기능까지 제공하는
Android 플랫폼 맛집 커뮤니티 애플리케이션입니다.
-
🗺️ 위치 기반 맛집 탐색
- 네이버 지도 API를 통해 내 주변 맛집의 주소, 평점, 리뷰 등 상세 정보 제공
- 음식점을 모르는 사람들과 약속을 잡고 새로운 만남을 시작할 수 있는 약속 시스템
-
📝 리뷰 & 피드
- 인스타그램 피드처럼 리뷰를 올리고, 다양한 유저의 피드를 탐색 가능
- 각 리뷰는 사진, 평점, 텍스트 등 다양한 형태로 작성 가능
-
👤 프로필 & 팔로우
- 유저 프로필 페이지에서 팔로우/팔로잉 관리
- 다른 유저의 피드, 리뷰, 팔로워 정보를 확인
-
💬 커뮤니티 & 실시간 채팅
- 사용자 간 커뮤니티 게시판 및 실시간 채팅 지원
-
🔄 Firebase 실시간 데이터베이스 연동
- 모든 주요 데이터(리뷰, 피드, 팔로우/팔로잉, 프로필 등)가 Firebase와 실시간 동기화
-
🌟 맛집 리뷰 불러오기
- 네이버 지도 API와 연동된 음식점의 리뷰 데이터를 Firebase Firestore에서 실시간으로 조회 및 표시
- 리뷰 작성, 수정, 삭제, 실시간 갱신 기능 구현
-
🌟 피드 전체 보기
- 전체 피드 데이터를 Firebase에서 불러와 인스타그램 스타일의 리스트로 표시
- 실시간 데이터 반영 및 페이징 처리
-
🌟 프로필의 팔로우/팔로잉 기능
- 각 유저의 프로필에서 팔로우/팔로잉 관계를 Firebase에 저장 및 불러오기
- 팔로우/언팔로우 시 실시간 반영 및 상대방 프로필에도 자동 동기화
- 팔로워/팔로잉 수 실시간 카운트, 보안 규칙 적용
🔥 위의 기능들은 모두 Firebase Firestore, Storage, Auth 등과 연동하여
실시간 동기화와 데이터 무결성을 보장하며 구현하였습니다.
- 플랫폼: Android Studio
- 언어: Java
- 지도: 네이버 지도 API (Naver Map SDK)
- 실시간 데이터베이스: Firebase (Firestore, Storage, Auth)
- 빌드 시스템: Gradle
- SDK 버전:
- Compile SDK: 34
- Min SDK: 28
- Target SDK: 34
- 주요 라이브러리:
- Glide (이미지 처리)
- Firebase UI (실시간 데이터 바인딩)
- Firestore Denormalization: 팔로우/팔로잉 관계를 위한 배열 필드 구조
- Composite Index: 복합 조건 쿼리를 위한 커스텀 인덱스 적용
- Offline Persistence: 오프라인 환경에서도 데이터 접근 지원
- 실시간 UI 갱신:
addSnapshotListener로 데이터 변경 시 즉시 반영