[swift] SwiftGen과 함께 사용하는 파일 관리

iOS 앱 개발 시 리소스 파일을 효율적으로 관리하는 것은 매우 중요합니다. SwiftGen은 이를 도와주는 유용한 도구 중 하나입니다. SwiftGen은 각종 리소스 파일을 코드로 자동으로 생성해주어 개발자가 쉽게 사용할 수 있도록 도와줍니다. 그러나 SwiftGen을 사용할 때 몇 가지 주의해야 할 점이 있습니다. 이번 포스트에서는 SwiftGen 사용 시 파일 관리에 대해 알아보겠습니다.

1. 디렉터리 구조 설계

SwiftGen을 사용하면 리소스 파일을 코드로 쉽게 가져올 수 있습니다. 하지만 이를 위해서는 앱의 디렉터리 구조를 잘 설계해야 합니다. 예를 들어, 이미지 리소스 파일은 ‘Assets’라는 디렉터리에 저장하고, 로컬라이제이션 파일은 ‘Localization’이라는 디렉터리에 저장하는 것이 좋습니다. 각 리소스 파일의 타입에 맞는 디렉터리를 만들어 두면, 코드에서 해당 디렉터리를 참조하여 리소스 파일에 쉽게 접근할 수 있습니다.

2. SwiftGen 설정 파일 작성

SwiftGen을 사용하기 위해서는 프로젝트 루트 디렉터리에 SwiftGen 설정 파일을 작성해야 합니다. 이 설정 파일은 어떤 리소스 파일을 코드로 가져올 것인지, 어떤 디렉터리 구조를 사용할 것인지 등을 정의하는 역할을 합니다. 설정 파일은 YAML 형식으로 작성되며, 각각의 리소스 타입(예: 이미지, 폰트, 색상 등)에 대한 설정을 지정할 수 있습니다.

# swiftgen.yml

assets:
  inputs:
    - Assets/*.xcassets

strings:
  inputs:
    - Localization/*.strings
  output:
    templateName: structured-swift4
    params:
      enumName: LocalizedStrings

위의 예시는 ‘Assets’ 폴더에 있는 xcassets 파일과 ‘Localization’ 폴더에 있는 strings 파일을 SwiftGen으로 처리하도록 설정한 것입니다. 설정 파일을 작성해야만 SwiftGen이 정확하게 리소스 파일을 관리하고 코드로 생성해줄 수 있습니다.

3. SwiftGen 명령어 실행

설정 파일을 작성한 후에는 SwiftGen을 실행하여 리소스 파일을 코드로 생성해야 합니다. 다음과 같은 명령어를 사용하여 SwiftGen을 실행할 수 있습니다.

$ swiftgen

이 명령어를 프로젝트 루트 디렉터리에서 실행하면 SwiftGen은 설정 파일에 정의된 리소스 파일을 기반으로 코드를 생성합니다. 생성된 코드는 앱 프로젝트에 자동으로 추가되어 리소스 파일을 쉽게 사용할 수 있도록 해줍니다.

4. 생성된 코드 사용

SwiftGen이 리소스 파일로부터 생성한 코드는 일반적으로 Generated라는 디렉터리에 저장됩니다. 생성된 코드를 사용하려면 해당 파일을 앱 프로젝트에 추가해야 합니다. 그 후에는 생성된 코드를 직접 사용하거나, 각종 리소스에 접근하기 위해 필요한 메소드나 열거형을 사용할 수 있습니다.

아래는 SwiftGen을 사용하여 이미지 리소스에 접근하는 예시 코드입니다.

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let imageView = UIImageView(image: UIImage(asset: .logo))
        self.view.addSubview(imageView)
    }
}

위의 코드에서 UIImage(asset: .logo)라는 구문으로 SwiftGen에서 자동으로 생성한 이미지 리소스에 접근합니다.

마무리

SwiftGen을 사용하여 리소스 파일을 관리하면 코드에서 리소스에 접근하기 편리해지며, 오타나 잘못된 사용을 방지할 수 있습니다. 디렉터리 구조 설계와 SwiftGen 설정 파일 작성에 주의하면서 SwiftGen을 적극적으로 활용해보세요.

References