[iOS] Xib, Nib 뭐시기들

nnnyeong·2022년 10월 24일
0

iOS

목록 보기
16/17
post-thumbnail

~ib 어쩌구 저쩌구가 궁금해서 알아봤당

iOS 의 UI 구현 방식

iOS 의 UI 구현 방식은 크게 세가지로 나뉜다.

  • Storyboard
  • Xib, Nib 이용
  • Code로 작성 하기

이 중 Xib, Nib, Storyboard 는 파일 형태로 존재하고 MVC 아키텍처를 위해 뷰 코드와 컨트롤러를 분리하는 목적으로 만들어졌다.




Nib 와 Xib

  • Nib, Xib는 유저 인터페이스 필드를 저장하기위한 파일
  • UITableViewController, UITalbeViewCell, UICollectionCell클래스, CustomView에서만 지원 가능!

Nib

  • Nextstep Interface Builder
  • 화면을 구성하는 클래스들을 바이너리 형태의 압축 파일로 저장하고 있다.



Xib

  • Xcode Interface Builder
  • 화면을 구성하는 클래스들을 xml 문법에 맞춰 저장하고 있음
  • 바이너리로 저장하지 않고 xml 형태로 저장되기 때문에 수정된 부분을 알 수 있어서 파일관리가 아닌 소스코드로 관리가 가능하다.

  • 위와 같은 형태의 파일을 Xcode 에서 Interface Builder 를 제공해 xml 형태가 아닌 그래픽 상태로 수정할 수 있다.

뷰 정보를 담고 있는 xib 파일이 빌드되면, 접근하기 쉬운 바이너리 Nib 파일로 컴파일되고, 앱의 Bundle로 복사된 후 실행 파일에서 사용된다.

💡 App Bundle
앱 번들이란 앱 실행에 사용되는 파일이 저장되어 있는 폴더를 말함




Storyboard

  • 뷰 정보와 뷰와 뷰 사이의 관계에 대한 정보를 가지고 있는 파일
  • 뷰 정보인 Xib 내용과 뷰 사이 관계 정보를 포함하고 있기 때문에 xml 로 이루어져 있다.
  • 빌드시 storyboard 파일이 컴파일되어 .storyboardc 라는 파일이 생성된다.
  • .storyboardc 파일은 패키지 파일로 되어있고 내부는 nib 파일과 nib 파일을 관리하는 plist 파일이 존재함




xml 이란?

💡 xml

  • EXtensible Markup Language
  • XML은 데이터를 저장하고 전달할 목적으로 만들어졌으며, 저장되는 데이터의 구조를 기술하기 위한 언어
  • HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)
  • 사람과 기계가 동시에 읽기 편한 구조로 되어 있습니다.
  • XML은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어짐
  • XML 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있다.

예전 안드로이드 개발을 떠올려보면 html 처럼 뷰를 구조적으로 짜는데 xml을 활용한 기억이 잇다. 스토리보드와 xib 역시 구성요소들간의 관계를 나타내기 때문에 xml 을 사용한다고 생각하면 될 것 같다.




Reference

iOS의 화면을 그리기 위해선 이것이 필요합니다! XIB, NIB, Storyboard
XML 이란 무엇인가?

profile
주니어 개발자까지 ☄️☄️

0개의 댓글