본문 바로가기

Swift7

CoreLocation) 위치 데이터의 정확성에 대한 고찰 CoreLocation을 통해 위치 정보 데이터를 이용하다보면 위치의 정확성과 마주하게 된다. 난 분명 가만히 있는데 위치가 들쭉날쭉한다든지, 걷고 있는데 내 위치가 하천 위를 걷고 있다든지 실제 위치와 다르게 표현되는 경우가 있다. 이럴 경우 몇몇 설정을 통해 더 정확한 데이터를 얻을 수 있다. 하지만 정확한 데이터를 얻기 위해선 더 많은 에너지가 요구되는 법으로, 여기서 에너지는 배터리를 말할 수 있다. 정확한 데이터를 지속적으로 얻다보면 더 많은 배터리량을 소모하게 된다. 또한 물리적인 기기를 통해 데이터를 얻는게 아닌, GPS, Cellular, WIFI 데이터를 통해 위치 데이터를 얻는 것이다 보니 종종 잘못된 데이터를 얻기도 한다. 그래서 오늘 다룰 내용은 정확성에 관여하는 프로퍼티들을 소개하.. 2024. 2. 16.
CoreLocation) 문서 공부2 (CLLocationManager) 오늘 알아볼 CLLocationManager의 경우에는 CoreLocation의 핵심이라고도 볼 수 있다. CLLocationManager와 관련하여 많은 문서들이 있는데, 그 중에서도 CoreLocation의 핵심 기능을 알아보고, 위치정보를 받아오는 다양한 방법들을 공부해보려고 한다. CLLocationManager가 뭔데? 해석하자면 CLLocationManager 객체는 앱의 위치 관련 동작을 관리하는 중심 장소이다. location manager객체를 사용하여 위치 서비스를 구성, 시작 및 중지한다. 정리하면 CoreLocation의 위치 관련 API에 접근하기 위한 관리자인 셈이다. 관리자는 위치정보 측정 및 정확도 조절, 위치서비스 권한요청, 위치 측정에 필요한 기기의 사용 가능여부를 관리한.. 2024. 2. 6.
CoreLocation) 문서공부1 (현재 위치 받기, CLLocation 클래스 파헤치기) CoreLocation의 위치정보를 기반으로 하는 앱을 만들고 있다. 문서에서 필요한 정보만 보면서 앱을 만들었는데, 완성이 다가올 수록 부족한 부분이 보였다. 그 동안 CoreLocation이라는 프레임워크를 정복하지 못했다는 찜찜함이 있었는데, 이번 기회를 통해 문서를 찬찬히 읽어나가보려고 한다. 시작은 CoreLocation이 무엇인지, 그리고 주 목적인 현재 위치정보를 요청하는 것이다. CoreLocation이 뭐야? CoreLocation은 위치정보와 그와 관련된 방향, 고도, 속도 등을 제공해주는 애플의 프레임워크다. CoreLocation으로 뭘 할 수 있는데? 정리하자면 내비게이션, 주변의 특정 지역 확인, 지도에 위치 표시, 타인과 위치 공유, 동선 추적 등의 기능을 돕는 API를 제공해.. 2024. 2. 1.
CoreLocation) 위치정보 이용 관련 시뮬레이터 활용방법 CoreLocation의 핵심은 위치 정보이다. 위치 정보를 테스트하기 위해 시뮬레이터에 구동했는데 나의 물리적 위치가 아닌 바다 한복판이라든지, 미국 어딘가를 보여줄 수도 있다. 혹은 단순한 위치 정보 뿐만 내비게이션이나 동선 추적 등 속도나 거리 정보 등을 사용하기 위해 테스트가 필요할 때도 있다. 매번 실 기기에 앱을 구동시켜서 확인하기도 쉽지 않다. 이럴 때 사용하는 시뮬레이터 설정이 있다. Simulator의 설정 - Features - Location 탭이 있다. 정적인 위치 정보를 테스트하는 방법 Custom Location 클릭 후 특정 좌표를 입력하면 시뮬레이터의 위치로 설정된다. 아래는 합정역의 좌표를 입력했을 때 시뮬레이터 상에 표시되는 지도이다. 동적인 위치 정보를 테스트하는 방법 .. 2024. 2. 1.
CoreLocation) 위치정보 이용에 필요한 승인 권한 요청(사용중, 항상) CoreLocation을 사용하며 위치정보를 이용하기 위해 권한이 필요하다. 애플의 문서에 따르면 위치 데이터는 민감하고 앱 사용자의 개인정보 보호에 영향을 미치기 때문에 섬세한 요청 방식을 요구한다. (앱을 사용하면서 위치정보가 필요한 바로 그 시점에 권한을 요청하기를 권유하고 있다. 예를 들어 내비게이션 앱을 키자마자가 아닌, 위치 정보가 필요한 시점) 1. Access Level 앱이 위치정보에 접근하는 수준에는 두 가지가 있다. 사용중: 앱을 사용하는 동안만 허용 항상: 앱을 사용하지 않을 때도 허용 사용 중: When In Use 사용 중은 앱을 사용하는 동안에 필요한 위치 정보에 대한 권한이다. 한 번 허용은 앱을 켤 때 마다 권한을 받는 임시허용이다. 앱을 사용하는 동안 허용은 한 번 받아두.. 2024. 2. 1.
Realm - Updating UITableView 관련 이슈 및 해결(Xcode 이슈) / 이게 되네.. Realm을 프로젝트에 적용하기 위해, 연습용 프로젝트를 만들었다. Realm의 문서를 보며 데이터 베이스와 CRUD를 뒤적거리며 코드를 구현해보았다. 저장된 데이터를 리셋(deleteAll)하는 기능을 테스트하던 도중, 오류가 발생했다. 테이블뷰가 UI를 업데이트하는 과정에서 오류가 발생하는 것이었다. 데이터 제거 및 UI 업데이트 과정 data delete -> data changes 발생 -> notification token -> change에 따른 UI 업데이트 처리 func addChangeListener(_ tableView: UITableView?) { realmManager.notificationToken = myData.observe { changes in if let tableView.. 2024. 1. 16.

TOP

Designed by 티스토리