Tuist 란?
Tuist는 Xcode 프로젝트의 생성, 유지보수 및 상호 작용을 용이하게 하는 것을 목표로 하는 CLI(명령줄 도구)입니다.
또한 프로젝트 셋팅을 Swift로 하기때문에 iOS 개발자들에겐 다른 도구에 비해 접근성이 좋습니다.
Tust Install
터미널을 실행 후 해당 명령어를 통해 Tuist를 다운로드 합니다.
curl -Ls https://install.tuist.io | bash
Tuist Init
먼저 Tuist를 통해 프로젝트를 생성할 디렉토리를 생성합니다. 저는 디렉토리명을 Tuist로 정했습니다.
그 후, 해당 디렉토리로 이동 후 tuist로 프로젝트 생성을 위해 초기화 해줍니다.
mkdir Tuist
cd Tuist
tuist init --platform ios
초기화에 성공했다면 해당 디렉토리에 위 파일들이 생성이 됩니다. 보시면 초기화에 성공했다고해서 프로젝트가 생성되는것은 아닙니다. 해당 파일은 프로젝트 생성을 위한 설정파일들이고 해당 파일들의 설정을 통해 프로젝트를 생성해줍니다.
Tuist Edit
해당디렉토리에서 프로젝트 설정을 위해 편집창으로 이동합니다.
tuist edit
Project.swift
Tuist는 Project.swift 파일을 통해 프로젝트를 생성합니다. 코드를 보자면 Tuist라는 프로젝트를 생성하는데 TuistKit, TuistUI를 프레임워크로 추가하겠다는 뜻입니다.
Project.app이라는 함수를 통해 프로젝트를 생성하는데 이 함수는 사용자가 직접 커스터마이징해 원하는 셋팅으로 프로젝트를 생성할 수 있습니다. 해당 내용은 다음 포스팅에서 다루도록 하겠습니다.
Project+Templates.swift
Project파일에서 Project.app이라는 함수를 통해 프로젝트를 생성하는 로직이 있었습니다. app 함수는 Project+Templates파일에 구현 돼있습니다.
Tuist는 파일명과 같이 Project를 설정하는 템플릿을 만들어 간편하고 일관적으로 생성할 수 있도록 Helper기능을 제공합니다.
해당 파일에서는 Schem, platform, bundleId, infoPlist, sources, resources 등 프로젝트의 전반적인 세팅을 담당합니다.
전반적인 설정, Sources파일 경로, Resources파일 경로 등을 설정해 Framework로 만들어주는 함수입니다.
프로젝트 생성
설정이 완료됐으면 아래 명령어를 통해 Project를 생성합니다.
tuist generate
generate에 성공하면 프로젝트가 생성됐습니다.
마치며
Tuist는 협업을 할때 빛을 발합니다. 협업을 진행하게 되면 Git을 통해 서로의 작업물을 병합, 공유 할텐데 이때 원격저장소에 project, workspace는 올라가지 않습니다. 그러므로 병합할때 골치아픈 프로젝트파일 충돌을 방지할 수 있습니다. 이것만으로도 메리트가 크다고 생각합니다. 또한 모듈화가 손쉽게 가능합니다. 원하는 모듈을 프로젝트로 구성하고 모듈들을 모아서 워크스페이스로 등록합니다.
다음 포스팅에서는 프로젝트를 모듈로 분리하고 커스터마이징하는 방법에 대해 설명하겠습니다. 감사합니다.
해당 코드는 제 깃허브에 공개돼있습니다.
https://github.com/cheonsong/TuistTemplete
Reference
'iOS' 카테고리의 다른 글
[iOS] Tuist 외부라이브러리 가져오기 - Tuist (3/4) (0) | 2022.11.29 |
---|---|
[iOS] 프로젝트 모듈화 하기 - Tuist (2/4) (1) | 2022.11.04 |
[iOS] Gradient Layer 적용 시 View가 잘리는 현상 (0) | 2022.02.04 |
[iOS] SnapKit 노치 유무에 따른 오토레이아웃 설정 (0) | 2022.02.04 |
[iOS] Hugging priority 와 Compression Resistance priority (0) | 2021.10.20 |