iOS 개발 (28) 썸네일형 리스트형 [iOS] GCD, 비동기 프로그래밍 참고 자료 Apple 공식 문서 Dispatch Apple 공식 문서 DispatchQueue Stackoverflow GCD 관련 Apple 공식 문서 Concurrency Programming Guide 목차 (눌러서 이동) 비동기 프로그래밍, Grand Central Dispatch(GCD) Apple 의 UI 는 Main thread 에서만 업데이트 되도록 디자인되어 있다. UIKit 가 thread-safe 하지 않아 Main thread 에서 순차적으로 처리하는 것이 안정적이기 때문이다. (UIKit 가 thread-safe 하지 않은 이유.) Main thread 가 UI 를 업데이트 할 동안 네트워킹과 같은 무거운 작업들을 다른 thread 에서 동시에 작업할 수 있다면 앱 성능 향상에 효.. [iOS] AppDelegate, SceneDelegate 의 역할, WWDC2019 (iOS 13~) 참고자료 WWDC2019 목차 (눌러서 이동) iOS 13 이전의 App Delegate iOS 13 이전의 App Delegate 는 Process level 의 App event 를 관리 (App Launched) 하거나, App 의 UI Status 를 관리(Entered Foreground)했다. 이전에는 App 이 하나의 Process 와 이를 표현하기 위한 하나의 UI 를 가졌었다. 하지만, iOS 13 부터 하나의 Process 에 대해 여러 UI 객체를 (Scene Session 이라고 부른다.) 가질 수 있게 되어 UI 에 대한 책임을 Scene Delegate class 로 분리한다. App Delegate & Scene Delegate App Delegate 는 이전처럼 App p.. [iOS/Swift] Initializer 정리 (Swift 공식 문서) https://docs.swift.org/swift-book/LanguageGuide/Initialization.html Initialization — The Swift Programming Language (Swift 5.5) Initialization Initialization is the process of preparing an instance of a class, structure, or enumeration for use. This process involves setting an initial value for each stored property on that instance and performing any other setup or initialization t docs.swift.or.. FLO Music App - 재생 목록 화면 (Custom Cell) 목차 (눌러서 이동) Custom Cell 작성 먼저 Test class 작성의 대략적인 순서를 파악하기 위해 필요한 것을 나열해보자. 1. MusicCell class 가 필요. (identifier property 를 가져야 함.) 2. 각 UI Components 를 원하는 Configuration 을 부여하며 선언하고 Cell 의 Content View 에 올리기. 3. 원하는 Cell 형태에 맞게 각 UI Components 의 Constraints 작성. 4. cellForRowAt indexPath 함수에서 호출해 Cell 내용을 채울 수 있게하는 함수 작성. ( configureCell( ) ) Custom Cell class 작성 먼저 MusicCell 이란 이름으로 Custom cell.. FLO Music App - 재생 목록 화면 (Table View) trikalabs / TDD UITableView Joesusnick / TDD TableViews - lesss boring than you think! Essential Developer - Building iOS app with TDD 목차 (눌러서 이동) Programmatic UI Development 준비 음악 데이터를 가져오면 목록으로 표현할 Table View 가 필요하다. UI 개발에 있어 Storyboard 의 사용 없이 Programmatic 하게 작성하고 싶으므로 몇 가지 준비 작업이 필요하다. 1. Storyboard 제거 (Move to trash 를 클릭해 제거하기.) 2. Project 설정 → General → Deployment info → Main interface fi.. FLO Music App - MVC, TDD, Programmatic development 프로그래머스 과제관 - 뮤직 플레이어 앱 작성할 View 재생 목록 화면 → 음악 재생 화면 → 전체 가사 보기 화면 작성 방법 1. MVC 패턴 2. Test-Driven Development 3. Programmatic Development (Storyboard X) [iOS/UIKit] UIKit 개발 방법들 (Storyboard, NIBs, Programmatic) Storyboard 간단한 프로젝트에 대해서 빠르고 직관적으로 작성할 수 있지만 큰 스케일의 프로젝트에는 부적합하다. 여러 개발자가 작업할 때 Merge Conflict 다루기 힘들기 때문이다. 또한, 하나의 View Controller 만 쏙 빼내서 재활용하기 힘들다. 의존성 관계의 View Controller 들과 모두 함께 움직여야 한다. NIBs(XIBs) 단일 View 를 빠르게 작성하고 필요에 따라 View Controller 에 붙인다. 즉, 단일 View 에 대해 재사용이 용이하다. Lazy Loading 방식으로 작동하므로 Memory Efficiency 는 좋지만, 이에 따른 Performance Latency 가 있을 수도 있다. Programmatic UI Storyboard, NI.. [iOS] Stanford iOS Lecture - MVVM (cs193p) MVVM Architecture MVVM 의 핵심은 View (user-interface code) 와 Model (backend or logic) 의 분리이다. 이를 위해 Model 의 모든 변화를 View 가 파악하고 UI 를 Rebuild 할 수 있어야 한다. Model Model 은 UI 와 독립적이다. (Model 파일에는 "import SwiftUI" 구문이 없다.) Model 은 앱이 '무엇인지, 무엇을 할지' 설명하는 모든 Data & Logic 을 담고 있다. Model 은 앱의 Source of truth 로서 Model 의 데이터 혹은 정보를 UI 코드에 저장하거나 하는 일은 없다. View View 는 앱을 사용자에게 '어떻게 보여 줄지' 에 대한 것이다. View 는 Model 로.. 이전 1 2 3 4 다음