1 분 소요

Storyboard vs NIB vs Code

보통 프로젝트를 진행하기 전에 UI 개발 시 미리 구현방식을 정하고 진행합니다. iOS에서는 UI를 구현할 때 다양한 방법이 있으므로 iOS에서 UI를 개발하는 방법을 알아보았습니다.

각각의 기본적인 개념은 다음과 같습니다.

  • 스토리보드: 여러 애플리케이션뷰들의 전환을 레이아웃하기 위한 방법입니다.
  • NIB: NIB는 단일 뷰 요소로 인터페이스 빌더에서 레이아웃을 할 수 있는 방법입니다.
  • 코드: 다른 시각적으로 작성하는 방법과 달리 UI를 코드로 구현하는 방법입니다.

스토리보드

스토리보드는 다음을 처리할 때 사용하면 유용합니다.

  • 인증 및 등록을 하기 위한 뷰 구성
  • 여러 단계 주문 입력 플로우 구성
  • 튜토리얼과 같은 흐름 구성
  • 상위 집합과 하위 세부사항 집합의 뷰 구성

스토리보드의 장점

  • 성능: 스토리보드가 로드되면 모든 뷰 컨트롤러가 인스턴스화 된다고 가정할 수 있습니다. 이것은 실제 구현에 해당되지 않고 초기 뷰 컨트롤러만 생성됩니다.

  • 프로토타입 제작: 빠르고 단순하게 프로토타입을 구성할 수 있습니다.

스토리보드의 단점

  • 재사용성: 스토리보드는 의존하는 모든 뷰 컨트롤러와 함께 복사하거나 이동해야 합니다. 단일 뷰 컨트롤러를 추출하여 다른 곳에서 재사용할 수 없습니다.

  • 데이터의 흐름: 앱이 전환될 때 뷰 컨트롤러간에 데이터를 전달해야 하는 경우가 있습니다. 그러나 스토리보드는 뷰 컨트롤러간의 흐름을 처리하지만 데이터의 흐름을 처리하지는 않습니다.

NIB

NIB는 다음을 처리할 때 사용하면 유용합니다.

  • 모달 뷰
  • 로그인과 회원가입 뷰
  • 설정 뷰
  • 팝업 윈도우
  • 재사용 가능한 뷰
  • 재사용 가능한 테이블 셀

NIB의 장점

  • 여러 클래스에서 동일한 레이아웃을 공유할 때 좋습니다.

NIB의 장점이자 단점

  • NIB는 필요할 때 로드되어 메모리를 절약하지만 로드 시 지연시간이 있을 수 있습니다.

코드

스토리보드와 NIB로 할 수 있는 어떤 것도 코드로 가능하며, 스토리보드와 NIB로 할 수 없는 것도 코드로 가능합니다.

코드의 장점

  • 성능: 스토리보드와 NIB는 로드 및 구분 분석의 오버헤드가 발생합니다. 코드로 구현한 UI에서는 발생하지 않습니다.

  • 동작방식의 이해: UI를 코드로 구현하면 내부적으로 어떤 동작이 수행되는지 이해할 수 있습니다. 내부적으로 더 많은 동작을 제어하고 이해하면 더 뛰어난 개발자가 될 수 있습니다.

  • 코드로만 구현할 수 있는 경우: 스토리보드와 NIB로 구현할 수 없는 기능을 구현할 수 있습니다.

  • git 충돌 병합: 코드는 스토리보드와 NIB보다 문법적으로 의미를 가지고 있기 때문에 충돌을 쉽게 해결할 수 있습니다.

  • 재사용성: 코드로 구현된 모든 뷰는 재사용 가능한 방식으로 디자인할 수 있습니다.

코드의 단점

  • 프토토타입 제작: 레이아웃하고 화면에 어떻게 보여지고 작동하는지 보여주기 위한 작업 시간이 오래 소요됩니다.

  • 리팩토링: 다른 사람이 작성한 코드를 리팩토링하는 것이 훨씬 복잡해집니다.

iOS에서 UI를 구현하는 3가지 방식을 알아보았습니다. “iOS UI를 개발하는 가장 좋은 방법은 무엇인가요?” 라는 질문에 명확히 하나를 말할 수도 없으며 한 가지 방식만을 고집하며 따르는 것도 좋은 방법이 아니라고 생각합니다. 3가지 방식다 장단점이 있으며 적재적소에 잘 사용하는 것이 좋은 UI 개발이라 생각이 됩니다.

참고 URL


iOS User Interfaces: Storyboards vs. NIBs vs. Custom Code

카테고리:

업데이트:

댓글남기기