본문 바로가기

iOS 앱 개발

(34)
137. Actionable Notification Actionable Notification 사용자는 Notification이 도착했을 때 몇 가지 옵션 중 하나를 선택할 수 있다. Normal Dismiss Action 무시해서 자동으로 사라지게 하거나 미리보기 상태에서 Swipe로 직접 사라지게 할 수 있다. Custom Dismiss Action Notification Center의 닫기 버튼을 눌러 사라지게 할 수 있다. Default Action Banner를 터치해 앱을 실행할 수 있다. Custom Action 직접 Custom Action을 추가할 수 있고, Banner 아래쪽에 버튼 형태로 추가된다. 이를 선택하면 연관된 코드가 Background에서 실행된다. Default Action과는 달리 앱이 Forground에서 실행되지는 않..
135 ~ 136. Local Notification, Custom Notification Sound & Attachment Local Notification 캘린더 앱에는 알림을 설정할 수 있는 기능이 존재한다. 알림을 받고 싶은 때를 선택하면 해당 시점에 알림을 표시한다. 해당 기능은 Local Notification의 대표적인 기능이다. iOS는 User Notification Center를 통해 Local Notification을 관리한다. 앱에서 Notification을 예약하면 해당 시점에 Notification을 전달한다. 앱이 실행 중이라면 앱으로 전달하고, 실행 중이 아니라면 직접 배너를 통해 표시한다. Notification의 구현은 크게 세 단계로 나눌 수 있다. Local Notification 권한 요청하기 사용자가 직접 허용한 경우에만 Local Notification을 예약하고 받을 수 있다. Not..
133 ~ 134. Notification Center and Notification Notification Overview Notification은 이벤트가 발생했음을 알리는 도구이다. 예를 들어 문자가 오면 알림음과 함께 알림이 표시된다. 사용자는 Notification의 동작이나 종류에 대해 생각할 필요가 없지만 개발자는 이들의 차이와 구현 방식의 차이를 정확히 알아야 한다. iOS 앱 개발자 사용할 수 있는 Notification은 3가지이다. Notification 아무런 접두어가 없는 Notification이다. 하나의 프로그램 내에서 객체들이 주고받는 메시지를 의미한다. 특정 이벤트에 대한 Observer를 등록하고, 이벤트가 Broadcasting 되면 원하는 코드를 실행하는 방식으로 구현한다. Local Notification 시계 알람처럼 지정된 시간에 사용자에게 알림을..
130 ~ 132. Custom Presentation, Custom Transition and Interactive Transition Custom Presentation Custom Presentation을 구현하기 위해서 Presentation에 대해 조금 자세히 알 필요가 있다. UI를 구성하는 기능은 View Controller가 담당한다. View Controller에 화면을 표시하는 것은 Presentation Controller가 담당한다. 이전까지 언급한 Builtin Presentation을 사용하면 Presentation Controller가 자동으로 생성된다. 해당 Controller는 Presented View Controller가 Dismiss 되기 전까지 View Controller를 관리한다. Presentation Controller는 Presented View Controller를 표시할 Frame을 설정하..
128 ~ 129. View Transition and View Controller Presentation View Transition // // ViewTransitionViewController.swift // Transition Practice // // Created by Martin.Q on 2021/11/16. // import UIKit class ViewTransitionViewController: UIViewController { @IBOutlet weak var containerView: UIView! @IBOutlet weak var pinkView: UIView! @IBOutlet weak var greenView: UIView! @IBAction func startTransition(_ sender: Any) { } override func viewDidLoad() { super.vie..
124 ~ 127. UIVIew Animation, Spring Animation & Keyframe Animation, Property Animator and Motion Effect UIView Animation UIView 클래스는 Animation 구현에 필요한 API를 Type Method 방식으로 제공한다. 해당 메서드를 사용해서 비교적 간단하게 고품질의 Animation을 구현할 수 있다. 다룰 Animation들은 Block 기반의 API로, Animation Block에서 원하는 최종 값을 설정하면 UIKit이 현재 값에서 최종 값으로 전환되는 Animation을 실행한다. 다음의 항목들이 UIKit이 Animation을 지원하는 항목들이다. frame bounds center transform alpha backgroundColor // // SimpleUIViewAnimationViewController.swift // Animation Practice // // C..
123. Status Bar and Home Indicator Status Bar Status Bar는 화면 상단에서 현재 시간과 시스템 상태를 표시하는 역할을 한다. Status Bar에 표시되는 내용은 기본적으로 검은색을 표시하도록 되어있고, 어두운 배경에서는 흰색으로 표시되도록 Status Bar Style을 직접 설정해야 한다. Status Bar Style은 두 가지로 고정되어있고, 색을 직접 지정하는 것은 불가능하다. 이를 설정하기 위해서는 앱에서 공통적으로 사용할 Style을 설정하거나, View Controller에서 사용할 Style을 개별적으로 설정한다. 사용할 Scene은 위와 같다. 현재 상태의 Status Bar가 기본 스타일이다. Project의 Deployment Info 중 Status Bar Style을 통해 앱 전체에 공통으로 적용되..
108 ~ 109. Orientation, Rotation and Container View Controller Orientation and Rotation iOS는 홈버튼의 위치에 따라서 Device Orientation을 7가지로 구별한다. Portrait 홈버튼이 아래쪽에 위치하는 가장 기본적인 상태이다. Portrait Upside Down 홈버튼이 위쪽에 위치하는 상태이다. Landscape Left 홈버튼이 왼쪽에 위치하는 상태이다. Landscape Right 홈버튼이 오른쪽에 위치하는 상태이다. Face Up 홈버튼이 하늘을 향하는 상태이다. Face Down 홈버튼이 바닥을 향하는 상태이다. Unknown iOS가 Device Orientation을 인식할 수 없는 상태이다. Interface Orientation은 앱이 지원하는 논리적 Orientation이다. 기본적으로 아이패드는 모든 Orie..
105 ~ 107. View Controller, View Management and View Controller Life Cycle View Controller View Controller는 다음의 3가지 역할을 수행한다. 화면에 표시되는 View를 관리한다. 모든 View Controller는 하나의 Root View를 가진다. Root View는 UI를 표시할 Frame을 제공하고, View 계층을 관리한다. 따라서 화면을 구성하는 모든 View는 항상 Root View 아래에 존재한다. Root View에 접근할 때에는 view 속성을 사용한다. Root View 이하에 있는 View에 접근할 때에는 Outlet으로 연결하거나 View Tagging을 사용한다. View에서 발생하는 이벤트를 처리한다. 예를 들어 Button에서 발생한 이벤트는 Controller와 연결해 Action으로 처리한다. Table View의 Data..
100. Supplementary View Supplementary View Collection View의 Headr와 Footer를 합쳐서 Supplementary View라고 부른다. Flow Layout에서는 섹션의 시작부분과 마지막 부분에 각각 표시된다. Layout 속성과 Delegate 패턴을 통해 크기를 설정할 수 있지만, 스크롤 방향에 따라 제약을 받는다. Vertical 너비가 Collection View의 너비로 고정되고 높이만 설정할 수 있다. Horizontal 높이가 Collection View의 높이로 고정되고, 너비만 설정할 수 있다. 단, Custom Layout을 직접 적용하면 크기와 위치를 자유롭게 지정할 수 있다. Supplementary View는 재사용 메커니즘을 사용한다. 따라서 필요할 때 Collectio..