[꼼꼼한재은씨 기본편] Chapter 1[1]

1 minute read

iOS앱 기본구조


해당 포스팅은 꼼꼼한 재은씨 : 기본편을 공부하고 내용에 대해 정리 및 기록을 위한 포스팅입니다



우리는 앱을 만들때 제한된 영역에 사용자들에게 전달하고자하는 정보와 컨텐츠를 효율적으로 구성해야합니다.

전달하고자하는 정보와 컨텐츠의 양이 많으면 우리는 필연적으로 요약된 정보를 먼저 사용자들에게 보여주고

사용자들의 액션에 따라 더 상세한 내용을 보여줄 수 있도록 UI구성원칙에 따라 앱을 제작해야합니다.


뷰컨트롤러(View Controller)

뷰 컨트롤러는 내부적으로는 보여줄 컨텐츠를 관리하기 위해 뷰를 포함하고 있고 외부적으로는 다른 뷰컨트롤러와의 통신과 조정

그리고 데이터와 화면을 연결해주는 기능까지 맡고있습니다.

이런 관계를 한눈에 파악하기란 쉽지않기에 우리는 인터페이스 빌더를 사용하여 스토리보드라는 형식의 파일을 만들게 됩니다.

스토리보드는 앱으 연결관계를 더 쉽게 파악하게 도와주며 실행 시 앱을 초기화 하기 위해 필요한 여러가지 노력을 매우 간단하게 줄여줍니다.

b113f67d5f5c0a3ceaf4339976750db5

UIScreen은 물리적인 화면을 정의하는 객체이며 UIWindow는 화면을 그리기위한 도구를 제공하고 UIView실제로 화면을 그리는 객체입니다.

UIView객체가 모인 Window는 이들을 화면으로 구성하여 Screen으로 보냅니다. Screen객체는 이를 물리적인 기기에 표시합니다.

UIKit 구조를 보면 NSObject안에 UIScreen과 UIResponder가 존재하고 각 Responder는 UIView로 이루어져 있습니다.

여기서 이상한점은 뷰컨트롤러에 대한 내용이 생략되어 있습니다!

사실 뷰컨트롤러는 화면을 그리는데 반드시 필요한 요소가 아니라 MVC패턴에서 도입된 객체입니다. 뷰컨트롤러에 대하여 더 알아보면

Responder는 Responder Chain에 의해서

스크린샷 2021-06-07 오전 10 29 04

위와 같은 순서로 해당 이벤트가 처리되어질 수 있는 Responder를 만날때까지 다음 Responder로 전달되어져 이벤트에 대하여 처리합니다.

91c4b875d4f9a75250b670d3a296deed

MVC 패턴에서는 Window에 UIView가 바로 할당되는 것이아니라 Responder chain의 구조처럼 뷰컨트롤러를 Window에 할당해서

뷰컨트롤러가 본인에게 첨부된 View들을 화면에 추가한다는 것을 위의 그림에서 알 수 있습니다.

여기까지 iOS앱의 기본 구조에 대해서 알아봤습니다. 다음 포스팅에서는 간단한 실습을 해보도록 하겠습니다