[Swift] SwiftGen 스위프트 리소스 관리 사용 방법
- 오픈소스/Swift
- 2022. 9. 1.
SwiftGen 이란?
스위프트를 사용해서 앱을 만들다 보면 리소스 관리가 안드로이드에 비해서 훨씬 복잡하고 어렵다는 것을 알 수 있습니다. 어렵다기보다는 관리가 제대로 이루어지지 않아서 실수를 하는 경우도 많고 워낙 IDE 가 훌륭해서(?) 까다로운 경우가 많죠. 하지만 이러한 모든 문제를 알고 만들어진 오픈소스가 있습니다. SwiftGen이라는 오픈소스인데요. 글 쓰는 현재 8천 명이 넘게 즐겨찾기로 추가해놓았습니다. 다음의 항목들을 관리할 수 있게 해 줍니다.
- Assets Catalogs
- Colors
- Core Data
- Files
- Fonts
- Interface Builder files
- JSON and YAML files
- Plists
- Localizable strings
https://github.com/SwiftGen/SwiftGen
SwiftGen 적용하기
우선 SwiftGen을 사용하는 방법은 여러 가지가 있습니다. 기본적으로 Zip을 다운로드하여서 사용하는 방법과 Homebrew를 통해 인스톨하는 방법 그리고 아이폰 개발자에게 익숙한 CocoaPods를 사용하는 방법입니다. 저는 CocoaPods를 선택했습니다. 다른 방법으로 해도 사용방법은 비슷합니다.
▼ Podfile을 열고 다음과 같이 SwiftGen을 추가합니다. SwiftGen는 버전이 올라갈 경우 어떤 일을 초래할지 모르기 때문에 버전을 6.x로 고정했습니다.
▼ 프로젝트 파일을 열어서 다음과 같이 새로운 스크립트를 추가해줍니다. Build Phases 탭 메뉴에서 + 버튼을 누르고 New Run Script Phase 버튼을 눌러서 생성합니다. 그리고 다음 코드를 추가해줍니다.
▼ 터미널에서 해당 프로젝트 폴더로 이동한 다음 코드를 입력해서 새로운 swiftGen.yml 파일을 만들어줍니다.
▼ 모든 코드를 지우고 다음 코드를 입력합니다. 그리고 Colors라는 xcassets 파일을 만들어줍니다. input_dir, output_dir은 리소스의 경로를 나타냅니다. 보통 리소스 파일의 경우 프로젝트 폴더 아래에 있으니 해당 옵션을 제거해도 되지만 만약 리소스가 다른 폴더에 있다면 다음과 같이 input_dir 위치를 추가해줍니다. output_dir은 자동 생성된 제네레이트 파일이 저장되는 경로입니다. 이제 빌드를 이미지에서 보는 것과 같이 Colors+Generated.swift라는 파일이 자동으로 생성되는 것을 볼 수 있습니다.
▼ 다음은 자동으로 생성된 코드입니다. 저는 색상을 관리하고 싶어서 Colors라는 Assets을 만들었지만 다국어나 이미지를 처리하고 싶다면 이와 비슷하게 할 수 있을 것으로 예상됩니다. 그림에서 보시는 것과 같이 단순히 enum을 만들어주는 일을 합니다. 하지만 이걸 매번 색상이 바뀔 때마다 사람이 재정의하는 것은 정말 귀찮은 일이죠.
그동안 다국어를 노가다하면서 작업했는데 이제는 좀 쉬운 방법이 생긴 것 같아서 빨리 적용해 보고 싶네요. 다음에 다국어 처리에 대해서 정리되면 새로 글을 남기겠습니다. 지금까지 SwiftGen을 사용해서 프로젝트에 적용하는 법을 알아봤습니다. Swift 개발에 널리 사용되는 만큼 꼭 숙지하고 있는 것이 좋을 것 같습니다.
'오픈소스 > Swift' 카테고리의 다른 글
[Swift] CryptoSwift 암호화 라이브러리 사용방법 (0) | 2023.06.15 |
---|---|
[Swift] SwiftGen 스위프트 다국어 Localizable 사용 방법 (0) | 2022.09.16 |
[Swift] SwiftyUserDefaults 사용법 - 스위프트 NSUserDefaults API (0) | 2022.03.22 |