본문 바로가기

iOS

UI구현은 스토리보드로 하는게 나을까 코드로 하는게 나을까?

안녕하세요 Wody입니다!

 

마지막 포스팅으로부터 약 2달 정도가 지났는데요 ㅎㅎ...

그래서 지금이라도 다시! 블로그로 기록을 남겨보자는 마음에 글을 작성하게 됐습니다.

 

오늘의 주제는 UI구현을 스토리보드로 할지, 코드로 할지에 대한 고민입니다.

 

이 주제는 구글에 검색만 해보아도 많은 분들이 다룬 글을 확인할 수 있는데요.

 

 

먼저 많은 글들에서 이야기하는 장단점을 간단하게 다뤄보고 제 생각을 이야기해보려고 합니다.

 

스토리보드 UI의 장단점

장점

  • UI 구성을 한눈에 확인할 수 있다
  • View에 어떤 속성과 값을 설정했는지 확인하기 쉽다

단점

  • StoryBoard 구현을 위해 Xcode 메모리가 올라간다. (이 부분은 기능별로 StoryBoard를 분리하면 해결 가능)
  • 협업시 StoryBoard 충돌 혹은 이슈가 발생할 수 있다
  • 인터페이스빌드와 StoryBoard 간 연결을 추적하기 어려울 수 있다

 

코드 기반 UI의 장단점

 

장점

  • 스토리보드와 비교했을 때 Xcode가 가벼워진다
  • 협업시 충돌 위험도가 낮아진다
  • 스토리보드에 비해 View의 재사용성이 좋다

단점

  • View가 어떤 모습을 갖고 있을지 한눈에 파악하기 어렵다
  • View의 속성 및 기능을 숙지하고 있어야한다 (스토리보드처럼 기능에 대한 표시를 해주지 않음)
  • NSLayoutConstraint를 통해 AutoLayout을 설정해줘야 하는데 귀찮고 복잡하다 (SnapKit 라이브러리를 통해 극복 가능)

 

Wody는 어떤 방법을 추천하나요?

간단한 UI같은 경우엔 StoryBoard가 더 나은 선택지가 될 수 있습니다. 반대로 프로젝트 진행에 Code Base가 더 나은 방법이라고 생각되면 코드로 UI를 만드는게 나을 수 있습니다.

 

그런데 간혹 View Life Cycle에 따른 설정이 필요하다면 Code Base가 최선의 선택이 될 수 있습니다.

커스텀 뷰를 만들어 사용하는 것 또한 마찬가지구요.

 

어떻게 보면 Code Base 만능! 이라고 말하는 것 같지만 뭐 사실인 것 같습니다.

스토리보드로 구현하는 UI는 코드로 전부 구현 가능하기 때문입니다.

 

하지만 현업에서는 StoryBoard도 사용하는 경우가 있기 때문에 두 방법 모두 사용할 줄 아는게 좋습니다.