저번 글에서는 ViewController LifeCycle에 대해서 간단히 알아봤다. 이번 글에서는 간단한 예제를 통해 ViewController LifeCycle를 단계별로 나누어서 알아보겠다. ✅ 본 글에서는 브레이킹 포인트를 간단하게 BP로 표기함. 분기별 상태 생명 주기의 단계 진입 전에 BP를 걸고 진행하겠다. 첫번째 분기(34번)이다. View가 아직 메모리에 Load 되지 않았기 때문에 화면은 공백을 출력한다. 두번째 분기(41번)이다. View가 메모리에 올라간 상태이긴 하지만 아직 화면에 올라오지 않았기 때문에 화면은 공백을 출력한다. 세번째 분기(46번)이다. View가 메모리에 올라가고 화면에 올라왔기 때문에 화면은 정상적으로 출력 된다. 세번째 분기(46번)을 거쳐 ViewDidAp..
이번 글에서는 iOS App의 생명주기에 이어서 앱의 구성요소 중에서 가장 핵심인 ViewController의 LifeCycle을 알아보겠다. ViewController ➡️ UIKit 앱의 인터페이스를 관리하는 앱의 기초가 되는 내부 구조 ViewController LifeCycle ViewController의 생명 주기 흐름도이다. 0️⃣ init storyboard나 code로 ViewController를 생성하는 과정 생명 주기로의 진입 단계이다. 1️⃣ loadView - view를 생성하고 Heap 메모리에 Load하는 단계이다. UIViewController의 View가 생성되는 단계이다. ❗️공식문서에 따르면 loadView() 메소드를 직접 호출하면 안 된다. 2️⃣ viewDidLoad..
xCode에서 프로젝트 생성 시 자동으로 AppDelegate.swfit와 SceneDelegate.swift 파일을 생성한다. iOS 13 이후에 앱의 생명 주기 관리는 SceneDelegate.swift에서 관리한다. 이번 글에서는 SceneDelegate.swift 파일을 가지고 UISceneDelegate 메소드들을 간단히 다뤄보면서 Scene이 어떻게 동작하는지 직접 확인해보겠다. class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIS..
생명 주기는 왜 알아야하고 중요할까? iOS앱은 현재 상태에 따라서 할 수 있는 작업과 할 수 없는 작업이 결정된다. Foreground 상태의 앱은 화면을 점유하며 사용자의 관심을 끌고 있기 때문에 시스템 자원에 있어서 우선권을 갖게 되고 Background 상태의 앱은 화면을 점유하지 않기 때문에 가능한 적게, 최소한의 작업을 해야한다. 따라서 개발자는 앱의 상태가 변화할 때마다 그에 맞는 동작을 적절하게 수행시킬줄 알아야 한다. 또 앱의 생명 주기를 알아야 개발할 수 있는 기능도 존재한다. 예를 들어 백그라운드 상태에서 노래나 동영상을 재생한다던가, 앱이 화면을 점유하고 있을 때만 타이머를 동작시키는 것 등이 있다. 이렇듯 앱의 생명 주기는 개발자라면 꼭 알아야 할 지식이다. 생명주기 - LifeC..