Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Clean Code
- 리펙토링
- Human interface guide
- Observable
- 리펙터링
- Refactoring
- swift documentation
- tableView
- clean architecture
- rxswift
- Xcode
- MVVM
- HIG
- SWIFT
- Protocol
- uiscrollview
- combine
- 애니메이션
- 클린 코드
- ribs
- map
- UICollectionView
- 스위프트
- 리팩토링
- ios
- RxCocoa
- swiftUI
- UITextView
- uitableview
- collectionview
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] SwiftGen, 리소스 관리, swiftgen.yml 본문
SwiftGen
- R.swift와 같이 프로젝트 리소스를 Swift코드로 생성해주는것
- R.swift는 모든 리소스에 대해서 코드화가 되지만, SwiftGen은 Assets파일 따로, String파일 따로 코드화가 가능
- 문자열을 통해 Image등을 불러올 때 오타가 생길 위험을 피할 수 있는 장점 존재
SwiftGen 설치 전 준비
- SwiftGen 설치 전 준비
- 프로젝트 디렉토리에 Mintfile 생성
SwiftGen/SwiftGen@6.5.1
- 프로젝트 디렉토리에 Mintfile 실행
* Failed to resolve SwiftGen... 오류 발생 시 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 실행 후 재시도mint bootstrap --link # arm cpu인 경우 arch -arm64 mint bootstrap --link
- 전역변수에 위에 명시된 "/Users/jake.k/.mint/bin" path 추가
PATH=$PATH:/Users/jake.k/.mint/bin
Xcode에 빌드 스크립트 작성
- BuildPhases -> Targets -> + 버튼 클릭하여, "New run script phase" 눌러서 스크립트 생성
- mint run swiftgen 입력
- Compile Sources 위로 이동
- compile 되기 전에 SwiftGen 적용하기 위함
Input, Ouput 정의
- 초기화
$ swiftgen config init
- ouput파일이 저장될 Generated 폴더 생성
- swiftgen.yml 파일 자동으로 오픈
- 윗 부분의 input_dir, output_dir 부분 주석 해제 후 수정
- input_dir: 탐색할 폴더 스코프 "{ProjectName}/" - 프로젝트 하위 모든 경로 탐색
- output_dir: 저장할 폴더 위치 "{ProjectName}/Generated" - Generated 하위 그룹에 새로운 파일 생성
- 파일에서 사용할 부분 주석 해제
- ex) Assets 부분 주석 해제하여 활성화
- Inputs 정보 맞도록 수정
- 현재 Assets.xcassets 파일의 위치는 {프로젝트}/Assets.xcassets이지만, {프로젝트}부분은 input_dir에서 입력했으므로 디폴트로 이미 설정
- 하위 폴더만 작성
- ex) Assets 부분 주석 해제하여 활성화
- 전체 swiftgen.yml
input_dir: ExAssets/
output_dir: ExAssets/Generated/
xcassets:
inputs:
- Assets.xcassets
outputs:
- templateName: swift5
params:
forceProvidesNamespaces: true
output: XCAssets+Generated.swift
- 실험 용도로 Assets 폴더에 임의의 파일 추가
- 빌드
- Generated 폴더에는 파일이 존재하지 않지만 경로로가면 존재
- Xcode에 추가
- Add Files to "{Project name}" 클릭
- 두 옵션 체크 후 Add
- 코드로 접근 완료
코드 생성 시 enum 이름 변경
- params의 enumName으로 추가
- 빌드 후 확인 -> 변경 완료
* 전체 코드: https://github.com/JK0369/ExAssets
* 응용) SwiftGen을 이용하여 Localization 사용 방법 포스팅 글
* 참고
- https://www.raywenderlich.com/23709326-swiftgen-tutorial-for-ios
'빌드 환경 설정' 카테고리의 다른 글
Comments