[swift] SwiftGen과 함께 사용하는 비즈니스 로직

SwiftGen은 Swift 코드에서 리소스 파일에 접근하기 위한 유용한 도구입니다. 이 도구를 사용하면 이미지, 색상, 문자열 등의 리소스에 쉽게 접근할 수 있습니다.

이번 블로그 포스트에서는 SwiftGen을 사용하여 비즈니스 로직에서 리소스 파일에 접근하는 방법을 알아보겠습니다.

SwiftGen 설치

SwiftGen을 사용하기 위해선 먼저 Cocoapods나 Swift Package Manager를 통해 SwiftGen을 설치해야 합니다. Cocoapods를 사용하는 경우, Podfile에 다음과 같은 dependencies를 추가하고 pod install 명령어를 실행합니다.

target 'MyApp' do
  #...
  pod 'SwiftGen'
end

Swift Package Manager를 사용하는 경우, Xcode에서 다음과 같이 패키지를 추가합니다.

  1. File > Swift Packages > Add Package Dependency…
  2. Repository URL 입력: https://github.com/SwiftGen/SwiftGen.git
  3. Rules, Options 설정 후 Finish

리소스 파일 구성

SwiftGen은 프로젝트 내의 리소스 파일들을 기반으로 코드를 자동으로 생성해줍니다. 따라서 리소스 파일들을 적절히 구성하는 것이 중요합니다.

예를 들어, 이미지 파일을 사용한다면, Images.xcassets 폴더를 생성하고 이미지 파일들을 그 안에 추가해줍니다. 문자열을 사용한다면, Localizable.strings 파일을 생성하고 필요한 언어별로 문자열을 정의합니다.

SwiftGen 사용

SwiftGen을 사용하여 생성된 코드를 비즈니스 로직에 적용하는 방법은 다음과 같습니다.

이미지 사용

  1. swiftgen.yml 파일 생성 프로젝트의 루트 폴더에 swiftgen.yml 파일을 생성합니다. 이 파일에는 SwiftGen이 어떤 리소스 파일들을 사용할지를 설정할 수 있습니다.

    예를 들어, 이미지 리소스를 사용한다면, 다음과 같은 내용을 작성합니다.

    # swiftgen.yml
    images:
      inputs:
        - Resources/Images/*.xcassets
    
  2. 코드에서 이미지 사용 SwiftGen은 swiftgen.yml 파일을 기반으로 이미지에 대한 타입 안전한 코드를 자동으로 생성합니다. 이를 사용하여 이미지를 로드하고 표시할 수 있습니다.

    // 이미지 로드
    let image = Asset.ImageName.image
    
    // 이미지 표시
    imageView.image = image
    

문자열 사용

  1. swiftgen.yml 파일 업데이트 이미 swiftgen.yml 파일이 있는 경우, 다음 내용을 추가하여 문자열 리소스를 사용하도록 설정합니다.

    # swiftgen.yml
    strings:
      inputs:
        - Resources/Localizable.strings
    

    swiftgen.yml 파일이 없는 경우, 이전 단계에서 작성한 파일을 참조하는 설정을 추가합니다.

  2. 코드에서 문자열 사용 자동으로 생성된 코드를 사용하여 문자열을 언어별로 가져올 수 있습니다.

    // 문자열 가져오기
    let title = L10n.Home.title
    
    // 문자열 표시
    label.text = title
    

이처럼 SwiftGen을 비즈니스 로직에 적용하는 방법을 알아보았습니다. SwiftGen을 사용하면 리소스 파일에 접근하기 편리해지며, 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

SwiftGen에 대한 더 자세한 내용은 공식 문서를 참조하시기 바랍니다.