코드베이스 UI
스토리보드나 SwiftUI를 사용하지 않고 코드로 직접 UI를 구현하는 것을 말한다.
장점
협업을 위해 깃허브에 올렸을때 가독성이 좋고 매우 깔끔하게 보기 좋다는 장점이 있다.
단점
단점으로는 보면서 할 수가 없기 떄문에, 일일히 실행을 시켜줘야한다는 장점이 있다.
코드베이스로 코딩하기 위해 3가지 사항을 먼저 수행해 주어야 한다.
우리는 Storyboard를 사용하지 않을 것이기 때문에, 이것과 관련된 연결을 모두 끊어주어야 한다.
1. Main.storyboard 제거
2. info.plist에서 Storyboard Name 부분 제거
3. 프로젝트를 누르고, Build settings로 이동한뒤 Main 검색, 그리고 제거
이제 스토리보드와의 연결은 완벽하게 끊어졌고, 시작점을 Storyboard가 아닌 코드로 지정해주어야 한다.
이 부분에서 두가지로 갈린다.
단일 뷰를 사용할때와, 화면전환과 같은 UI를 구현하기 위해서 사용하는 다중 뷰.
단일 뷰를 사용할 때 작성해야 할 코드
SceneDelegate에서 scene 함수 안에 아래와 같은 코드를 추가해준다
//UIWindowScene 객체 생성.
guard let windowScene = (scene as? UIWindowScene) else { return }
let window = UIWindow(windowScene: windowScene)
//window에게 루트 뷰 컨르롤러 지정.
window.rootViewController = ViewController()
//이 메서드를 반드시 작성해줘야만 윈도우가 활성화 됨
window.makeKeyAndVisible()
self.window = window
이렇게 추가하면 된다.
다중 뷰를 사용할 때 작성해야할 코드
위치와 방법은 같다.
//UIWindowScene 객체 생성.
guard let windowScene = (scene as? UIWindowScene) else { return }
let window = UIWindow(windowScene: windowScene)
//window에게 루트 뷰 컨트롤러 지정.
window.rootViewController = UINavigationController(rootViewController: ViewController())
//이 메서드를 반드시 작성해줘야만 윈도우가 활성화 됨
window.makeKeyAndVisible()
self.window = window
rootViewController 부분의 코드만 달라졌다.
전에는 단일로 그냥 ViewController를 바로 root로 설정했는데,
이번에는 UINavigationController를 root로 선언하고 그 안에서도 ViewController가 root가 되기 때문에,
결국 앱을 처음 실행시켰을때 보이는 것은 ViewController가 되는 것이다.
그리고 ViewController에 가서 디버깅용으로 프린트문을 하나 작성해서 문제 없이 잘 셋팅 되었는지 확인해보자.
그리고 실행해보면,
프린트문이 정상적으로 출력됨으로써 문제 없이 코드베이스로 UI를 작성할 준비가 끝나게 되었다.
'OS > iOS' 카테고리의 다른 글
[iOS / Swift] 라이브러리 SnapKit이란? (0) | 2024.12.24 |
---|---|
[Swift / iOS] LaunchScreen 설정 (UIKit, Storyboard) (0) | 2024.12.16 |
[iOS] Stack View (0) | 2024.11.19 |
Swift 디버깅 (0) | 2024.11.15 |
[iOS] 앱 생명주기 (0) | 2024.11.13 |
살아남는 iOS 개발자가 되기 위해 끊임없이 노력하고 있습니다.