 Apple Lover Developer & Artist

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

반응형

 Apple 72

[Challenge] Objective-C 빠르게 둘러보기

Overview 프로그래밍 언어인 Objective-C에 관하여 간략히 조사해 본다. Objective-C를 Swift 코드처럼 사용하며 문법에 빠르게 적응해 본다. 사전 지식 💡독자가 C언어와 객체지향 프로그래밍에 관한 경험이 있음을 전제하고 작성한 포스팅이다. Objective-C Objective-C는 macOS와 iOS용 소프트웨어를 개발할 때 사용되었던 프로그래밍 언어이다. C언어를 기반으로 OOP와 동적 런타임 기능을 확장하여 개발되었다. C언어의 기본 타입과 흐름 제어 문법을 사용 가능한 특징이 있으며 클래스와 메서드를 정의하는 등 OOP 지원을 위해 Objective-C 만의 문법이 추가되었다. Hello World Xcode에서 macOS용 CLI 프로젝트를 생성 후 간단한 Hello W..

[Challenge] SettingsKit 프레임워크 개발

Overview 사용자가 iOS앱의 설정값을 사용자 정의할 수 있도록 설정 기능 및 사용자 인터페이스를 구현한다. 배경 Apple은 "Preferences and Settings Programming Guide"를 통해 앱을 사용자화 할 책임과 관련 도구에 관하여 설명한다. 여기서 사용자에게 노출할 기본 설정을 결정하고 앱 자체의 기본 설정 인터페이스를 어떻게 제공할지는 각 앱이 결정한다고 지침을 주고 있다. 개발자가 앱의 기본 설정값을 손쉽게 관리할 수 있는 도구도 제공하고 있다. 예를 들어 UserDefaults 프레임워크를 사용하면 앱을 구성하는 데 사용되는 정보들을 키-벨류 형태로 영구히 저장할 수 있고 iCloud를 통해 설정값을 공유할 수도 있다. 더 나아가, iOS 설정 번들를 활용하여 특정..

[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 객체가 처리할 수 있다. 앱 객체에..

반응형