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 오버헤드에 영향을 받음. 결국 간접적으로 코드로 변환
단점
- 해당 컴포넌트를 숙지하고 있어야 한다.
- 어떤 화면이 만들어질지 파악하기 힘들다.
- 매우 오래전에 작성된 코드라면 리팩토링이 더 어려워진다
reference
https://duwjdtn11.tistory.com/563
https://www.toptal.com/ios/ios-user-interfaces-storyboards-vs-nibs-vs-custom-code