[swift] SwiftGen을 활용한 커스텀 타입 지원

SwiftGen은 Xcode 프로젝트에서 다양한 리소스 파일(이미지, 폰트, 색상 등)을 관리하고 접근할 수 있도록 도와주는 도구입니다. 일반적으로 SwiftGen은 Xcode에서 제공하는 기본 리소스 파일을 다루는 기능을 제공하지만, 필요한 경우 커스텀 타입을 지원하도록 확장할 수 있습니다.

커스텀 타입 지원하기

SwiftGen은 다양한 리소스 유형을 지원하기 위해 템플릿 기반으로 작동합니다. 따라서 커스텀 타입을 SwiftGen에서 지원하려면 다음과 같은 단계를 따르면 됩니다.

1. 템플릿 생성하기

먼저, 커스텀 타입을 지원하기 위한 템플릿 파일을 생성해야 합니다. 템플릿 파일은 .swiftgen.stencil 확장자로 지정하며, SwiftGen이 이 파일을 참조하여 코드를 생성합니다. 템플릿 파일은 특정한 구조를 갖추어야 하므로, SwiftGen의 공식 문서를 참조하여 작성해야 합니다.

2. 템플릿 설정하기

템플릿 파일을 생성한 후에는 SwiftGen 설정 파일에 해당 템플릿을 등록해야 합니다. 설정 파일은 swiftgen.yml이라는 이름으로 프로젝트 루트 디렉토리에 저장되어야 합니다. 설정 파일에는 템플릿 파일 경로와 함께 해당 템플릿을 어떤 유형으로 사용할 것인지 등록해야 합니다.

# swiftgen.yml

templates:
- templatePath: Path/To/Your/CustomTemplate.swiftgen.stencil
  outputs:
  - templateName: YourCustomType.swift
    output: Path/To/Your/GeneratedCode/YourCustomType.swift

3. 코드 생성하기

위 단계를 완료한 후에는 SwiftGen을 실행하여 코드를 생성할 수 있습니다. 터미널에서 프로젝트 루트 디렉토리로 이동한 뒤 다음 명령어를 실행합니다.

swiftgen

이 명령어는 설정 파일을 읽고 등록한 템플릿에 따라 코드를 생성합니다. 생성된 코드는 output으로 지정한 경로에 저장됩니다.

결론

SwiftGen의 확장 가능성은 매우 높습니다. 커스텀 타입을 지원하여 Xcode 프로젝트에서 사용하는 리소스를 더 효과적으로 관리할 수 있습니다. 위 단계를 따라 직접 커스텀 타입을 지원하는 SwiftGen 템플릿을 만들어보세요.

참고: SwiftGen 공식 문서