본문 바로가기

Swift 공부

Tuist , 모듈화 공부 기록기

기존 창업프로젝트 , 회사 프로젝트 모두 1인으로 개발하지만 Mac 회사용 / 개인용 2대를 사용하기 때문에

아주 가끔씩 git에서 Pull 로 프로젝트를 업데이트 하거나 집에서 작업하던것을 merge 할려고하면 xcodeproj, wcworkspace 에서 빌드에 오류가 생기게 되고 그 빌드 오류를 해결하기위해 상당히 귀찮았던 경험들이 많아 좋은 방법이 없을까 찾던도중 XcodeGen을 알게되었고 XcodeGen에 대해 찾다보니 좀더 사용성이 좋은 Tuist알게 되어 Tuist에 대해 공부를 해볼려고한다.

 

 

오픈소스로 이뤄져있고

 

https://github.com/tuist/tuist

 

GitHub - tuist/tuist: 🚀 Create, maintain, and interact with Xcode projects at scale

🚀 Create, maintain, and interact with Xcode projects at scale - GitHub - tuist/tuist: 🚀 Create, maintain, and interact with Xcode projects at scale

github.com

 

우선 Doc를 따라 하나씩 진행해볼려고한다.

 

 

우선 설치 명령어

curl -Ls https://install.tuist.io | bash

 

그리고 테스트용으로 폴더를만들고 그곳에 Tuist를 설치해본다.

mkdir tuistTest
cd tuistTest
tuist init --platform ios
tuist generate # Generates Xcode project & workspace
tuist build # Builds your project

 

이렇게 쉽나 싶어서 간단하게 설정을 하기위해 공부를 시작하다보니...

 

Tuist만 공부해서 끝날게아니라 너무 공부할게 많아진다. 

우선 Tuist를 공부하다보니 모듈화에대해 공부가 필요해지고 모듈화에 대해 공부하다보니 관련 라이브러리들 등등 엄청 많은것들이 공부 할것들로 딸려오게 되는데 이게 짧은 시간내에 이뤄지기가 참 쉽지 않은 것들이라고 깨닫게되어 상당히 장기프로젝트로 진행이 될 것 같다.

그래서 이것에 대한 1차적인 목표는 깃허브에 올린 App중 하나를 모듈화와 Tuist로 빌드까지를 목표로 진행을 해볼려고 한다.

 

이 공부를 시작할때 가장 많이 참고할자료로 

 

민소네님의 블로그 자료를 가장 많이 활용할 것 같고 거기에 따라 나오는 부가적인 공부들은 많은 Doc와 블로그자료 등을 찾아 보며 공부할 계획이다.

 

민소네님 블로그 자료

 

https://minsone.github.io/mac/ios/ios-clean-architecture-with-ribs-reactorkit-and-modularization-using-tuist-1

 

[iOS] 준 Clean Architecture With RIBs, ReactorKit 그리고 Tuist를 이용한 프로젝트 모듈화 설계(1) - 설계편

들어가기 전 여기에서 사용하는 클린 아키텍처는 Android에서 설계된 구조를 많이 참고하였습니다. 출처 : Github - bufferapp/clean-architecture-components-boilerplate 클린 아키텍처를 iOS 형태에 맞춰 구현한

minsone.github.io

 

우선 공부의 시작을 위해 처음 목표를 전혀 모듈화를 진행하지않은 프로젝트를 Tuist로 빌드

 

그리고 빌드한 프로젝트를 모듈화로 쪼개는 작업 의 순서로 진행해볼려고 한다.

 

우선 이번주는 기존의 프로젝트를 Tuist로 배포하는것에 모든 시간을 사용하였고 ㅜㅜ 그마저도 내가 원하는대로 동작이 이뤄지지 않아 상당히 많은 삽질을 진행중이다.

 

우선 현재 진행된 사항은 

성공 : Tuist로 기존 프로젝트 빌드 , 라이브러리 빌드 , Schema 제작 

실패 : 내가원하는 Configuration을 만들어 적용하기 -> Debug , Release 를 삭제하고 Prod , Dev 이렇게 추가하면 SPM 추가한 라이브러리들을 인식하지 못하는 오류가 있음 

 

Tuist 3.X 버전에 대한 자료가 너무 부족해 Doc를 보고 원하는 기능을 하나씩 추가하고있는데 의도치 않은 버그가 생겨 상당히 오랜시간동안 작업이 이뤄질 것 같다.

 

 

적용중인 Git 주소

 

https://github.com/gnejfejf2/TuistTestApp

 

GitHub - gnejfejf2/TuistTestApp

Contribute to gnejfejf2/TuistTestApp development by creating an account on GitHub.

github.com

 

'Swift 공부' 카테고리의 다른 글

Tuist 모듈화 공부 Swinject 2편 잡담  (0) 2022.04.01
Static Dispatch vs Dynamic Dispatch  (0) 2022.03.30
TableView Reusable  (0) 2022.03.25
GCD - (1)  (0) 2022.03.14
MVVM RxSwift , Combine  (0) 2022.03.12