[iOS] iOS 화면을 구성하는 파일, Nib와 Xib 개념 정리해보기
2023. 10. 8. 15:48ㆍSwift, iOS Foundation
1️⃣ Nib와 Xib 핵심 내용만 정리해보기
Nib와 Xib 두 개 모두 iOS 화면을 구성하기 위한 파일이다.
Nib : Nextstep Interface Builder의 줄임말, 바이너리 파일 (데이터의 저장과 처리를 목적으로 0과 1의 이진 형식으로 인코딩된 파일, 사람은 읽지 못하고 컴퓨터만 읽을 수 있는 언어)이다.
Xib : Xml Interface Builder의 줄임말, Xml 파일 (데이터들을 쉽게 구조화해서 전달하기 위해 만들어진 언어가 xml이고 이 xml로 쓰여진 파일이 xml 파일, 컴퓨터와 사람 모두 읽을 수 있는 언어)이다.
2️⃣ Nib와 Xib 핵심 내용에서 살을 더 붙여보자!
✔️ 새로운 Cocoa Touch Class 파일을 만들 때, "Also create XIB file"이라는 체크 박스를 만난 적이 있을 것이다. 이때 체크를 했을 때 만들어지는 것이 Xib 파일이다.
✔️ Xcode에서는 Interface Builder를 제공하기에 위와 같은 View를 xml 언어가 아니라 시각적으로 바로 확인할 수 있다.
✔️ Xib 파일을 컴파일하면, nib 파일이 만들어진다.
✔️ 즉, Nib 파일과 Xib 파일은 파일 형식만 다를 뿐, 서로 같은 내용을 담고 있는 것과 같다.
✔️ 컴파일된 nib 파일은 앱의 Bundle(앱 실행에 사용되는 파일이 저장되어 있는 폴더)에 복사된 후, 실행 파일에서 사용된다.
✔️ 우리가 자주 사용하는 ViewController도 xib로 구성되어 있다. (xib 여러 개와 이 xib 파일들의 관계를 정리해 주는 info.plist 파일이 함께 있는 형태)
테이블 뷰를 통해 Xib와 Nib가 사용되는 과정을 리마인드해보자.
Xib 파일로 테이블뷰의 Cell을 만들었을 때,
아래와 같이 UINib를 선언했던 것은 "Xib 파일을 UINib 클래스 객체 형태로 변환하기 위해 Xib 파일명을 넣어 Nib로 만들어준 것"이다.
왜냐?
TableView 객체에 Cell을 등록(register) 하기 위해서는 nib 객체와 재사용될 Cell의 Identifier가 모두 필요했기 때문이다.
그러니 아래 코드를 보면, TableView 객체에 사용될 Cell의 nib 변환 파일과 미리 정의한 Xib의 식별자를 통해 cell을 register 해준 것을 확인할 수 있다.
3️⃣ Nib와 관련된 TMI 하나.
Nib가 Nextstep Interface Builder의 줄임말이라고 했는데,
여기서의 NeXTSTEP은 스티브잡스가 Apple에서 첫 번째로 쫓겨나고 만들었던 회사 넥스트사에서 만든 운영체제 이름이다.
'Swift, iOS Foundation' 카테고리의 다른 글
[Swift] Swift는 에러를 어떻게 처리할까? (Error Handling) (1) | 2024.02.13 |
---|---|
[iOS] 내가 서버 통신(Networking) 진짜 알기 쉽게 정리해서 올려줄게 (HTTP, JSON, REST API) (2) | 2023.11.13 |
[Swift] 고차함수 개념 완전 정복하기: map, filter, reduce (0) | 2022.01.24 |
[Swift] 구조체(Struct)와 클래스(Class) 완전 정복하기: 기본 개념부터 프로퍼티, 인스턴스, 상속까지 (0) | 2022.01.22 |
[Swift] IBOutlet Collection이란 무엇일까? (0) | 2022.01.09 |