SwiftGen 설치하는 방법
개발자분이 추천해주셔서 알게됐다.
https://github.com/SwiftGen/SwiftGen#installation
SwiftGen은 프로젝트에 필요한 리소스들을 자동적으로 코드로 생성해주는 아주 편리한 녀석이다.
일반적으로 리소스 ( Asset파일이나, 폰트 등 ) 들을 불러와서 코드로 작성할 때, 이름을 정확하게 입력해야 문제없이 불러올 수 있는데,
간혹 실수로 오타를 내거나 하면 불러오질 못한다. 곧바로 오타라는 것을 캐치하면 좋겠지만 때로는 다른 문제라고 생각하여 시간을 허비하는 경우도 발생한다.
그러므로, SwiftGen은 이러한 오타의 위험을 줄여줌으로써 좀 더 개발에 집중할 수 있도록 도와준다.
설치하기
굉장히 다양한 방법으로 설치할 수 있다.
HomeBrew로 설치한다면 이제 자신의 맥에서는 어떤 프로젝트든 쉽게 SwiftGen을 사용할 수 있다.
코드 생성하기
요약
- 1. 특정 리소스들을 코드로 생성하기 위한 template 같은게 필요하다. - swiftgen.yml 파일
- 2. swiftgen.yml 파일이 있다면 swiftgen config run 을 실행하여 코드들을 생성해낸다.
HomeBrew로 설치했다면,
이제 특정 리소스들을 코드로 생성하기 위한 파일이 필요하다.
swiftgen.yml 파일이 필요한데,
이는 터미널로도 해당 프로젝트 최상단에서 swiftgen config init 이라고 입력하여 파일을 생성할 수 있고,
또는 Build Phase - Run Script에서 다음과 같이 작성하여 빌드하면 파일이 생성되는 걸 확인할 수 있다.
그러면 최상단에 swiftgen.yml 파일이 생성되고, 다 주석처리 되어있다.
그럼 이제 코드로 생성하고자 하는 리소스들을 인풋 경로와, 아웃풋 경로를 적절히 작성하면 된다.
특정 리소스들에 대한 형식은 깃헙 - SwiftGen 하단에 잘 나타나있다.
우선 xcasset과 font를 경로를 지정했다.
만약 xcasset를 각각 따로 생성하고 싶다면 - inputs 로 열어주면 된다.
그리고 다음과 같이 코드를 생성해는 명령어 swiftgen config run 를 입력하면 인풋 경로에 맞는 리소스들을 아웃풋 경로에 생성해준다.
마찬가지로 명령어는 터미널에서도 입력해도 되고,
Run script에 작성해도 된다. ( 그럼 이제 매번 빌드할 때 마다 아래 명령어가 실행되고, swiftgem.yml 파일을 해석해서 자동적으로 코드 파일을 생성 또는 업데이트 해준다 )
그럼 이제 지정한 경로에 파일이 생성된다.
ImageAssets.swift파일은 아래와 같이 생성된다.
( 컬러는 되도록이면 colors template를 사용하지 말고 Assets에서 넣어서 정의하는 걸 추천한다고 한다 )
그럼 해당 파일을 프로젝트에 넣어주면 된다!
그러면 코드에서는 다음과 같이 불러와서 사용할 수 있다
추가적인 파라미터
template내에서도 파라미터를 override하여 변경할 수 있는 파라미터가 여러개 있다.
아래에서 특정 template를 선택해서 파라미터들을 확인할 수 있다.
https://github.com/SwiftGen/SwiftGen/tree/stable/Documentation/templates
xcassets의 파라미터는 아래에서 확인할 수 있다.
- enum 타입의 이름을 변경하거나,
- enum 타입내의 image or color의 타입이름을 변경할 수도 있다.
- public or internal 정의 ( default로 internal )
https://github.com/SwiftGen/SwiftGen/blob/stable/Documentation/templates/xcassets/swift5.md