baegteun - iOS

Tuist - Modular Architecture 개선하기 본문

Tuist

Tuist - Modular Architecture 개선하기

baegteun 2023. 5. 1. 19:49

이 글은 Tuist 버전 3.19.0을 기준으로 작성되었습니다.

이 글은 https://baegteun.tistory.com/11 해당 글에서 이어집니다.

  • UserInterface 레이어 추가
  • 협업할 때 XCConfig 불편함 개선
  • CI인지 여부를 Environment에서 관리하도록 변경

UserInterface 레이어 추가

기존 레이어의 문제점

  • Feature - Domain - Core - Shared 의 레이어를 가짐
  • Core안에 DesignSystem 모듈이 있어 핵심적인 기능으로 쓰일 모듈이 있다는 의미에서 약간 애매해짐

-> UI에 관련한 모듈들을 넣을 레이어로 UserInterface 레이어를 새로 분리하였습니다.
해당 레이어에서 디자인 시스템, 다국어 적용 등의 처리를 하는 모듈들이 위치해있을겁니다.

협업할 때 XCConfig 불편함 개선

.gitignore에 XCConfig/ 를 등록해놓았기에 새 모듈이 생기면, 같이 협업하는 사람은 새 XCConfig를 추가로 만들어주거나 공유해줘야 했습니다.

-> XCConfig/Shared.xcconfig 를 .gitignore에서 해재해놓고 기본적으로 모듈의 xcconfig 연결을 Shared에 연결해놓고, makeModule 생성자에서 configurations를 직접 커스텀하여 넣을 수 있게 해서 아무것도 없이 clone해도 바로 작업할 수 있도록 만들었습니다.

CI인지 여부를 Environment에서 관리하도록 변경

CI여부를 파악하려고 그때그떄 Process에서 값을 받아오는 것을 Environment struct에 추가하여 env.isCI로 간단하게 접근할 수 있게 했습니다.


바뀐 결과물은 확인할 수 있습니다.
https://github.com/baekteun/Tuist_Modular_Template

Comments