iOS/UIKit

[UIKit] 코드베이스 세팅하는 방법

kimsangjunzzang 2024. 12. 16. 19:25
728x90
반응형
UIKit을 사용하면서 코드베이스로 프로젝트를 세팅하는 방법을 남기려고 합니다.

우선 세팅하는 방법을 말하기에 앞서 프로젝트를 코드베이스로 세팅하면 뭐가 좋은지에 대하여 생각해보았습니다.

Code Base로 개발이 필요한 이유

1. 코드만으로 되어 있어서 가볍다.

2. Diff (다른 파일의 코드를 보고 비교하는 일) 보고 파악하기가 쉬워진다.

3. Conflict 발생 가능성이 낮아진다.

4. 재사용이 용이해진다.

5. 각각의 요소에 따른 제어하는 방법을 파악할 수 있다.

 

저는 이정도로 생각하고 있습니다. 전체적으로 협업을 하는데 있어 편해지는거 같습니다.

세팅하는 방법

1. MainStoryBoard 제거

  1. StoryBoard 파일을 제거 해준다.
  2. 나의 Project 파일에서 TARGETS으로 이동한다.
    1. 'Build Settings'으로 이동한다.
    2. 'Info.plist Values'에서 Setting에 'UIKit Main Storyboard File Base Name'이 설정되어 있는 것을 확인하고, 삭제한다.
  3. Info.plist 파일을 클릭한다.
    1. Storyboard Name'을 삭제한다.

2번에 해당하는 스크린 샷입니다.
3번에 해당하는 스크린 샷 입니다.

2. SceneDelegate Code 수정

App을 실행하면서 어떤 Scene에서 시작할 것인지 설정을 해주어야한다. Storyboard에서 지정해주었던 start entry point를 설정해야한다.

 

// Storyboard로 개발을 진행할 때 처음 작성되어 있었던 상태.
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
        // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
        // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
        guard let _ = (scene as? UIWindowScene) else { return }
    }

이 부분을 다음과 같이 수정 해주셔야 합니다.

func scene(_ scene: UIScene,
           willConnectTo session: UISceneSession,
           options connectionOptions: UIScene.ConnectionOptions) {
	// 최초로 사용할 windowScene 인스턴스를 생성
    guard let windowScene = (scene as? UIWindowScene) else { return }
	// 화면을 구성하는 UIWindow 인스턴스 생성
	let window = UIWindow(windowScene: windowScene)
    // 실제 첫 화면이 되는 MainViewController 인스턴스 생성
    let mainViewController = MainViewController()
    // NavigationController을 사용할 경우, MainViewController를 rootViewController로 갖는 NavigationController을 생성해야한다.
    let navigationController = UINavigationController(rootViewController: mainViewController)
    // UIWindow의 시작 ViewController를 생성한 NavigationController로 지정
    window.rootViewController = navigationController
	// window 표시.
	self.window = window
    // makeKeyAndVisible() 메서드 호출
    window.makeKeyAndVisible()
}

 

728x90
반응형