[swift] SwiftGen 템플릿 및 파일 구조
SwiftGen은 iOS 및 macOS 앱에서 사용되는 리소스를 자동으로 생성하는 도구입니다. 이를 통해 이미지, 색상, 폰트, 스트링과 같은 리소스들을 강력한 타입 안전한 코드로 접근할 수 있습니다.
이번 블로그 포스트에서는 SwiftGen의 템플릿 및 파일 구조에 대해 알아보겠습니다.
1. SwiftGen 템플릿
SwiftGen은 여러 리소스 유형을 처리할 수 있는 다양한 템플릿을 제공합니다.
asset
템플릿: 이미지, JSON, PDF 등과 같은 리소스를 처리합니다.colors
템플릿: 색상 리소스를 처리합니다.fonts
템플릿: 폰트 리소스를 처리합니다.strings
템플릿: 스트링 리소스를 처리합니다.
이 템플릿들은 SwiftGen으로 생성된 리소스 코드를 커스텀하게 만들고 싶을 경우 유용하게 사용됩니다.
2. 파일 구조
SwiftGen은 보통 다음과 같은 파일 구조를 가집니다.
├── Source
│ ├── Assets
│ │ ├── Images.xcassets
│ │ ├── Colors.txt
│ │ ├── Fonts.txt
│ │ └── Strings.txt
│ └── Generated
│ └── Generated.swift
├── Templates
│ ├── AssetTemplate.stencil
│ ├── ColorsTemplate.stencil
│ ├── FontsTemplate.stencil
│ └── StringsTemplate.stencil
├── swiftgen.yml
└── main.swift
Source
: 리소스 소스 파일을 담는 디렉토리입니다.Assets
: 이미지 및 기타 리소스 파일들을 담는 디렉토리입니다.Generated
: SwiftGen에서 생성한 코드가 저장되는 디렉토리입니다.
Templates
: 템플릿 파일들을 담는 디렉토리입니다.swiftgen.yml
: SwiftGen의 설정 파일입니다.main.swift
: SwiftGen을 실행하는 메인 스크립트 파일입니다.
3. 예제 코드
다음은 SwiftGen을 사용하여 Assets, Colors, Fonts, Strings를 처리하는 예제 코드입니다.
import UIKit
import SwiftGen
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 이미지 리소스 사용 예제
let image = UIImage(named: Asset.logo.name)
let color = UIColor(named: Color.primary.name)
let font = UIFont(named: Font.title.name)
let localizedString = L10n.greeting
// ... 리소스 사용 코드 작성 ...
}
}
위의 코드에서 Asset
, Color
, Font
, L10n
은 각각 SwiftGen에서 생성된 유형 안전한 코드입니다. 이를 통해 리소스에 접근할 때 오타나 잘못된 사용을 방지할 수 있습니다.
4. 참고 자료
위의 링크는 SwiftGen의 GitHub 저장소로, SwiftGen의 자세한 사용 방법과 기능에 대한 정보를 얻을 수 있습니다.
이제 SwiftGen의 템플릿 및 파일 구조를 알아보았습니다. SwiftGen을 사용하여 리소스를 자동으로 생성하고 강력한 타입 안전한 코드를 작성해보세요!