프로젝트를 할 때 템플릿을 미리 만들어 놓으면 파일을 생성하고 기본적으로 작성해야 하는 코드들을 일일이 작성할 필요가 없어진다.
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/
위 디렉토리로 이동하면 기존에 있던 템플릿들을 확인할 수 있다.
커스텀 템플릿은 기존 템플릿이 위치한 디렉토리와는 다르다.
cd ~/Library/Developer/Xcode
mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates
먼저 Xcode
디렉토리로 이동 후 Templates/File Templtates
디렉토리를 생성해준 뒤
mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates/MVVM.xctemplate
템플릿을 생성해준다.
템플릿에는 기본적으로 아래 4개의 파일이 필요한데, 기존에 있던 것들을 복사하여 수정하면 간편하다.
현 프로젝트에서는 생성하는 이름을 가지고 디렉토리를 만든 후 그 안에 ViewController와 ViewModel을 생성하기 위해서 아래 사진과 같이 폴더 및 파일을 만들어줬다.
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
// Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
//
import Combine
import UIKit
import CancelBag
import SnapKit
final class ___VARIABLE_sceneName___ViewController: BaseViewController {
var viewModel: ___VARIABLE_sceneName___ViewModel?
public override func viewDidLoad() {
super.viewDidLoad()
setUI()
setConstraints()
bind()
}
}
// MARK: - UI
extension ___VARIABLE_sceneName___ViewController {
/// 화면에 그려질 View들을 추가합니다.
private func setUI() {
}
/// 화면에 그려진 View들의 Constraints를 SnapKit을 사용하여 설정합니다.
private func setConstraints() {
}
}
// MARK: - Bind
extension ___VARIABLE_sceneName___ViewController {
/// View Model과 bind 합니다.
private func bind() {
// input
// output
}
}
//
// ___FILENAME___
// ___PROJECTNAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___.
// Copyright (c) ___YEAR___ ___ORGANIZATIONNAME___. All rights reserved.
//
import Combine
final class ___VARIABLE_sceneName___ViewModel: BaseViewModel {
}
템플릿을 적용하기 위해서는
~/Library/Developer/Xcode/Templates/File\ Templates/
디렉토리에 템플릿이 위치해야한다.
깃을 통해 협업을 진행할 때에는 프로젝트파일 안에 템플릿을 두고 위 경로로 템플릿을 복사하는 shell script
파일을 추가하여 팀원들이 사용할 수 있도록 하면 된다.
먼저
touch set_template.sh
set_template.sh
파일을 생성해주고,
cp -r MVVM.xctemplate ~/Library/Developer/Xcode/Templates/File\ Templates/
파일 내부에 위 명령어를 작성하여 복사를 할 수 있게 한다.
그리고
chmod 777 set_template.sh
파일을 모든 사용자가 실행할 수 있도록 위 명령어를 입력하면 세팅은 끝난다.
이후 팀원들이 프로젝트를 받고
./set_template.sh
명령어를 입력하여 템플릿을 사용할 수 있다.
[iOS - swift] Xcode 코드 템플릿 (File Template, Custom File Template)