-
Notifications
You must be signed in to change notification settings - Fork 6
MapKit
S004_강현준 edited this page Nov 29, 2021
·
2 revisions
MapKit
- Map과 관련된 API로는 카카오맵, 구글맵 등의 대안이 존재했습니다.
- 그 중에서 애플의 MapKit을 사용한 이유는 다음과 같습니다.
- 자체적인 라이브러리로, 높은 신뢰성과 주기적인 업데이트를 제공합니다.
- 횟수 제한이나 요금을 지불해야하는 다른 API와는 달리 무료입니다.
MapKit
- 사용자가 게시물을 추가하거나 관광명소를 추가하면 이를 Map 상에서 한번에 볼 수 있도록 Map이 보여지는 영역을 바꾸도록 구현할 필요가 있었습니다. 이 때
MKMapRect
를 활용하여 union을 통해 보여주고 싶은 영역을 간단히 계산할 수 있었습니다. - 사용자가 게시물이나 관광명소를 추가하면 이를 지도상에 핀 형태로 표시해줄 수 있습니다. 이를 구현하기 위해서
MKAnnotationView
를 활용하였습니다. 또한 핀을 클릭했을 때 게시물과 관광명소의 이미지를 같이 보여주기 위해detailCalloutAccessoryView
를 커스텀하여 URL을 통해 이미지를 불러와 원하는 형태로 보여주도록 만들었습니다. - 게시물과 관광명소에 대한
MKAnnotation
을 다른 class로 구현하여 MKAnnotation의 타입에 따라 맵에 2가지 종류의 핀이 등장할 수 있도록 구현하였습니다. - 사용자가 트래킹 기능을 키면 이동한 경로를 화면에 보여주기 위해
MKOverlay
를 활용하였습니다. 선분 형태로 트래킹 경로를 그려주기 위해MKPolyline
을 활용해 Overlay를 그려주었습니다. - 게시물에 위치정보를 지정해주기 위해서
MKLocalSearch
를 활용하였습니다. 이 때 자동완성 기능을 추가하여 사용자가 텍스트를 입력하면 연관성이 높은 지역들을 테이블뷰 형태로 보여주고 테이블 뷰에서 유저가 원하는 지역을 선택하면 해당 지역의위도 & 경도 & Title
값을 얻어와 게시물 데이터에 추가해주는 방식으로 구현하였습니다.
S004_강현준 | S012_김우재 | S033_유한준 | S047_이청수 |
---|---|---|---|
@mandeuk26 | @kimwj9792 | @hj56775 | @bestowing |
2주차
3주차
4주차
5주차
6주차
더보기
- CollectionView + Diffable & Compositional 사용 이유
- App Target iOS13+ 인 이유
- Storyboard를 채택한 이유
- 뒤로가기 버튼에 특정 액션을 넣으면 Swipe back이 되지 않는 문제
- 메모리 누수 발생 문제
- 맵뷰가 주기적으로 리프레쉬되는 문제
- UserLocation 화면을 빠져나와도 업데이트 해야하는 문제
- Compositional Layout의 estimated가 정상 동작하지 않는 문제
- Keyboard에 의해 TextField가 가려지는 문제
- 사용자가 권한을 거절했을때 생길 수 있는 문제
- 이미지를 불러올때 프레임 드랍이 발생하는 문제
- PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제
- 관광명소 검색화면에서 빠르게 스크롤 시 적합한 관광명소 이미지를 보여주지 못하는 문제
- 무한스크롤 캘린더 구현과 VoiceOver 적용시 문제