iOS69 [Swift] Firestore 데이터는 불러오는데 마커가 사라진다면? (해결 방법 정리) 🧐 문제 상황Firebase Firestore에서 흡연 구역 데이터를 가져와 리스트에 표시하는 기능을 추가했는데, 리스트는 정상적으로 출력되지만 지도에 마커가 사라지는 문제 발생!🔍 증상앱 실행 후 초기 화면에서 마커가 정상적으로 표시됨리스트 화면에서 데이터를 확인 후, 다시 지도로 돌아오면 모든 마커가 사라짐smokingAreas.count를 확인하니 데이터는 정상적으로 있음 (즉, Firestore에서 데이터는 정상적으로 가져옴)하지만 지도에는 마커가 표시되지 않음🏷 원인 분석📌 1. Firestore 데이터는 정상적으로 불러옴먼저 SmokingAreaData.shared.smokingAreas를 출력해보니, Firestore에서 가져온 데이터는 정상적으로 존재함. 즉, 데이터가 사라진 것이 .. iOS/swift 2025. 2. 18. [흡구오디] 마커 터치 시 팝업으로 정보 표시해주기!를 하기 위한,,, 제곧내를 하기 위해선 아래의 흐름대로 개발 고고마커 터치 → touchHandler에서 터치된 마커의 ID(또는 위치) 가져오기Firestore에서 데이터 가져오기 → 해당 마커에 연결된 데이터 불러오기하단 팝업 뷰 업데이트 → 이미지, 제목, 설명 업데이트팝업 표시 → 애니메이션과 함께 화면에 보여주기팝업 닫기 → 사용자가 닫기 버튼을 누르거나 배경을 터치하면 사라지도록 처리 ... 인데 네이버 지도 예제 앱 실행하다가 대망함내 n시간아 일욜날 마저 하겠음 내일은 ㄱㅂ오빠의 결혼식날ㅊㅋ드려염 오늘 불금인데 퇴근 후 4시간 개발 달린 나 칭찬해!!! iOS/흡구오디 -> 어딨쥐 2025. 2. 14. [흡구오디] 흡연구역 등록하기 | 지도 위치 넘겨주기, 첫 화면으로 돌아가기 첫번째 지도 화면의 위도경도 값을 -> 다음 지도 화면으로 넘겨주기//잘못된 코드@IBAction func confirmLocationTapped(_ sender: UIButton) { let addSmokingAreaDataVC = AddSmokingAreaDataViewController() let currentCenter = naverMapView.mapView.cameraPosition.target addSmokingAreaDataVC.latitude = currentCenter.lat addSmokingAreaDataVC.longitude = currentCenter.lng guard let.. iOS/흡구오디 -> 어딨쥐 2025. 2. 14. [Swift] ListView Detail 표시하는 법 안녕하세요 오늘은 리스트뷰를 만들고 있습니다. 문제 상황: 리스트 뷰 - 셀에서 Detail이 나오지 않는 이슈스토리보드에서 설정도 했기 때문에 스토리보드에서는 잘 나오는데 왜 막상 앱을 실행하면 안보이는걸까??? 해결: 문제는 바로 아래와 같은 코드를 기본적으로 삽입해놔서..!// 셀 등록 (스토리보드에서 셀 설정이 안 되었을 경우 대비) tableView.register(UITableViewCell.self, forCellReuseIdentifier: "SmokingAreaCell") 이러면 UITabelViewCell을 사용하기 때문에 기본 스타일이 적용되어스토리보드의 설정대로 안나옴! 코드 삭제로 해결~참고로 테이블 뷰 셀도 아래와 같이 다른 스타일로 설정해놔야함! iOS/swift 2025. 2. 12. [Swift] MVC 디자인 패턴을 아라보자 MVC는 Model-View-Controller의 약자로, 앱을 세 가지 주요 부분으로 나누는 디자인 패턴Model: 앱의 데이터와 로직을 담당 ( 이 앱의 핵심적인 목적 ! )데이터 저장, 처리, 네트워크 요청 등을 맡고 있음View: 사용자 인터페이스(UI)를 담당 화면에 보여지는 모든 요소들(버튼, 텍스트 등)을 처리함Controller: Model과 View를 연결하는 역할사용자의 입력을 받아 Model을 업데이트하고, 업데이트된 데이터를 View에 반영함즉, Model은 데이터 처리, View는 화면 표시, Controller는 둘을 연결하는 역할을 함 MVC 패턴은 각 역할을 나누어 코드의 유지보수를 쉽게 해줌 요소 역할 비유Model데이터와 로직을 관리레시피: 요리의 재료와 방법을 정리한 책.. iOS/swift 2025. 2. 9. [iOS] xcode에 firebase 연결하기 안녕하세요? 오늘은 Firebase 연결하는 방법에 대해 포스팅해보겠습니다! 저는 역시나 첫 도전에 헤매서,,,한번 뒤집어 엎고 ㅋ두번째 도전만에 성공을 했답니다🙂↕️ 공식 문서 링크를 참조했습니다! 1단계: Firebase 프로젝트 만들기우선 파이어베이스 접속해서 콘솔 > 프로젝트를 만들어주세요. 2단계: Firebase에 앱 등록앱 추가로 이름 / 번들ID / 기타 선택 사항을 입력해주시고요.번들ID는 아래 경로에서 확인 가능!3단계: Firebase 구성 파일 추가폴더 안에 넣어야합니다! 4단계: 앱에 Firebase SDK 추가적용할 프로젝트를 고르고 Add Package 한 후 아래의 목록 중 본인이 원하시는 프로덕을 골라서 타겟 지정해주시면 됩니다 5단계: 앱에서 Firebase 초기화Ap.. iOS/swift 2025. 1. 22. [흡구오디] 새로운 흡연구역 추가 기능 구현하기 | 🙊 하이염요즘 현생이 바빠 포스팅을 등한시했네요그리고 앱 만드는거 넘 잼써서 자꾸 글 안쓰고 폭풍 업뎃 ㅎ 봐주세요 (포스팅을 등한시한 거 봐달라는 뜻,제발 내 글 좀 봐달라는 뜻) 아무튼 시작해볼게요 마지막 글은 추가 버튼 올리기 까지 작성했네요 글은 많이 못썼지만 그간 많은 업뎃을 했답니다 ㅋ 1. 흡연구역 추가 기능 구현초기 기획은 홈 화면에서 추가 버튼을 누르면 같은 화면 내에서 마커 추가하는 것이었지만,제목, 설명까지 추가하기 위해서는 다른 화면으로 아예 전환해서 추가 받는 것이 맞다고 생각해서! AddSmokeAreaViewController를 추가했어요 근데 님들하 저 고민이 있어요.흡연구역이 영어로 SmokeArea가 아니라 SmokingArea더라구요 ㅎ 이걸 어쩐담;;;대참사의 시작인가요... iOS/흡구오디 -> 어딨쥐 2025. 1. 19. [흡구오디] 내가 만들고 싶은 앱을 설명해봐요 aka 흡95디 안녕하세요 어쩌다보니까 제가 만들 앱 설명도 안하고 냅다 앱 개발기부터 썼더라구요? 제 블로그 아무도 안보는거 같긴한데 ..^^ 그래도 한 번 설명해볼게요~ 이 글을 읽고 계신 여러분 모두 감사합니다 🙇♀️ 제가 만들고자 하는 앱은 바로흡연 구역 공유 서비스 !!!1. 앱 아이디어흡연자들의 흡연 구역 공유 서비스2. 목적흡연구역을 찾기 힘든 문제 해결인터넷에 관련 정보가 부족함 → 많은 사람들이 금연구역에서 흡연하는 문제 발생흡연자들을 위한 흡연구역 정보 제공사용자 위치 기반 흡연구역 탐색 및 후기 공유3. 핵심 기능1) 위치 기반 흡연구역 탐색현재 위치 주변 흡연구역 표시 (지도 기반)거리 및 평점 필터링2) 흡연구역 정보 제공흡연구역 상세 정보 (주소, 후기, 사진)운영 시간 및 .. iOS/흡구오디 -> 어딨쥐 2024. 12. 26. [앱 만들기] 지도 위에 버튼 올리기 안녕하세요 메리크리스마스였답니다 오늘은 화면에 (+) 버튼을 만들어보았어요 목적은 ! 추후 사용자들이 흡연 구역을 스스로 추가할 수 있는장소 추가 버튼입니다. 제가 생각한 오늘의 과정 1. (+) 버튼을 추가한다끗 ^^ ...일줄 알았으나 어쩐지 버튼이 안보이는 이슈 발생... 이렇게 되면 버튼 뿐만 아니라 앞으로 추가할 모든 요소들이 안보이지 않겠어요? 저는 두번째 멘붕에 빠졌답니다.. 하지만 다행히 이유를 밝혀냄 그 이유는 바로...!!! - 네이버 지도 화면 설정 네이버 지도는 화면에 꽉차게. 전체화면으로 설정해놓았기 때문!!!naverMapView = NMFNaverMapView(frame: view.frame)기존 코드의 view.frame은 화면 전체를 의미한다네요. 그래서 이렇게 네이버 지도.. iOS/흡구오디 -> 어딨쥐 2024. 12. 26. [앱 만들기] 지도 첫 화면 지정 | 사용자 위치 권한 요청하고 처리하기 안냐세요다시금 프로젝트를 갈아엎고 자신감을 얻은 3g입니다. 오늘은 나름 많은 기능을 추가했어요! 그럼 고고싱1. 첫 화면 위치 지정컴퓨터로는 내 위치를 받아올 수가 없기 때문에 기기 테스트 전까지는 내 위치인 역삼역을 첫화면으로 나오게 지정했다. // 첫 화면 위도와 경도 지정 let initialLocation = NMGLatLng(lat: 37.4979, lng: 127.0365) // 카메라를 특정 위치로 지정 let cameraUpdate = NMFCameraUpdate(scrollTo: initialLocation) // 카메라를 이동시키는 메서드 naverMapView.mapView.moveCamera(cameraUp.. iOS/흡구오디 -> 어딨쥐 2024. 12. 24. [앱 만들기] 클론에 실패하여 다시 시작 그리고 복습 안녕하세요저의 첫번째 야심찬 레포지토리가 깃 이슈로 와장창 망하고다시 돌아온 23G입니다. (도대체 어디서 부터 잘못된건지...)모르기 때문에 다시 시작합니다. 덕분에 다시금 정리할 시간을 가졌네요 1. xcode 프로젝트를 만들고 2. 네이버 지도 api를 연결해줍니다. 저는 공식 문서와 블로그를 참고했어요 3. 깃에 올리기 제가 처음 깃 연동에 망한 이유는 바로 pod 때문.. 문서를 보니 pod(폴더)은 딱히 깃에 올리지 않는 것을 권장하더라고요 대신 podfile.lock은 버전 관리를 위해 올려주세요 다른 기기 혹은 폴더 경로에 클론해보시고(코코아팟 설치되어 있다는 가정 하에) 터미널에 아래 입력을 하시면pod install 새롭게 pod 폴더가 생성되고 정상 동작 됩니다! 여러분들은 저처럼 한.. iOS/흡구오디 -> 어딨쥐 2024. 12. 23. [앱 만들기] 위치 권한 승인에따른 상태 처리하기 안녕하세요 3G입니다.오늘은 어제 하던 것에 이어 3번 권한 승인에 따른 상태 처리를 완성했어요 솔직히,,, 왜 때문인지는 아직 잘 모르는 상태일단 복붙으로 성공 차차 공부해보도록 해요3. 권한 승인 상태 처리// 위치 권한 상태 변경 시 호출되는 메서드 func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { switch status { case .authorizedWhenInUse, .authorizedAlways: print("위치 권한 승인됨") locationManager.startUpdatin.. iOS/흡구오디 -> 어딨쥐 2024. 12. 17. 이전 1 2 3 4 5 6 다음