Skip to content

samusesapple/KakaoMap_Clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 

Repository files navigation

KakaoMap_Clone

프로젝트 목적


카카오맵 클론 코딩을 통한 위치 기반 서비스 구현하기


사용 기술, 라이브러리 및 프레임워크


  • Core Location
  • Firebase (Firestore & Auth)
  • UserDefaults
  • KakaoMap API SDK (DaumMap)
  • MVVM
  • WKWebView
  • Alamofire
  • JGProgressHUD
  • Toast



Firestore 데이터 구조


image image


구현 기능


  • 카카오, 구글 로그인
  • 현재위치/지도 중심 장소 검색 및 거리순/정확도순 정렬
  • 키워드 선택하여 검색
  • 검색 기록으로 재검색 혹은 장소 정보 확인
  • 해당 장소로 가는 자동차 경로 확인
  • 해당 장소에 대한 카카오맵 평점 및 리뷰 확인
  • 로그인 유저에게 장소 즐겨찾기 기능 제공
  • 전화번호 제공 업체인 경우 업체 전화 기능



진행 기간


2023.05.23 ~ 6.15


시연 영상


ezgif-2-1c036475d4 ezgif-2-9cb88c6691 ezgif-2-e6e930e99e ezgif-1-117834d42c ezgif-1-a57f5fe2d0 ezgif-5-9c972ac2e1 ezgif-5-bc3add653b


문제해결 및 과정


문제 상황 1

currentLocationTrackingMode 사용 시 경고 발생
Authorization status 확인 후, currentLocationTrackingMode를 실행했음에도 불구하고 해당 경고 메세지가 지속적으로 발생
image image

해결 방법 및 과정

경고 메세지를 다시 읽어보니, 해당 코드의 실행시점에만 집중하고 UI 관련된 코드가 아니라는 경고 메세지 부분을 간과했었다.
mapView의 센터 위치를 잡는 코드를 제외한, mapView 설정하는 코드를 global queue에서 async하게 동작하도록 수정하여 문제를 해결할 수 있었다.
꼼꼼하게 경고 메세지를 확인하고 대처하는 것이 중요하다는 것을 다시 한번 깨달았다. image

문제 상황 2

지도 버튼을 누르면, 검색 결과를 지도 좌표에 찍어서 보여주는 view를 띄우기 + 목록 버튼 누르면, 검색 결과 화면 tableView 띄우기 구현 방법에 대한 고민

image

해결 방법 및 과정

맨 처음에는 tableView와 지도view를 담고, case문에 따라 다른 view를 보여주는 방식으로 구현할까 고민했다. 그러다 카카오맵 앱에 들어가서 두 버튼을 누르며 화면을 보니, 아주 미세하게 정렬 버튼의 위치가 달라지는 것을 발견했다.(아마 카카오측에서 발견하지 못한 아주 미세한 UI 오류인듯하다...)

해당 현상을 보고, 하단의 view를 교체하는 방식으로 구현이 되어있지 않음을 인지하고 ResultMapViewController를 생성하여 지도모양 버튼을 누르면 해당 화면을 띄우도록 UI를 구현했다.
image 캡처본1