쉽게 말해 Xcode 프로젝트를 관리하는 도구
Tuist가 프로젝트 파일을 직접 생성해 주기 때문에 git conflict를 방지할 수 있고, Project.swift 파일을 통해 설정을 관리할 수 있다.
또한 바이너리로 배포되므로 종속성을 관리하기 위해 다른 도구에 의존하지 않고도 쉽게 설치하고 사용할 수 있다.
주로 모듈화를 할 경우 Tuist를 많이 사용한다.
모듈간 결합도는 낮게, 응집도는 높게 하여 안정성이 향상된다.
모듈의 의존성을 낮추어 각 모듈에 대한 고려 범위를 줄여 개발 속도가 향상된다.
특정 기능에 대한 코드 리뷰 시 관련 모듈만 리뷰함으로써 편의가 향상된다.
변경사항이 있는 부분만 빌드함으로써 빌드 속도가 향상된다.
용도에 맞는 배치를 통해 앱의 복잡성을 줄이고 좋은 아키텍처 설계가 가능하다.
$ curl -Ls https://install.tuist.io | bash
위 명령어를 터미널에 입력하면 최신 버전의 Tuist가 설치된다.
Tuist 4.x 부터 mise(구 rtx)를 이용한 설치를 권장하고 있다.
아래 순서를 따라 설치하는 것을 권장한다.
$ curl https://mise.run | sh
$ chmod +x ~/.local/bin/mise
$ ~/.local/bin/mise --version
# note this assumes mise is located at ~/.local/bin/mise
# which is what https://mise.run does by default
$ echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
$ echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
$ echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
자신이 사용하는 shell에 맞는 명령어를 입력하면 된다.
$ mise install tuist
$ mise use -g tuist
Tuist를 전체 위치에서 활성화 시킨다.
$ tuist version
Tuist 버전이 정상적으로 출력되면 설치가 완료된 것이다.
설치한 Tuist로 Xcode 프로젝트 생성이 정상적으로 되는지 확인한다.
$ mkdir TwistApp
$ cd TwistApp
$ tuist init --platform ios // UIKit
$ tuist init --platform ios --template swiftui // SwiftUI
개발하려는 프레임워크에 따라 명령어를 실행하면 된다.
$ tuist generate
위 명령어를 실행하면 워크스페이스 파일이 자동으로 열린다.
$ tuist build
tuist build 명령어를 실행하면 터미널에서 빌드가 가능하다.
$ tuist edit
Manifest 파일이 있는 엑스코드 프로젝트가 생성되면서 열린다.
그 중에는 Project.swift 파일이 있다.
이 단계에서 외부 의존성(Library 등)을 추가하면 된다.
-> pakage 파일의 dependencies에 다음 사진과 같이 library url, version을 작성하고 해당 library를 사용하고 싶은 위치에 선언해주면 원하는 곳에서만 해당 library를 사용할 수 있다.
tuist edit 명령어를 통해 Dependencies를 추가했다면 다음 작업으로
$ tuist install
위 명령어를 터미널에서 실행하여 추가한 Dependencies를 설치한다.
$ tuist generate
그 후 위 명령어를 실행하여 생성된 워크스페이스에서 추가한 Dependencies를
확인한다.
Tuist를 설치하고, Tuist로 프로젝트를 생성하고 관리하는 방법을 작성해 보았다. 위 과정에서 발생한 트러블슈팅은 다음 게시글에서 다루도록 한다.