반응형

Programming/iOS 59

[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

[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

[iOS] Clean Architecture, 내 생각

Clean Architecture 아래 글의 원문은 엉클밥의 블로그입니다. 엉클밥 (로버트 C 마틴) - https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html 도움되는 Reference 갓제드 - https://zeddios.tistory.com/1065 곰튀김 - https://www.youtube.com/watch?v=jVyA5DV6r8w 클린 아키텍처에 대해 정리해보자 이 글은 유명한 로버트 C 마틴 (엉클밥)이 제안한 아키텍처이다. 엉클밥은 그동한 개발하면서 많은 아키텍처를 보았는데 이들 세부사항은 다르지만 서로 유사성을 가지고 있다. 아키텍처들의 동일한 목표는 관심사 분리이다. 이를 위해 소프트웨어를 계층(lay..

Programming/iOS 2021.10.09

[iOS] MVVM Pattern

MVVM Pattern MVVM M : Model → Data V : View (ViewController) → Presentation Logic 위치 VM : ViewModel → Business Logic 위치, UI 관련 코드는 존재하지 않음 (→ import UIKit ❌ ) 조금 풀어서 설명해보면 뷰 모델은 모델을 알지만 모델은 뷰 모델을 알지 못한다. 뷰는 뷰 모델을 알지만 뷰 모델은 뷰를 알지 못한다. → 결국, UI와 Presentation Logic, Business Logic을 분리하고자 하는 게 MVVM 아키텍처라 할 수 있다. 그래서 MVVM Pattern으로 작성된 프로그램은 명확한 테스트가 가능하다. 실제로 프로젝트에 적용해보니.. 최근 회사에서 프로젝트를 리팩토링할 수 있는 기..

Programming/iOS 2021.10.08

[iOS] MVC Pattern

MVC iOS의 MVC는 왜 문제가 되는가? 먼저, 일반적인 MVC 패턴을 살펴보자. M : Model V : View C : Controller 사용자가 화면을 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다. UI와 Business Logic을 분리할 수 있는 패턴이기 때문에 잘 사용한 MVC 패턴은 쉽게 변경할 수 있는 프로젝트가 된다. 그럼 Apple의 MVC를 한번 보자. 아래 링크로 이동하면 그림이 하나 나오는 데 위와 비슷한 그림이다. 정말 iOS에서 그림과 같은 개발이 가능할까? Model-View-Controller 현실 Apple's MVC (Mass..

Programming/iOS 2021.10.07
728x90
반응형