[swift] SwiftGen과 앱 번들 리소스 관리

앱 개발을 하다보면 앱 번들 내의 리소스를 효율적으로 관리해야하는 경우가 많습니다. 번들 내의 리소스는 이미지, 서식 파일, 로컬라이제이션 파일 등 다양한 형태로 존재할 수 있습니다. 이런 리소스들을 관리하는 작업은 번거롭고 실수할 가능성이 높은 작업이기도 합니다.

이때 SwiftGen은 앱 번들 내의 리소스를 자동으로 생성하는 도구로서 개발자에게 많은 편의를 제공해줍니다. SwiftGen을 사용하면 코드로 쉽게 리소스를 참조할 수 있고, 실수를 방지하고 일관된 방식으로 앱 리소스를 사용할 수 있습니다.

SwiftGen의 주요 기능들

1. 이미지 리소스

SwiftGen은 모든 이미지 리소스 파일에 대한 타입 세이프한 코드를 생성해줍니다. 이를 통해 이미지를 사용할 때 오타나 잘못된 파일명으로 인한 문제를 방지할 수 있습니다.

예를 들어, 프로젝트 내부에 Images 폴더 안에 icon.png라는 이미지 파일이 있다고 가정해보겠습니다. SwiftGen을 사용하면 이 이미지에 대한 코드를 다음과 같이 자동으로 생성해줍니다.

// Before
let image = UIImage(named: "icon")

// After (Using SwiftGen)
let image = UIImage(named: Asset.icon.name)

2. 서식 파일 리소스

SwiftGen은 서식 파일 리소스(폰트, 컬러, 애니메이션 등)를 위한 타입 세이프한 코드를 생성해줍니다. 이를 통해 서식 파일을 사용할 때 오타나 잘못된 키로 인한 문제를 방지할 수 있습니다.

예를 들어, 프로젝트 내부에 Colors 폴더 안에 theme_color라는 컬러 파일이 있다고 가정해보겠습니다. SwiftGen을 사용하면 이 컬러에 대한 코드를 다음과 같이 자동으로 생성해줍니다.

// Before
let color = UIColor(named: "theme_color")

// After (Using SwiftGen)
let color = asset.themeColor.color

3. 로컬라이제이션 파일

SwiftGen은 로컬라이제이션 파일을 위한 타입 세이프한 코드를 생성해줍니다. 이를 통해 로컬라이제이션을 사용할 때 오타나 잘못된 키로 인한 문제를 방지할 수 있습니다.

예를 들어, 프로젝트 내부에 Localizable.strings 파일이 있다고 가정해보겠습니다. SwiftGen을 사용하면 이 파일에 대한 코드를 다음과 같이 자동으로 생성해줍니다.

// Before
let string = NSLocalizedString("welcome_message", comment: "")

// After (Using SwiftGen)
let string = L10n.welcomeMessage

SwiftGen의 사용 방법

  1. SwiftGen을 프로젝트에 추가합니다. Cocoapods를 사용하는 경우 Podfile에 다음과 같이 추가하고 pod install을 실행합니다.
pod 'SwiftGen'
  1. SwiftGen의 커맨드 라인 인터페이스를 사용하여 리소스 파일을 분석하고 코드를 생성합니다.
$ swiftgen

이렇게 생성된 코드는 Generated 폴더에 저장되며, 프로젝트에서 이 코드를 사용할 수 있습니다.

마무리

SwiftGen은 앱 번들 내의 리소스를 관리하는 작업을 효율적으로 수행해주는 도구입니다. 이미지, 서식 파일, 로컬라이제이션 파일 등의 리소스에 대한 편리한 코드를 자동으로 생성해주기 때문에 실수를 방지하고 일관된 방식으로 리소스를 사용할 수 있습니다. SwiftGen을 사용하여 앱 개발 작업을 더욱 효율적으로 수행해보세요.

참고 자료