iOS 개발을 하다보면 흔히 접할 수 있는 단어가 XIB, NIB, Storyboard 이에요
그렇다면 이것들이 무엇이고 어떤 관계가 있는지 알아보아요
어디에 사용되나요?
- XIB, NIB, Storyboard는 파일형태로 되어있고, 화면을 구성할때 사용됩니다
MVC 디자인 패턴을 위해 뷰 코드와 컨트롤러를 분리하는 목적으로 만들어진 파일 입니다
NIB 파일은 무엇인가요?
- Nextstep Interface Builder의 약자로, 화면을 구성하는 클래스들을 바이너리 형태의 압축 파일로 저장하고 있습니다
<바이너리로 이뤄져있는 NIB파일 내부를 바라본 모습>
XIB 파일은 무엇인가요?
- Xcode Interface Builder의 약자로, 화면을 구성하는 클래스들을 XML문법에 맞춰 저장되고 있습니다.
XIB파일은 왜 생기게 되었나요?
- 바이너리로 저장하지 않고 XML 형태로 저장하기 때문에 수정된 부분을 알 수 있어서 파일 관리가 아닌 소스코드로 관리가 가능해졌습니다.
<XML형태의 XIB파일을 변경후 비교해본 모습>
- 직접 수정하려면 XML문법을 맞춰서 수정해야되기 때문에 번거로울 수 있지만, Xcode에선 Interface Builder를 제공하여 XML 형태가 아닌 그래픽 형태로 수정할 수 있게 도와줍니다.
<XIB파일로 Xcode의 Interface Builder로 본 모습>
프로그램이 뷰 정보를 읽어드리는 방법
- 뷰 정보를 담고 있는 XIB파일을 빌드하게 되면, 접근하기 쉬운 바이너리 NIB파일로 컴파일 되고, 앱의 번들(앱 실행에 사용되는 파일이 저장된 폴더)로 복사된 후 실행파일에서 사용됩니다.
<XIB를 컴파일하면 NIB가 만들어집니다>
<XIB파일이 빌드과정후 생성된 app 패키지안에 NIB파일로 저장된 모습>
그렇다면 Storyboard는 무엇인가요?
- 스토리 보드는 뷰 정보와 뷰와 뷰 사이의 관계에 대한 정보를 가지고 있는 파일 입니다. 그렇기 때문에 뷰 정보인 XIB의 내용과 뷰 관계정보를 포함하고 있어서 XML로 이뤄져 있습니다. 빌드를 하게 되면 컴파일된 storyboard파일로 .storyboardc라는 파일이 생성됩니다.
- .storyboardc 파일은 패키지 파일로 되어있고 이 내부는 nib파일과 nib파일을 관리하는 plist파일이 존재합니다.
<.storyboarc파일의 패키지 내부 모습>
<Storyboard파일 내부 구조>
이 글로 인해서 XIB와 NIB을 혼용해서 사용하지 않길 바랍니다 ㅎㅎ
'스터디 > iOS' 카테고리의 다른 글
Xcode 커맨드라인으로 iOS앱 업로드 방법 (0) | 2022.07.25 |
---|---|
아이폰 앱스토어 스크린샷 사이즈 (0) | 2022.05.03 |
애플 개발자 프로그램 가입시 주의사항 (0) | 2022.02.04 |
아이폰 시리즈 카메라 비교 (5s,6,6+,6s,6s+,se,7,7+,8,8+,x) (0) | 2018.04.13 |
댓글