본문 바로가기

TIL

[TIL] MapKit 사용해서 위치 자동완성 검색 기능 구현

오늘은 프로젝트 진행 중 Mapkit을 사용해서 위치 자동완성 검색 기능을 구현해본 과정에 대해 포스팅해볼까 합니다.

Mapkit

우선 Mapkit에 대해 간단히 설명하자면 애플의 기본 지도 앱을 기반으로 지도에 관한 모든 작업을 처리할 수 있게 도와주는 지도 프레임워크입니다.

 

그리고 이 Mapkit 프레임워크에 오늘 구현할 기능의 핵심적인 역할을 해주는 객체가 바로 MKLocalSearchCompleter입니다. 

MKLocalSearchCompleter

공식 문서에 따르면 이 객체를 통해 쿼리(query)를 보내는 위치 자동완성 검색 기능을 구현할 수 있습니다.

 

구현

자 이제 실제로 구현해보록 하겠습니다.

기본적인 UI 구조는 UISearchBar에 검색어가 입력되면 그 결과가 UITableView에서 표시되도록 구현하였습니다.

 

그 다음은 기능 구현입니다.

 

우선 아래와 같이 MKLocalSearchCompleter에 대해 정의해줍니다.

 

그 다음 UISearchBar에서 입력되는 검색어를 MKLocalSearchCompleter  인스턴스의 쿼리로 할당해줍니다. 

(전 기본적으로 RxSwift 라이브러리를 기반으로 작성되었습니다.)

 

그러면 검색 결과 목록이 completerDidUpdateResults(_:)로 들어옵니다.

그리고 이 목록을 UITableView에 보내어 화면을 랜더링 시켜줍니다.

 

그러면 아래와 같은 결과를 얻으실 수 있습니다.

 

마무리

핵심을 잡고나니 생각보다 구현이 어렵지 않았던 것 같습니다.

끝까지 읽어주셔서 감사합니다!

 

참고 사이트

https://developer.apple.com/documentation/mapkit/ (애플 공식 문서 - Mapkit)

https://developer.apple.com/documentation/mapkit/mklocalsearchcompleter (애플 공식 문서 - MKLocalSearchCompleter)

https://roniruny.tistory.com/157 (코드 구현 참고)

'TIL' 카테고리의 다른 글

[TIL] Socket 통신 구현  (0) 2024.05.12
[TIL] Socket에 대한 간단 설명  (0) 2024.05.12
[TIL] Alamofire 로깅(Logging)  (0) 2024.05.09
[TIL] Combine VS RxSwift  (0) 2024.05.09
[TIL] Swift Concurrency 등장 배경  (0) 2024.05.08