 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

swift 39

[WWDC종합] UICollectionView의 진화

Overview UICollectionView의 역사와 진화 과정을 두루두루 살펴본다. 역사 iOS6 때 처음으로 UICollectionView가 출시되었다. API는 다음과 같은 3가지 측면으로 분해할 수 있다. (데이터) indexPath 기반 프로토콜인 UICollectionViewDataSource를 통해 관리되었다. (레이아웃) 추상 클래스인 UICollectionViewLayout과 구상 클래스인 FlowLayout이 제공 (프레젠테이션) UICollectionViewCell 및 UICollectionReusableView라는 View 타입이 제공 iOS13부터 데이터는 Diffable Data Source 레이아웃의 경우 Compositional Layout를 통해 관리되었다. iOS14는 ..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 15부 - State Restoration

Overview State Restoration을 구현하여 사용자가 애플리케이션이 중단되었음을 인식하지 않도록 구현한다. 배경 아이폰을 사용하다보면 다양한 원인으로 인해 현재 사용하던 앱이 중단될 수 있다. 예를 들어, 특정 앱을 사용하던 중 전화나 메시지가 와서 이를 수신할 수 있다. 또한 동시에 여러 작업을 수행하기 위해 멀티태스킹 기능을 사용하는 경우도 있을 것이다. 사용자가 다른 작업을 처리한 뒤에 본래 처리하던 작업을 마무리하고자 돌아올 수 있다. 이때 iOS 운영체제의 자원 관리 정책으로 인해 앱이 종료될 수 있다. 이 경우 사용자는 작업의 맥락을 놓치고 다시 처음부터 시작해야 하는 문제가 발생될 수 있다. 결코 좋은 경험이 아니다. State Restoration 기능을 구현하여 앱이 일시 ..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 14부 - Local Notification Action

Overview Local Notification 이벤트를 다루어본다. 알림 이벤트가 발생했을 때 액션을 붙여보고 앱이 액션에 따라 응답할 수 있도록 프로그래밍해 본다. knowledge Handling Event 서로 다른 객체가 메시지를 주고받아야 한다. 한걸음 더 들어가면 Local Notification 이벤트를 수신할 수 있어야 한다. 이벤트를 앱에 전달할 수 있어야 한다. 그리고 앱이 이벤트에 응답할 수 있어야 한다. 한 단계씩 뜯어보며 코드를 구현할 수 있는 기반을 다져본다. Local Notification 이벤트를 누가 수신해서 어떻게 앱에 전달해 줄지 고민하게 된다. Notification과 연관된 이벤트는 UNUserNotificationCenter 객체가 처리할 수 있다. 앱 객체에..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 13부 - User Notification

Overview 음식점 서버에 주문을 넣은 후 음식의 준비가 완료되면 사용자에게 푸시 알림을 보내는 기능을 개발한다. User Notification 중 Local Notification을 활용하며 푸시 알림 이벤트에 따른 액션을 처리해 본다. 프로토콜 지향 프로그래밍을 활용해 Notification 정보를 체계적으로 관리해 본다. Local Notification UIKit에서는 시각적인 상호작용을 위해 UIView를 활용한다. 앱이 켜져 있을 때는 사용자 인터페이스를 제공하여 사용자와 상호작용할 수 있으나 앱이 종료되었을 때에는 이를 활용하기 어려워 보인다. User Notification은 중요한 이벤트에 대하여 사용자가 응답할 수 있는 수단을 제공한다. 예를 들어 휴대폰을 잠가둔 상태로 메시지를 ..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 11부 - 주문서 개발

Overview 사용자가 레스토랑에 음식을 주문할 수 있도록 기능을 개발한다. Notification, Timer 등의 비동기 처리를 구현할 때 Combine이 제공하는 통합된 API를 사용해본다. Prerequirement 콤바인 API의 개념과 Swift Concurrency의 사전 지식이 요구된다. 다음의 공식 문서 정리 포스팅을 참조하면 좋을 것이다. [WWDC2019] Introducing to Combine [Swift] 공식문서 씹어먹기: Concurrency 주문서 기능 사용자는 레스토랑에서 판매하는 음식 메뉴를 볼 수 있다. 앞선 포스팅 처럼 카테고리별로 분류된 화면을 전환하며 자신이 원하는 음식 메뉴를 찾을 수 있다. 원하는 음식 메뉴를 찾으면 해당 아이템을 선택하여 세부 정보를 확인할..

반응형