오늘은 프로젝트 진행 중 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 |