반응형

Programming 183

[iOS] Location Service - 백그라운드에 있을 때 위치 이벤트 처리하기

백그라운드에 있을 때 위치 이벤트 처리하기 원문 링크 handling_location_events_in_the_background Capability 추가하기 백그라운드에서 위치 이벤트를 처리하려면 프로젝트의 Background Modes를 설정해야 한다. 프로젝트 > 앱 타겟 > Signing & Capabilities 탭으로 들어가서 왼쪽 상단의 +Capability 버튼을 누르고 Background Modes를 추가한다. Location updates 항목을 체크한다. 그리고 CLLocationManager 객체의 allowsBackgroundLocationUpdates property를 반드시 true로 설정한다. (하지않으면 에러 발생) 위치 이벤트 처리하기 앱이 백그라운드에 있는 동안 위치 업..

Programming/iOS 2021.10.30

[iOS] Location Service - 위치 권한에 대한 모든 것

위치 권한에 대한 모든것 위치 정보는 개인정보이기 때문에 앱에서 사용자의 위치를 얻기 위해선 권한이 있어야한다. 이것을 받으려면 어떻게 해야하는지 확인해보자. requesting_authorization_for_location_services choosing_the_location_services_authorization_to_request 내비게이션앱에서 백그라운드로 내리면 PIP처럼 작은 내비가 뜨는 기능을 만들어보고 싶어서 이 프로젝트를 시작했는데, 아무리 찾아도 안나왔다. 알고보니 iOS는 '다른 앱 위에 그리기' 기능을 제공하지 않는다고. 혹시 그 기능을 구현하고 싶은 분들이 계시다면 참고하기 바랍니다. iOS는 안드로이드 티맵/카카오T나 Facebook chat 처럼 다른 앱 위에 그리기 기능..

Programming/iOS 2021.10.30

[WidgetKit] 변경가능한 위젯 만들기 (Making a Configurable Widget)

Making a Configurable Widget 링크 https://developer.apple.com/documentation/widgetkit/making-a-configurable-widget 편집가능한 위젯 만들기 (가능한,,) 김종민 가능한 https://www.youtube.com/watch?v=Ek_gBKHDdPA 위젯은 Custom 속성을 제공할 수 있다. 아래와같이 바로가기할 수 있는 메뉴를 설정하거나 배송 조회 할 때 송장번호 입력 등을 할 수 있다. Siri 제안 및 Siri 바로 가기 와 동일한 메커니즘을 갖는다. 위젯에 configurable property 추가하는 법 Xcode project에 custom intent definition을 추가한다. IntentTimelin..

Programming/iOS 2021.10.30

[WidgetKit] Deep linking (LinkAPI, widgetURL modifier)

WidgetKit Deep linking 위젯은 애니메이션이나 커스텀 interaction이 없지만. 위젯에서 앱으로 deep linking할 수 있다. 위젯은 세가지 스타일이 있다. (.systemSmall, .systemMedium, .systemLarge) systemSmall은 위젯 하나가 큰 tap 영역이다. systemMedium과 systemLarge는 SwiftUI link API를 사용해서 위젯에 tap이 가능한 구역을 설정할 수 있다. Deep Linking을 할 수 있는 두가지 방법 링크 : https://developer.apple.com/documentation/widgetkit/creating-a-widget-extension - Respond to User Interaction..

Programming/iOS 2021.10.29

[WidgetKit] WidgetKit에 대해 알아보자 (구성요소, protocol 등)

WidgetKit WidgetKit에 대해 알아보자 참고 링크 WidgetKit - Apple Developer WWDC - WidgetKit Apple Developer Documentation Widgets Code-along, part 1: The adventure begins - WWDC 2020 - Videos - Apple Developer WidgetKit의 구성요소 Configuration : 위젯 식별하며, 위젯의 Content를 표시하면 SwiftUI View를 정의한다. Timeline Provider : 시간이 지남에 따라 위젯 View를 업데이트하는 프로세스를 주도한다. SwiftUI View : WidgetKit에서 위젯을 표시하는 데 사용하는 View이다. TimelineEnt..

Programming/iOS 2021.10.28

[Swift] 문법 다시보기 - 서브스크립트 (subscript)

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 서브스크립트 (subscript) 클래스, 구조체, 열거형에서 컬렉션, 리스트, 시퀀스 등 타입의 요소에 접근하는 단축 문법 별도의 설정자 또는 접근자 등의 메서드를 구현하지 않아도 인덱스를 통해 값을 설정하거나 가져올 수 있음 여러개의 서브스크립트를 구현할 수 있고 외부에서 사용할 때는 전달한 값의 타입을 유추하여 적절한 서브스크립트를 선택하여 실행 (→ 서브스크립트 중복 정의) 타입에 따라 여러 매개변수를 가질 수 있음, 입출력 매개변수는 가질 수 없음 문법 인스턴스 이름 뒤에 대괄호로 감싼 값을 써서 인스턴스 내부의 특정 값에 접근 subscript 키워드를 사용하여 정의 subscript(index: Int) -> Int { get..

Programming/Swift 2021.10.15

[Swift] 문법 다시보기 - 맵, 필터, 리듀스 (map, filter, reduce)

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다. 맵, 필터, 리듀스 맵 맵을 사용하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환한다 맵은 기존 데이터를 변형(transform)하는 데 많이 사용한다 필터 컨테이너 내부의 값을 걸러서 추출, 새로운 컨테이너에 값을 담아 반환한다, 기존 콘텐츠를 변형 X 리듀스 결합(combine)이라고 불려야 마땅한 기능, 컨테이너 내부의 콘텐츠를 하나로 합하는 기능 실행 두가지 형태로 구현, 첫 번째 리듀스는 클로저가 각 요소를 전달받아 연산한 후 다음 클로저 실행을 위해 반환하며 컨테이너를 순환하는 형태 func reduce(_ initialResult: Result, _ nextPartia..

Programming/Swift 2021.10.15

[iOS/Swift] 흔들어서 QR체크인 실행하기 파헤쳐보기 (motionShake)

흔들어서 QR체크인 실행하기 파헤쳐보기 코로나 때문에 식당, 공용 시설을 방문하게 되면 QR체크인을 해야하는데 카카오톡에서는 앱을 켜고 흔들면 QR체크인 화면이 뜨는 기능을 제공하고 있다. 이런 기능은 어떻게 만들 수 있을까? 예제 일단 코드로 먼저 시작해서 흔들기하면 네이버를 띄우는 예제를 해본다. 시뮬레이터에서 control+command+z 하면 Shake 모션을 할 수 있다. import UIKit import SafariServices class ViewController: UIViewController { @IBOutlet private weak var mainLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any..

Programming/iOS 2021.10.15
728x90
반응형