개발자분이 추천해주셔서 알게됐다.
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
'iOS' 카테고리의 다른 글
PHImageManager의 requestImage targetSize 문제..? (0) | 2021.11.26 |
---|---|
설정앱에 라이센스 내용 추가하기 (0) | 2021.10.20 |
앱 testFlight에 업로드 및 테스터 초대하기 (0) | 2021.09.23 |
UITabBarItem 이미지가 원본과 다르게 보이는 현상 해결하기 (0) | 2021.09.17 |
Google Drive API 사용하기- iOS (1) | 2021.09.09 |