본문 바로가기

Xcode

[Xcode] storyboard 없이 프로젝트 시작하기

안녕하세요

오늘은 storyboard 없이 ViewController()를 불러오는 방법에 대해 설명하도록 하겠습니다.

ViewController()는 프로젝트 생성 시 자동으로 만들어지는 UIViewController입니다.

 

스토리보드의 장단점이 몇 가지 있는데, 제가 개발하면서 느낀 점을 적어보겠습니다.

 

  장점 단점
1. 소스코드가 줄어든다. object가 많아질수록 sotryboard build가 오래 걸린다.
2. 화면 개발 시 바로바로 눈으로 확인이 가능하다. 프로젝트가 무거워진다.
3. ModalStyle, Navigation, TabBar 등등 설정이 간편하다. inspector Area에 없는 부분은 결국 소스코드를 작성한다.
4. Object에 어떤 기능이 있는지 inspector Area에서 쉽게 확인이 가능하다. 협업할 경우 conflict가 발생하면 수정이 어렵다.

표 1. 스토리보드의 장/단점

 

장/단점은 직접 해보면서 느끼셨을 거라 생각합니다. ㅎㅎ

아무튼 storyboard 없이 프로젝트를 시작하는 방법에 대해 설명하겠습니다.

 

[Xcode version: 12.2]

1. 프로젝트 생성

storyboard를 사용하지 않고 개발할 프로젝트를 생성해 줍니다.

그림 1. 프로젝트 설정

2. Main.Storyboard 제거

Main.storyboard를 제거해주세요.

그림 2. Main.storyboard 제거

3. info.plist - Main storybard 정보 제거

info.plist에 들어가면 프로젝트 시작 시 기본으로 사용되는 storyboard name이 있는데 storyboard를 사용하지 않으니 제거해줍니다.

 

3-1. Main storyboard file base name 제거

info.plist에서 'Main storyboard file base name'을 과감히 지워주세요!!

'Main storybaord file base name' 선택 후 backspace를 클릭하셔도 되고, Key name 오른쪽에 [-] 버튼 누르셔도 됩니다.

그림 3. info.plist main storyboard 제거

3-2. Main storyboard file base name 제거 (SceneDelegate 사용 시)

SceneDelegate를 사용할 경우는 추가로 정보를 제거해 주셔야 합니다.

 

Application Scene Manifest / Scene Configuration / Application Session Role / item 안에 들어있는

"Storyboard Name"항목을 제거해주세요.

그림 4. SceneDelegate storyboard 제거

4. Root UIViewController 설정

Main으로 설정해둔 UIViewController가 없기 때문에 그냥 빌드를 하면 아무것도 나타나지 않고 검은 화면만 나오게 됩니다.

그러므로 AppDelegate와 SceneDelegate(선택사항)에서 root UIViewController를 지정해줍니다.

4-1. AppDelegate.swift 

아래 코드를 AppDelegate.swift에 작성해 주세요.

window 변수가 없는 경우 window 변수도 작성해 줍니다.

var window: UIWindow? // 없는경우 변수 선언하기

window = UIWindow()
window?.rootViewController = ViewController() // root로 설정할 UIViewController
window?.makeKeyAndVisible()

그림 5. AppDelegate.swift 소스코드

4-2. SceneDelegate.swift (선택사항)

아래 코드를 SceneDelegate.swift에서 작성해 주세요.

SceneDelegate.swift를 사용하지 않는 경우에는 다음 step으로 넘어가 주세요.

 

guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
window?.rootViewController = ViewController() // root로 설정할 UIViewController
window?.makeKeyAndVisible()

그림 6. SceneDelegate.swift 소스코드

 

5. Root UIViewController 'backgroundColor'

환경설정은 모두 끝났지만, 그대로 빌드하면 검정화면만 나올 겁니다.

그 이유는 root로 설정해둔 UIViewController의 view 색상이 없기 때문입니다.

고로 view의 색상을 지정해주면 끝!

 

view.backgroundColor = .green

그림 7. rootViewController backgroundColor 적용

6. Build

마지막으로 확인을 해봐야겠죠??

Build 해서 잘 나오는지 확인해 줍니다.

그림 8. build project

 

 

오늘은 이렇게 해서 Storyboard 없이 프로젝트 설정하는 방법에 대해 알아봤습니다.

만약 오류가 있다면 댓글로 남겨주시기 바랍니다.

감사합니다.

 

끝.

반응형