<h1><center> Code-BaseUI와 Storyboard, XIB의 차이점은 </center></h1> ###### tags: `💻 TIL`, `Swift` ###### date: `2024-02-01T15:12:33.284Z` > [color=#724cd1][name=데릭] > [iOS - Architecture](https://github.com/protocorn93/iOS-Architecture) ## 개요 > SwiftUI가 나오기 전에는 UI를 구현할 때, 어떻게 했을까? > 어떤 차이점들이 있을까? ## Code-Base UI Code-Base UI는 말 그대로 코드로 직접 UI를 작성하는 방식을 말한다. - 주로 동적인 Custom UI를 만들 때 사용한다. - 버전 관리가 용이하고, 동적인 UI를 쉽게 만들 수 있다. - 코드로 작성된 UI는 프로그램을 제어할 때, 높은 유연성을 가지고 있다. **단점** 1. 시각적 표현 부족: Storyboard, XIB에 비해 시각적인 툴이 부족하여 디자인을 즉각적으로 확인하기 어렵다. 2. 복잡성 증가: 동적이고 복잡한 UI를 다룰 때 코드의 양이 증가하고, 이에 따라 유지보수의 어려움이 발생할 수 있다. ## Storyboard & XIB > Storyboard와 XIB는 Interface Builder라는 툴을 사용하여 UI를 구현하는 방식이다. **Storyboard** - 여러 뷰 컨트롤러 간의 전환을 시각적으로 표현하는 데 사용된다. - 하나의 파일에 여러 뷰 컨트롤러, 화면 흐름 및 화면 간 전환을 표현할 수 있다. - 앱의 전체 구조를 파악하기 쉽다. **XIB** - 단일 뷰나 뷰 컨트롤러를의 디자인을 위해 사용되며, 주로 재사용 가능한 UI 컴포넌트를 만들거나 특정 화면의 디자인을 분리하여 구현하는 데 사용한다. - 특정 UI 컴포넌트나 화면의 디자인을 단일 파일로 분리하여 유지보수성을 높일 수 있다. **단점** 1. 병합 충돌: 같은 Storyboard or XIB 파일을 수정할 때 병합 충돌이 발생할 수 있다. 2. 시각적 복잡성: 복잡한 UI의 경우, Storyboard, XIB 파일이 길어질 수 있어 파악하기 어려울 수 있고, Autolayout 설정을 파악하기 어려울 수 있다. 3. 재사용 어려움: XIB 파일의 재사용이나 여러 프로젝트에서의 공통 사용이 어려울 수 있다. 4. 로드 시간 증가: 프로젝트의 크기가 커질수록 Storyboard, XIB 파일을 읽어들이는 데에 시간이 늘어날 수 있다.