- 한번의 터치로 근처의 가까운 카페들을 알아볼 수 있습니다!
- 해당 카페까지의 경로와 남은 거리도 제공합니다!
- 카페 탐색 버튼을 누르면 자신의 근처에 있는 카페들을 가까운 순으로 보여줍니다.
- 리스팅된 카페를 클릭하면 현재 위치에서 해당 카페까지의 거리와 경로를 지도에 표시합니다.
- 지도에 표시된 경로와 거리는 사용자가 이동함에 따라 업데이트 됩니다.
- UIKit
- SnapKit
- RxSwift
- MVVM
- MapKit
- NaverSearch API
- 처음에는 국내에서 가장 최적화가 잘되어 있다고 생각하는 네이버 MAP을 이용하여 기능을 구성하려 했으나,
프로젝트 진행도중 9/30일 경에 내년부터는 유료화가 된다는 공지가 올라와 현실적인 지속성을 위해 다른 방법을 강구하기로 하였다. - 이로 인해 찾게된 방법이 현재 주소를 Mapkit을 이용하여 얻고, 해당 주소와 단어를 적절히 조합하여 Naver search api를 통해 기능을 구현하는 것 이었다.
- 위의 방안으로 기능을 구성하고 보니, 두가지의 문제점이 있었다. ( 1. 정보의 부적확성 2. 한번에 나오는 쿼리 결과문의 제한 (5개) )
- 따라서 또 다시 다른 방법을 강구하였고 정확성이 높고 애플 공식 라이브러리인 MapKit을 채택하게 되었다.
위의 과정을 거치면서 가장 크게 다가온점은 MVVM의 구조가 가지고 있는 장점이었다.
만약 MVC 패턴으로 프로젝트를 구성하였으면, 중간에 서치 로직을 바꾸는 일은 정말 고된일이 되었을 것이다.
다행히도 네트워크 통신이 필요할 것 같아 뷰와 데이터가 분리된 MVVM을 처음부터 선택하였는데 올바른 선택이 되었다.
물론 완벽한 MVVM은 아니지만 왜 그렇게 MVVM이 많이 사용되는 지를 데이터나 구조의 측면에서 느낄수 있었다.
더불어 이번에 RxSwift도 같이 처음 써봤는데, 기존에 개인 프로젝트를 진행하면서 정말 궁금하고
처리해버리고 싶었던 비동기적 데이터 관리에 관한 의문을 해소할 수 있었다. 프로젝트가 끝난지 얼마안되서 그런지는 몰라도
어떤 기능이더라도 코드적으로 예쁘지는 않을지언정 기능적인 구현을 할 수 있을것 같은 자신감이 어느정도 생겼다.