iOS/UIKIt

UIViewController와 관련 개념 정리: HIG, LifeCycle, ContainViewController, AppDelegate, MVC

개발하는 감자입니다 2024. 10. 6. 21:46
728x90

안녕하세요, 개발감자입니다. 🥔

 

UIViewController의 개념과, 관련된 다른 개념들을 정리해보았습니다.
iOS 개념들의 관계를 이해하는 데에 도움이 되었으면 좋겠습니다.


ViewController

UIViewController란, iOS 앱에서 뷰 계층을 관리하고, 사용자 상호작용을 처리하는 화면 핵심 제어 객체입니다.

자세한 내용은 공식 문서를 참고해주세요! 공식 문서를 번역해놓은 글이 있어 첨부합니다.

 

 

iOS Developr Documentation : UIViewController (UIKit)

안녕하세요! 개발감자입니다.🥔 네이버 부스트캠프 9기를 하며 iOS에 대해서 확실하게 배우고 있습니다. 그러던 중, 멘토님께서 " 웬만하면 블로그보다는 공식문서를 참고하는 게 좋다"라고 말

qkrrmsdud.tistory.com

 

UIViewController와 관련있는 개념들에 대해서 설명해보도록 하겠습니다.

  • HIG
  • View (liftCycle)
  • ContainViewController
  • AppDelegate
  • Domain
  • MVC

1. HIG (Human Interface Guidelines)

  • HIG는 Apple에서 제공하는 사용자 인터페이스 디자인 가이드라인으로, 앱이 사용자에게 일관되고 직관적인 경험을 제공하기 위해 따르는 규칙입니다.
  • UIViewController와의 관계: UIViewController는 HIG의 규칙에 따라 사용자의 기대에 부응하는 방식으로 뷰를 구성하고, 화면 전환이나 상호작용에 대한 일관성을 유지하는 데 중요한 역할을 합니다. 예를 들어, 적절한 화면 전환 애니메이션이나 터치 이벤트 처리 방식 등이 HIG에 기반을 둡니다.

2. View (LifeCycle)

  • 뷰(View)는 iOS 애플리케이션에서 화면에 표시되는 사용자 인터페이스 요소를 말합니다. iOS의 UIView클래스는 모든 뷰의 기본 클래스이며, 화면에 아나타는 시각적 요소 (ex. button, label, image)를 관리하고, 사용자와의 상호작용을 처리합니다.
  • 뷰의 생명 주기(View Life Cycle)는 UIViewController가 관리하는 뷰가 생성되고, 화면에 표시되며, 사용되지 않을 때 해제되는 일련의 과정입니다. 이 생명 주기를 통해 화면을 초기화하고 데이터 업데이트나 리소스 관리 등을 적절히 처리할 수 있습니다.
  • UIViewController와의 관계 : UIViewController는 뷰의 생명 주기 메서드(viewDidLoad, viewWillAppear, viewDidDisappear 등)를 통해 뷰가 적절하게 로드, 표시, 해제될 수 있도록 관리합니다. 이를 통해 사용자 상호작용, 리소스 최적화, 데이터 로딩 등을 제어합니다.

3. ContainViewController (컨테이너 뷰 컨트롤러)

  • ContainViewController는 다른 뷰 컨트롤러를 포함하고 관리하는 뷰 컨트롤러입니다. 여러 개의 뷰 컨트롤러를 한 화면에 배치하거나 전환할 수 있도록 관리합니다. ( 예를 들어, UINavigationController나 UITabBarController와 같은 컨테이너 뷰 컨트롤러는 각 뷰 컨트롤러의 흐름을 관리하고 화면 간의 전환을 처리합니다. )
  • UIViewController와의 관계: UIViewController는 이 컨테이너 뷰 컨트롤러에 포함되어 앱의 일부로 사용되며, 서로 독립적인 기능을 수행하면서도 컨테이너를 통해 조율됩니다.

4. AppDelegate

  • AppDelegate는 앱의 전반적인 생명 주기와 중요한 이벤트(앱 시작, 종료, 상태 전환 등)를 관리하는 객체입니다. 이 객체는 앱 전체의 상태와 전환을 관리하는 역할을 합니다.
  • UIViewController와의 관계: AppDelegate는 보통 앱의 첫 번째 화면에 표시할 루트 뷰 컨트롤러를 설정합니다. AppDelegate는 앱의 큰 흐름을 관리하는 반면, UIViewController는 개별 화면이나 기능을 관리하여 세부적인 사용자 상호작용과 인터페이스 처리를 담당합니다.

5. Domain

  • 관계: 도메인은 애플리케이션이 다루는 특정 문제 영역(비즈니스 로직, 데이터 모델 등)을 의미합니다. 주로 모델 계층을 구성하며, 데이터와 그 동작에 대한 논리적 처리를 포함합니다.
  • UIViewController와의 관계: UIViewController는 도메인과 직접 상호작용하며, 도메인에서 데이터를 가져와 뷰에 표시하거나, 사용자로부터 받은 입력을 도메인에 전달하여 로직을 처리합니다. 즉, 도메인 객체는 데이터를 관리하고, UIViewController는 이 데이터를 사용해 사용자에게 표시하는 역할을 합니다.

6. MVC (Model-View-Controller)

  • MVC는 애플리케이션 구조를 Model(데이터 및 로직), View(화면 및 사용자 인터페이스), Controller(사용자 입력 처리 및 모델과 뷰 간의 연결)로 나누는 디자인 패턴입니다.
  • UIViewController와의 관계: UIViewController는 MVC 패턴에서 Controller 역할을 합니다. 모델로부터 데이터를 가져와 뷰에 전달하고, 사용자의 입력을 받아 모델을 업데이트하거나 뷰를 다시 갱신하는 중개자 역할을 합니다. MVC에서 UIViewController는 핵심적인 연결고리로서, 사용자 상호작용을 처리하고 모델과 뷰 사이의 데이터를 연결하는 중요한 역할을 합니다.

 

 

지금까지 개발감자였습니다!
728x90
반응형