[swift] 앱 런치 이미지에 스플래시 화면으로 사용하기

앱을 처음 실행할 때 보여지는 런치 이미지는 사용자 경험을 개선하기 위해 중요합니다. 이번 포스트에서는 Swift 언어를 사용하여 앱 런치 이미지를 스플래시 화면으로 사용하는 방법을 알아보겠습니다.

1. 런치 이미지 추가

먼저 앱 프로젝트의 Assets.xcassets 탐색기에서 LaunchImage 그룹을 선택합니다. 여기에 앱이 실행될 때 보여질 런치 이미지를 추가합니다. 일반적으로 앱의 로고, 이름 또는 기타 시각적 요소를 포함하는 이미지를 사용합니다.

2. 스플래시 화면 뷰 컨트롤러 생성

스플래시 화면의 역할을 담당할 뷰 컨트롤러를 생성합니다. 이 뷰 컨트롤러는 앱이 처음 실행될 때 자동으로 표시되고, 일정 시간 동안 화면에 유지됩니다.

import UIKit

class SplashViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // 스플래시 화면의 디자인 및 설정을 진행합니다.
        // 예시: 배경색, 로고 이미지 등
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
            self.navigateToMainScreen()
        }
    }
    
    private func navigateToMainScreen() {
        let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
        let mainViewController = mainStoryboard.instantiateViewController(withIdentifier: "MainViewController")
        UIApplication.shared.windows.first?.rootViewController = mainViewController
        UIApplication.shared.windows.first?.makeKeyAndVisible()
    }
}

위의 코드에서는 viewDidAppear 메서드에서 딜레이를 적용하여 스플래시 화면이 일정 시간 동안 유지되도록 하였습니다. 딜레이 시간은 필요에 따라 조정할 수 있습니다.

3. 스플래시 화면 뷰 컨트롤러 설정

앱의 델리게이트 파일인 AppDelegate.swift에서 스플래시 화면을 띄우기 위해 뷰 컨트롤러를 추가해야 합니다.

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    // ...

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // 스플래시 화면을 위한 뷰 컨트롤러 인스턴스 생성
        let splashViewController = SplashViewController()
        // 앱의 루트 뷰 컨트롤러로 설정
        window?.rootViewController = splashViewController
        
        return true
    }

    // ...
}

앱이 실행됐을 때 스플래시 화면을 먼저 보여주기 위해 AppDelegate의 application(_:didFinishLaunchingWithOptions:) 메서드에서 앱의 루트 뷰 컨트롤러로 스플래시 화면 뷰 컨트롤러를 설정합니다.

4. 메인 화면으로 이동

위에서 설정한 딜레이 시간이 지난 후 메인 화면으로 이동하게 됩니다. navigateToMainScreen 메서드에서 메인 화면으로 이동하는 코드를 작성합니다. 이때, 이동할 뷰 컨트롤러의 식별자를 사용하여 해당 뷰 컨트롤러의 인스턴스를 생성한 뒤, 윈도우의 루트 뷰 컨트롤러를 변경합니다.

위의 코드에서는 “MainViewController” 식별자를 사용하여 메인 화면의 뷰 컨트롤러 인스턴스를 생성한 후, 윈도우의 루트 뷰 컨트롤러로 설정합니다. 필요에 따라 다른 식별자를 사용하거나, 다른 방식으로 화면 이동 코드를 작성할 수 있습니다.

결론

위의 과정을 따라가면 앱의 런치 이미지를 스플래시 화면으로 사용할 수 있습니다. 사용자에게 앱이 로드되고 있음을 시각적으로 보여줌으로써 앱의 사용성을 향상시킬 수 있습니다.

또한, 스플래시 화면을 추가로 디자인하거나 애니메이션 효과를 추가하여 사용자 경험을 개선할 수도 있습니다.

참고 자료: