[Swift] SwiftGen 스위프트 리소스 관리 사용 방법

반응형

 SwiftGen 이란? 

 

스위프트를 사용해서 앱을 만들다 보면 리소스 관리가 안드로이드에 비해서 훨씬 복잡하고 어렵다는 것을 알 수 있습니다. 어렵다기보다는 관리가 제대로 이루어지지 않아서 실수를 하는 경우도 많고 워낙 IDE 가 훌륭해서(?) 까다로운 경우가 많죠. 하지만 이러한 모든 문제를 알고 만들어진 오픈소스가 있습니다. SwiftGen이라는 오픈소스인데요. 글 쓰는 현재 8천 명이 넘게 즐겨찾기로 추가해놓았습니다. 다음의 항목들을 관리할 수 있게 해 줍니다.

 

https://github.com/SwiftGen/SwiftGen

 

GitHub - SwiftGen/SwiftGen: The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all S

The Swift code generator for your assets, storyboards, Localizable.strings, … — Get rid of all String-based APIs! - GitHub - SwiftGen/SwiftGen: The Swift code generator for your assets, storyboards...

github.com

 

 SwiftGen 적용하기 

 

우선 SwiftGen을 사용하는 방법은 여러 가지가 있습니다. 기본적으로 Zip을 다운로드하여서 사용하는 방법과 Homebrew를 통해 인스톨하는 방법 그리고 아이폰 개발자에게 익숙한 CocoaPods를 사용하는 방법입니다. 저는 CocoaPods를 선택했습니다. 다른 방법으로 해도 사용방법은 비슷합니다.

 

 

Podfile을 열고 다음과 같이 SwiftGen을 추가합니다. SwiftGen는 버전이 올라갈 경우 어떤 일을 초래할지 모르기 때문에 버전을 6.x로 고정했습니다.

cocoapods


 

 

 

프로젝트 파일을 열어서 다음과 같이 새로운 스크립트를 추가해줍니다. Build Phases 탭 메뉴에서 + 버튼을 누르고 New Run Script Phase 버튼을 눌러서 생성합니다. 그리고 다음 코드를 추가해줍니다.

New Run Script Phase


 

 

 

터미널에서 해당 프로젝트 폴더로 이동한 다음 코드를 입력해서 새로운 swiftGen.yml 파일을 만들어줍니다.

 

 

모든 코드를 지우고 다음 코드를 입력합니다. 그리고 Colors라는 xcassets 파일을 만들어줍니다. input_dir, output_dir은 리소스의 경로를 나타냅니다. 보통 리소스 파일의 경우 프로젝트 폴더 아래에 있으니 해당 옵션을 제거해도 되지만 만약 리소스가 다른 폴더에 있다면 다음과 같이 input_dir 위치를 추가해줍니다. output_dir은 자동 생성된 제네레이트 파일이 저장되는 경로입니다. 이제 빌드를 이미지에서 보는 것과 같이 Colors+Generated.swift라는 파일이 자동으로 생성되는 것을 볼 수 있습니다.

새로운 리소스 파일 생성


 

다음은 자동으로 생성된 코드입니다. 저는 색상을 관리하고 싶어서 Colors라는 Assets을 만들었지만 다국어나 이미지를 처리하고 싶다면 이와 비슷하게 할 수 있을 것으로 예상됩니다. 그림에서 보시는 것과 같이 단순히 enum을 만들어주는 일을 합니다. 하지만 이걸 매번 색상이 바뀔 때마다 사람이 재정의하는 것은 정말 귀찮은 일이죠.

Colors+Generated.swift


 

 

그동안 다국어를 노가다하면서 작업했는데 이제는 좀 쉬운 방법이 생긴 것 같아서 빨리 적용해 보고 싶네요. 다음에 다국어 처리에 대해서 정리되면 새로 글을 남기겠습니다. 지금까지 SwiftGen을 사용해서 프로젝트에 적용하는 법을 알아봤습니다. Swift 개발에 널리 사용되는 만큼 꼭 숙지하고 있는 것이 좋을 것 같습니다.

 

 

 


반응형

댓글

Designed by JB FACTORY