[swift] Swift 앱에서 런치 이미지를 동적으로 생성하는 방법

앱을 실행할 때 화면에 나타나는 런치 이미지는 사용자에게 앱이 로딩 중임을 알려줍니다. 이러한 런치 이미지를 앱을 실행할 때마다 동적으로 생성하여 다양한 방식으로 표현해보는 것은 흥미로운 경험 제공 방법 중 하나입니다. 이 문서에서는 Swift로 앱 내에서 런치 이미지를 동적으로 생성하는 방법을 알아보겠습니다.

단계 1: 이미지 합성하기

첫 번째 단계는 원하는 이미지 요소들을 합성하여 실제 런치 이미지를 생성하는 것입니다. Swift에서는 UIGraphicsImageRenderer 클래스를 사용하여 이미지를 합성할 수 있습니다.

import UIKit

func createLaunchImage() -> UIImage? {
    let renderer = UIGraphicsImageRenderer(size: CGSize(width: 320, height: 480))
    
    let image = renderer.image { context in
        UIColor.red.setFill()
        context.fill(CGRect(x: 0, y: 0, width: 320, height: 480))
        
        let logoImage = UIImage(named: "logo")
        logoImage?.draw(in: CGRect(x: 100, y: 200, width: 120, height: 120))
    }
    
    return image
}

위 예제 코드에서는 크기가 320x480인 이미지를 생성하고, 빨간색 배경에 로고 이미지를 그립니다. 로고 이미지는 logo라는 이름으로 프로젝트의 이미지 파일에서 가져오도록 설정되어 있습니다.

단계 2: 앱 런치 이미지 설정하기

두 번째 단계는 앱에서 동적으로 생성한 이미지를 런치 이미지로 사용하도록 설정하는 것입니다. 이를 위해서는 Info.plist 파일을 열어야 합니다.

  1. Info.plist 파일을 엽니다.
  2. Application Scene Manifest 항목 아래에 있는 Launch Image 항목을 찾습니다.
  3. Launch Image 항목 하위에 있는 Item X 항목을 선택합니다. (X는 1부터 시작하는 숫자입니다.)
  4. 오른쪽에 설명이 보이면, 설명 아래에 있는 New Item 버튼을 클릭합니다.
  5. 나타나는 팝업 창에서 Source 필드를 클릭하고, Use Asset Catalog 옵션을 선택합니다.
  6. Asset Catalog 옆의 Choose... 버튼을 클릭하여 앞서 동적으로 생성한 이미지 파일을 선택합니다.

단계 3: 앱 실행해보기

이제 앱을 실행하면 설정한 동적 런치 이미지가 나타납니다. 앱을 갱신하거나 재설치하지 않아도 런치 이미지가 변경되는 것을 확인할 수 있습니다.

이처럼 Swift로 앱 내에서 런치 이미지를 동적으로 생성하는 방법을 알아보았습니다. 동적 런치 이미지를 활용하면 앱의 시작 화면을 더욱 흥미로운 디자인으로 제공할 수 있습니다.