- iOS 애플리케이션에서 사용자 인터페이스를 디자인하고 구성하기 위한 통합 개발 환경입니다. XIB를 사용하여 개발자는 스토리 보드와 같은 인터페이스 디자인 및 개발을 수행할 수 있습니다. - XIB는 XML 기반의 파일 형식으로 ‘NIB 파일’로 컴파일되어 iOS 디바이스에서 로드됩니다.
💡 NIB(Next Interface Builder)란?
- 인터페이스 디자인을 위한 시각적인 요소들과 그들의 역할을 정의한 객체들을 포함하는 바이너리 파일입니다. - 이 파일들은 '앱 번들의 리소스 디렉토리에 저장'되며 실행 시점에 로드되어 화면에 표시됩니다.
[참고] Swift UI의 종류
분류
XIB
Storyboard
SwiftUI
파일 확장자
.xib
.storyboard
.swift
호환성
iOS 2.0+
iOS 5.0+
iOS 13+
레이아웃
개별 파일
개별 파일
코드 기반
인터페이스
드래그 앤 드롭
드래그 앤 드롭
선언적
미리보기
사용 불가
Xcode 11+에서 사용 가능
Xcode 11+에서 사용 가능
재 사용성
여러 뷰에서 재사용 가능
여러 뷰에서 재사용 가능
여러 뷰에서 재사용 가능
러닝 커브
쉽게 배울 수 있음
중간 정도의 학습 곡선
높은 학습 곡선
성능
Storyboard보다 빠름
XIB보다 느림
둘보다 빠름
[참고] Storyboard, SwiftUI를 기반으로 구성한 형태는 아래의 글을 참고하시면 도움이 됩니다.
💡 사용자의 관점에서의 흐름도는 xib → UIView → UIViewController 순으로 전달이 되어서 UIViewController → UIView → xib로 반환을 받습니다.
1. 사용자는 xib 파일을 통해 화면이 보여집니다. 2. 사용자는 특정 행동을 위해 xib 파일을 선택하면 매핑된 UIView로 이벤트 처리가 수행됩니다. 3. 이벤트 처리가 완료된 뒤 UIViewController에서 이벤트를 수신하여 데이터 처리 혹은 화면 간의 전환을 수행합니다.
💡 UIView를 제외하고 구성이 가능합니다. 💡 xib → UIViewController 순으로 데이터가 전달되어서 UIViewController → .xib로 반환을 받습니다.
- 사용자는 xib 파일을 통해 화면이 보여집니다.사용자의 특정 행동을 통해 xib 파일을 선택하면 매핑된 UIViewController에서 이벤트 처리와 함께 처리하고 데이터 처리 혹은 화면 간의 전환을 수행합니다.
[ 더 알아보기 ]
💡 UIView 없이 UIViewControler만으로 앱을 개발하는 경우 어떻게 되는가?
- 처리가 가능하지만 UIView가 없을 경우 사용자 인터페이스를 표시할 수 없기 때문에 UIViewController에서 데이터를 처리하고 표시해 주는 로직을 모두 작성해야 합니다.
- 이는 코드의 복잡도를 증가시키고 유지보수를 어렵게 만들 수 있습니다. 그러므로, UIView를 사용하여 앱의 사용자 인터페이스를 구성하고 UIViewController와 연결하여 데이터를 처리하는 것이 일반적인 방법입니다.
- iOS에서 화면을 스택 형태로 관리할 때 사용되는 컨트롤러입니다. 즉, 다음 화면으로 이동할 때 이전 화면을 스택에 쌓아두고, 이전 화면으로 돌아갈 때 스택에서 꺼내서 보여주는 방식으로 화면을 관리합니다. - 이를 통해 앱 내에서 여러 화면 간의 이동을 쉽게 구현할 수 있습니다.