- 프로젝트 기간: 2023년 10월 9일 ~ 10월 17일
- 프로젝트 팀원: Whales
🍀 소개
💻 실행 화면
🛠️ 사용 기술
🧨 트러블 슈팅
📚 참고 링크
: 내가 가본 찐 맛집만 골라골라!! 모임별로, 종류별로!
메인 화면 - 지도 뷰 | 마커 터치 |
---|---|
리스트 모드 | 항목 선택 시 |
---|---|
맛집 추가 |
---|
구현 내용 | 도구 |
---|---|
UI | SwiftUI |
아키텍쳐 | 클린 아키텍쳐 |
디자인패턴 | MVVM |
Map | Naver Map |
🚨 문제점
네이버 지도는 SwiftUI를 지원하지 않는다.
💡 해결방법
UIViewRepresentable 구현
struct MapView: UIViewRepresentable {
@ObservedObject var viewModel: YummyMainViewModel
func makeCoordinator() -> Coordinator {
Coordinator.shared
}
func makeUIView(context: Context) -> NMFNaverMapView { ... }
func updateUIView(_ uiView: NMFNaverMapView, context: Context) { }
}
🚨 문제점
우리는 주소지를 입력하지만 맵뷰에는 마커로 표시되어야 하고 그러려면 위도와 경도가 필요하다.
💡 해결방법
네이버가 제공하는 Geocoder 사용.
URL로 Geocoder를 이용하여 네트워킹으로 위도 경도 받아오기
- 🍎 Apple Docs: SwiftUI Tutorial
- GitHub: NaverMap 개발가이드
- 📚 StackOverflow: ViewModel Protocol
- 야곰닷넷: Test Double
- blog: 브랜치 생성 방식과 네이밍
- blog: Swift UI - Naver Map API 연동