Storyboard vs NIB(XIB) vs Code

JJUDEV·2022년 12월 12일
1

Swift

목록 보기
2/14
post-thumbnail

iOS의 UI 구성방밥에는 아래 세 가지 방법이 있습니다. 각각의 장단점을 살펴보겠습니다.

1. Storyboard

1. 장점

  • 구현하기 쉽다.
  • 화면 전환(애플리케이션의 흐름)을 파악하기 쉽다.
  • 스토리보드 + 코드 몇 줄로 목업 프로토타입을 빠르게 만들 수 있다.

2. 단점

  • 팀에서 작업하는 경우 머지 충돌이 자주 일어난다.
  • 뷰 컨트롤러를 함께 복사해야하기 때문에 뷰의 재사용성이 낮다.
  • UI 컴포넌트 전체를 보려면 storyboard와 코드를 모두 봐야 한다.

3. 사용이 적합한 경우

  • 네비게이션 흐름(pop, push, present 등)이 용이하기 때문에 뷰 컨트롤러 사이 이동이 주된 앱 (다수의 서로 연결된 뷰 컨트롤러들의 경우)
    : 뷰 컨트롤러가 자동으로 생성되어 alloc이나 init이 필요 없음
  • 테이블 뷰 컨트롤러: 여러 형태의 셀 템플릿 디자인 가능 / Static Cell 사용 가능

4. 적합하지 않은 경우

  • 복잡한 다이나믹 레이아웃을 가진 뷰 (Code가 적합)

2. NIB(XIB)

1. NIB와 XIB

  • NIB: Nextstep Interface Builder, 화면을 구성하는 클래스들을 바이너리 형태의 압축 파일로 저장.
    XIB를 컴파일하면 NIB가 만들어진다.
  • XIB: 바이너리로 저장하지 않고 XML 형태로 저장하기 때문에 파일 관리가 아니라 소스 코드로 관리 가능
    Xcode에선 Interface Builder를 제공하여 XML 형태가 아닌 그래픽 형태로 수정 가능
  • 사람이 읽고 이해할 수 있는 형태가 아니기 때문에 소스 컨트롤이 제한된다는 단점으로 XML 형식의 XIB가 도입되었다.

2. Storyboard와 XIB

  • Storyboard: 뷰 정보 / 뷰와 뷰 사이의 관계에 대한 정보를 가지고 있는 파일
    뷰 정보와 XIB의 내용과 뷰 관계 정보를 포함하고 있어, XML로 이루어져 있다.
    컴파일 시 .storyboard 파일 > .storyboardc 파일로 생성
    (.storyboardc 파일은 패키지 파일로 되어 있고 내부는 nib 파일과 nib 파일들을 관리하는 plist 파일이 존재)

3. 장점

  • 스토리보드에 비해 더 구체적인 UI 구현 가능
  • 뷰와 코드의 재사용 가능 (여러 클래스에서 하나의 UI를 공유하여 사용 가능)
  • 객체 지향 고나점에서 뷰를 여러 분리된 모듈로 쪼개서 개발/테스트/디버그가 용이
  • 스토리보드에 비해 merge 충돌이 적다.

4. 단점

  • class와 XIB 파일 간 관계를 설정하기 위한 코드를 작성해야 한다.
  • 필요 시 로드되기 때문에 필요할 때 외에는 메모리를 사용하지 않으나, 로드 시 지연이 있을 수 있다.(느리다.)

3. Code


참고자료

Github

profile
4년차 앱개발자입니다.

0개의 댓글