목록생명주기 (4)
study record
앱 사용시 발생하는 다양한 상황에 적절하게 대응해야 하기때문에 앱 생명주기를 이해하는 것은 중요하다. 앱 실행 main 함수 실행 main 함수가 UIApplicationMain 함수 호출 (App 실행 관리의 중점) UIApplicationMain 함수는 앱의 본체에 해당하는 객체인 UIApplication 객체 생성 싱글톤 객체로 Event Loop에서 발생하는 여러 이벤트들을 감지하고, Delegate에 전달하는 역할을 한다. 예시로 앱이 백그라운드로 갈 때, 메모리 부족 경고를 할 때 등의 상황들을 감지하여 Delegate에 전달한다. @UIApplicationMain 어노테이션이 있는 클래스를 찾아 AppDelegate 객체, SceneDelegate 객체 생성 Scene은 디바이스에서 실행되고..
ViewController의 생명주기 1. func viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메소드. 메모리에 처음 로딩될 때 한 번만 호출되는 메소드로 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않는다. 리소스 초기화 및 초기 화면 구성하기에 좋다. 2. func viewWillAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되고, 화면에 표시되기 직전에 호출되는 메소드. 다른 뷰로 이동했다가 되돌아오면 다시 호출된다. 화면이 나타날 때마다 수행해야 하는 작업을 구현하면 좋다. 3. func viewDidAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되어 화면에 표시되고 난 후 호출되는 메소드. 뷰를 나타내는 것과 관련된 추가 작업을..
1. onAttach() 프래그먼트가 액티비티에 붙을 때 호출된다. 아직 프래그먼트가 완벽하게 생성된 상태는 아니며, 인자로 context가 주어진다. 2. onCreate() 액티비티와 마찬가지로 초기화해야하는 리소스들을 여기서 초기화한다. 프래그먼트를 생성하면서 넘겨준 값들이 있다면, 여기서 변수에 넣어주면 된다. 하지만 여기서 UI는 초기화 할 수 없다. 본격적으로 프래그먼트가 액티비티에 호출을 받아 생성되는 시점이다. 액티비티의 onCreate()에선 view나 ui관련 작업을 할 수 있으나, 프래그먼트의 onCreate()에서는 할 수 없다. 대신 다음에 호출될 onCreateView()에서 ui관련 작업을 할 수 있다. 3. onCreateView() 레이아웃을 인플레이트(inflate)하는 ..
액티비티 생명주기(Activity LifeCycle) 액티비티(Activity)는 메모리에 들어가서 소멸되기까지의 를 가진다. 생명주기를 잘 이해하지 않고 앱을 만들다 보면 다음과 같은 문제들이 발생할 수 있다. 사용자가 앱을 사용하는 도중 전화가 오거나 다른 앱으로 전환될 때 그에 맞는 콜백을 제대로 구현하지 않으면 앱이 비정상 종료될 수가 있다. 사용자가 앱을 비활성화했을 때 폰 시스템의 리소스, 메모리가 낭비될 수 있다. 사용자가 앱을 나갔다 들어올 때 진행중이던 상태나 작업 과정이 손실될 수 있다. 화면이 가로-세로로 전환될 때 비정상 종료나 진행 상태가 손실될 수 있다. 액티비티 생명주기 액티비티는 6가지 +1 콜백으로 이루어진다. onCreate(), onStart(), onResume(), ..