일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DISPATCH
- RxSwift
- UserDefaults
- Custom Class
- swift
- reversed
- hitTest
- weak self
- readLine
- 공백
- Combine
- async
- input
- Responder chain
- 전자출입
- Python
- binder
- AVCaptureSession
- URLSession
- moya
- UIResponder
- BidirectionalCollection
- delays deallocation
- vtable
- 입력
- ReactorKit
- MaxHeap
- ios
- Asnyc
- 사내배포
- Today
- Total
틈틈히 적어보는 개발 일기
엑스코드에서 템플릿(Xcode Template)을 사용해보자! 본문
최근 정해진 컨벤션이 조금씩 달라지고, 레거시를 최신화하고, 사용하던 컨벤션을 새로운 구성원에게 전달할 일이 생기면서
문서와 구두로 전달하기보다 이를 정형화하고 싶은 생각이 들었다
그러다 찾아낸 것이 Xcode Template를 활용하는 것!
컨벤션의 정형화가 잘 되어 있고 구성원들과 함께한지 오래되었다면 이러한 Template를 만드는 것이 오히려 귀찮음으로 다가올 수 있다
그러나 Xcode Template를 만들고 사용하게 되면 코드의 위치가 섞이거나 오탈자 등의 Human Error를 줄일 수 있기도 하다
그래서 이번글은 Xcode에서 나만의 Template를 만드는 법과 내가 실제로 활용하고 있는 Template를 공유해보고자 한다
템플릿 추가하기
커스터마이징 하는 법을 알아보기 전에 Template를 추가하는 법은 다음과 같다
- 첨부파일 `itllbegone_Templates.zip` 을 다운로드 한다
- 터미널에 `mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates` 명령어를 통해서 Xcode에서 사용할 템플릿 폴더를 생성한다
- File Templates 폴더에 다음과 같이 다운로드한 파일을 이동한다
이제 Xcode를 재실행 한 뒤 새로운 파일 추가하기를 눌러보면 가장 아래에 우리가 추가했던 템플릿이 보일 것이다!
여기서 `itllbegone_Templates`가 섹션을 구분하는 타이틀이 되시겠고
내부에 있는 `.xctemplate` 확장자가 붙은 폴더가 우리의 커스터마이징된 파일을 생성하는 아이템의 타이틀이 되시겠다
템플릿 커스터마이징
가장 흔하게 접할 UIViewController 템플릿을 기준으로 한 번 살펴보자! (이제 Reactor를 살짝 곁들인)
폴더 내부의 파일들에 대한 설명은 .plist를 까보면서 이야기해보자
- Default폴더
가장 기본적으로 사용하게 될 템플릿이다
내부에는 `___FILEBASENAME___.swift` 파일이 들어있는데 해당 파일에 내가 원하는 코드 컨벤션과 같은 템플릿을 구성하면 된다
.plist에서 바라보는 MainTemplateFiles의 String이 바라보는 파일이다
- TemplateInfo.plist
템플릿의 환경을 설정하는 .plist이다.
Option항목을 보게되면, 여러가지 옵션들을 지정할 수 있는데 Item 0번의 경우에는 Default 폴더를 바라보는 기본 옵션으로, Item 1은 `Suffix`폴더에 대한 옵션을 `Identifier`필드를 통해 설정해두었다
그래서 Suffix폴더의 파일은 `___FILEBASENAME___ViewController.swift`로 `ViewController` suffix를 붙여놓았고, 해당 체크박스를 선택하게 되면 suffix가 자동으로 붙을 수 있도록 커스터마이징 해둔 것이다!
저 체크박스는 각 Item의 Type 필드에서 유형을 선택할 수 있는데 checkbox, text, static, combo box, popup 등의 Type을 지정할 수 있다고 한다
- TemplateIcon
템플렛을 나타낼 Icon이미지 🧑🏻🎨
결과
이제 내가 원하는 코드를 자동으로 완성할 수 있는 템플릿이 완성되었다!
각 상황과 컴포넌트에 맞는 템플릿을 미리 구비해둬서 매번 똑같은 코드를 반복하는 작업을 줄여보자!
'📱 iOS, Swift' 카테고리의 다른 글
[iOS][Swift] Responder Chain, hitTest, point (hitTest, point의 호출 로직) (1) | 2022.03.06 |
---|---|
[iOS][Swift] Final 키워드에 관한 문법적 의미와 성능적 관점 (1) | 2022.01.24 |
[iOS][Swift] QRCode 리더, 스캐너를 만들어 보자! (1) | 2021.02.08 |
[iOS][Swift] 커스텀 클래스를 UserDefaults에 저장해보기, Singleton 패턴 적용하기 (0) | 2021.01.05 |
[iOS][Swift] Ad-Hoc, In-House 배포와 관련된 이슈 정리 (0) | 2020.06.08 |