Skip to content

Instantly share code, notes, and snippets.

@okstring
Last active August 3, 2021 14:19
Show Gist options
  • Save okstring/ebe8ab80b6fcdf871777842130b644ad to your computer and use it in GitHub Desktop.
Save okstring/ebe8ab80b6fcdf871777842130b644ad to your computer and use it in GitHub Desktop.

Storyboard vs Code

storyboard

storyboard는 iOS5부터 도입됐다

장점

  • 결과물을 예측하기 쉬움. 속성을 쉽게 확인가능
  • 소스코드를 일일히 파악하지 않아도 UI 확인 가능
  • pop, push, present, dismiss를 코드로 치지 않을수도 있다.
  • 프로토타입 - 스토리보드는 사용자 인터페이스 및 흐름의 프로토타이핑 및 목업을 단순화한다.
    • SwiftUI 가 나온 지금에 와서 장점으로 불리기 애매함

단점

  • 화면 로딩 시 무겁다 (스토리 보드 분리로 약간 해결 가능)
  • 링크가 끊어졌을 때 파악하기 힘들다 ( IBOutlet, IBAction )
  • 협업 문제 ( Diff 로 알기 힘들고, Conflict 나면 해결 어려움 ) - 여러 storyboard로 나누면 충돌 가능성을 줄일 수도 있음
  • 데이터 흐름이 표시되지 않는다 prepareSegue에 의존 (storyboard만으로 데이터를 전달하려 할 때)
  • 앱이 커지면 커질수록 가독성이 떨어진다

Code Base

장점

  • 가볍다 (코드만 나와 있으므로)
  • Diff 만 보고 파악하기 쉽다. Conflict 발생 가능성이 낮아진다
  • Under the Hood - 모든 UI요소에 제어감각이 생긴다. raises your upper-bound as a developer.
  • 재사용 용이
    • 두 개 이상의 View가 똑같은 모습을 보이는 것 같지만 약간 다른 경우
    • 각각 특정 사용자 지정이 있는 앱을 만들어야 하는 경우, 두 개 이상의 서로 다른 애플리케이션을 생성해야 합니다.
  • storyboard로 구현하는건 다 코드로 다 구현이 가능하다(Launch screen 제외)
  • 성능 측면에서 스토리보드 및 nib는 loading 및 parsing 오버헤드에 영향을 받음. 결국 간접적으로 코드로 변환

단점

  • 해당 컴포넌트를 숙지하고 있어야 한다.
  • 어떤 화면이 만들어질지 파악하기 힘들다.
  • 매우 오래전에 작성된 코드라면 리팩토링이 더 어려워진다
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment