[TIL] LifeCycle, UserDefaults, Dependency, Network

남보경·2023년 8월 23일
0

TIL

목록 보기
10/10
post-thumbnail

1. UIViewController의 Life Cycle

1) init()

UIViewController 객체가 생성되는 부분이다.
해당 초기화 메서드에서 필요한 초기화 작업들을 수행해주면 된다.

2) loadView()

Controller 내의 View 계층 구조가 생성되는 부분으로 직접 View를 생성해서 할당한다.

override func loadView() {
	self.view = UIView
}

3) viewDidLoad()

View의 계층 구조가 메모리에 로드 된 상태로 초기화 작업을 수행한다. 뷰에 대해서 추가적인 구성 작업 수행이 필요할 때 사용

override func viewDidLoad() {
	super.viewDidLoad()
    // View에 대해서 추가로 구성할 것이 있다면 여기에 작성
}

4) viewWillAppear()

View가 화면에 나타나기 직전에 호출되는 method로 View의 상태를 update 해야하거나 animation을 시작할 때 사용한다.

override func viewWillAppear(_ animated: Bool) {
	super.viewWillAppear(animated)
    // View가 나타나기 직전에 수행되어야 할 작업을 작성
}

5) viewDidAppear()

View가 화면에 나타나면 호출되는 method로 Animation을 종료하거나 View의 상태를 update할 때 사용한다.

override func viewDidAppear(_ animated: Bool) {
	super.viewDidAppear(animated)
    // View가 나타난 직후에 수행되어야 할 작업을 작성
    //ㅕ UI 재조정 시에도 사용
}

6) viewWillDisappear()

View가 화면에서 사라지기 직전에 호출되는 method로 데이터를 저장하거나 Animation을 시작할 때 사용.

override func viewWillDisappear(_ animated: Bool) {
	super.viewWillDisappear(animated)
    // View가 사라지기 직전에 수행되어야 할 작업을 작성
}

7) viewDidDisappear()

View가 화면에서 사라지면 호출되는 method로 animation을 종료하거나 View의 상태를 update할 때 사용한다.

override func viewDidDisappear(_ animated: Bool) {
	super.viewDidDisappear(animated)
    // View가 사라진 직후에 수행되어야 할 작업을 작성
}

8) deinit

UIViewController 객체가 메모리에서 해제
deinit {
// 뷰 컨트롤러가 메모리에서 해제되기 전에 수행할 작업 수행
}

2. App이 돌아가는 전반적인 흐름

1) Application의 작동 흐름

  1. 앱이 실행 - 사용자 : 앱을 터치
  2. main.swift에서 @main 함수가 호출되어 UIApplication 객체 생성.
  3. AppDeldgate 객체 생성
    • UIApplication 객체는 AppDelegate 객체를 delegate로 설정.
      - AppDelegateUIResponder, UIApplicationDelegate를 상속 및 참조
  4. AppDelegate 객체의 application(_:didFinishLaunchingWithOptions:) 메서드를 호출

    어플 실행 시 UIApplication 객체는 AppDelegate 객체의 application(_:didFinishLaunchingWithOptions:) 메서드를 호출해서 앱의 초기화를 수행

  5. Root view controller의 생성

    AppDelegate 객체는 UIWindow를 생성하고, 이 윈도우에 Root view controller를 할당합니다.

  6. Root view controllerview가 생성됩니다.
    • Root view controller의 view는 로드됩니다. 이때 viewDidLoad() 메서드가 호출됩니다.
      - UIViewController의 Life cycle에 따라 동작
  7. 사용자가 앱을 조작합니다.
    • 앱의 사용자 인터페이스에서 사용자의 입력에 따라 함수가 호출.
  8. 앱이 Background 상태로 전환됩니다.
    • 앱이 Background 상태로 전환되면, applicationWillResignActive()함수가 호출. 이 함수는 앱이 Background로 전환되기 전에 실행해야 하는 작업을 수행합니다.
  9. 앱이 Foreground 상태로 전환됩니다.
    • 앱이 Foreground 상태로 전환되면, applicationDidBecomeActive() 함수가 호출됩니다. 이 함수는 앱이 Foreground로 전환된 후 실행해야 하는 작업을 수행합니다.
  10. 앱이 종료됩니다.
    • applicationWillTerminate()함수가 호출됩니다. 이 함수는 앱이 종료될때 수행
profile
꿈꾸자 그리고 그것을 이뤄내자

0개의 댓글