[iOS/Swift] MapKit - 위치 권한 설정을 구현해보자!
·
iOS/UIKit&SwiftUI
위치 권한 진행 방법을 결정 하려면 권한 부여 상태와 정확도 값을 모두 확인해야 한다.위치서비스o 권한 요청권한 허용사용자 정보 접근 가능추후 거부 (설정 → 옵션 끄기)ios 시스템 설정 유도권한 거부ios 시스템 설정 유도x 권한 없음alert → ios 시스템 설정 유도 CoreLocation importimport CoreLocation 위치 매니저 인스턴스 생성private let locationManager = CLLocationManager() delegate 연결locationManager.delegate = self 프로토콜 연결해주기extension MainMapViewController: CLLocationManagerDelegate { // 사용자의 위치를 성공적..
[iOS/Swift] Realm - 백업 및 복구 구현하기
·
iOS/UIKit&SwiftUI
💡 백업 / 복구개인 앱의 경우 개개인에게 백업 복구의 책임을 넘긴다.개발자 → 기능만 제공, 백업 알아서,,구글 드라이브, 드랍박스로 백업하기→ 써드파티 프로그램의 정책으로 유지보수 비용이 높다아이폰 파일 앱 사용하여 백업 복구하도록 하기 1. realm 파일 자체를 압축마이그레이션 대응이 잘 되어야 한다.사용자가 백업해두고 한참 뒤에 복구할 수 있기 때문realm 파일을 복구할 때는 복구 완료 후 앱을 껐다 켜야 함 2. json으로 압축하기다른 sql을 쓰더라도 대응하기 좋음🔎 realm 파일 압축하기백업하고자 하는 파일들의 경로 배열 생성var urlPaths = [URL]() 도큐먼트 위치guard let path = documentDirectoryPath() else { print("..
[iOS/Swift] Realm - Migration
·
iOS/UIKit&SwiftUI
💡 Migration컬럼 명을 변경하였기 때문에 일치하지 않는다는 런타임 오류가 발생한다.✅ 스키마 버전 체크func checkSchemaVersion() { do { let version = try schemaVersionAtURL(realm.configuration.fileURL!) print("schema version: \(version)") } catch { print(error) }} db 테이블 스키마에 대한 버전을 관리하기 위해 migration 작업을 해야한다.realm의 default schema 버전은 0migration 작업은 appDelegate에서 작업해야 한다. func application(_ application: UIApplication, didFi..
[iOS/Swift] Realm - 이미지 파일 저장하기
·
iOS/UIKit&SwiftUI
서버 통신 한 이미지 파일 저장하고 불러오기서버 통신을 통해 받은 이미지 url을 데이터 베이스에 저장한 후 꺼내와서 이미지를 로드하면 오류가 발생한다.데이터 베이스 내부에서 꺼내온 값을 글로벌로 접근하려고 하기 때문에 발생한 오류이다. DispatchQueue 외부에서 상수로 저장한 후 사용하면 오류가 나지 않는다.이미지를 하나하나 불러올 때 마다 네트워크 통신을 하게 되는데, 이미지의 용량이 크거나 로드할 데이터가 많다면 이미지 로드가 오래 걸릴 수 있다. ❓ 어떻게 해결해야 할까?이미지 구현을 셀 구성할 때 하지말고, 미리 UIImage 형식으로 변환 후 셀에 보여주는 것.하지만 이 또한 데이터가 여러개라면 변환하는 데에 오랜 시간이 걸리고,사용자가 보지 않고 넘겨버릴 이미지까지 모두 로드를 해야하..