🍎 iOS/♻️ 모듈화

    Modular Architecture 실전편

    PlugIn Tuist를 사용하면서 각각의 역할을 나눠 Plugin을 만들어서 사용하면 가독성을 높일 수 있습니다. 두가지 플러그인을 만들어서 사용했고, 각각에 대해서 설명드리겠습니다. TemplatePlugin 많은 사람이 한 번에 작업을 하면 프로젝트나 타겟을 추가하면서 앱의 구조에 통일성을 유지하는 것이 어려워지는 경우가 많았습니다. scaffold를 사용해서 프로젝트의 기본 요소 세팅과 폴더링을 손쉽게 할 수 있도록 하였습니다. App Template TemplatePlugin 내부에는 두가지 템플릿이 존재하는데요, 먼저 App이라는 템플릿에 대해서 알아보겠습니다. 왼쪽처럼 플러그인들만 추가한 상태에서 tuist scaffold App --name Chansoo 다음과 같은 명령어를 사용하게 되면..

    Modular Architecture 이론편

    조만간 진행할 프로젝트에서 적용할 앱 구조에 대해서 고민을 하면서 Tuist를 기반으로 모듈화 RIBs를 사용해서 프로토콜 지향 프로그래밍을 사용하고 Clean Architecture를 도입하는 방법을 생각했습니다. 간단하게 공부를 하고 난 이후에 직접 만들어보며 익혀야겠다는 생각으로 바로 샘플앱을 만들기 시작했습니다. 샘플앱 기본 코드는 RIBs를 공부하기 위해 노수진님의 강의(https://github.com/nsoojin/MiniSuperApp-fastcampus)를 들으며 공부했던 코드를 사용했습니다. 이번 글에서는 설계에 대한 내용을 중심으로 이야기하겠습니다. 이전에 사용하던 모듈화 방법의 불편했던 점 포괄적인 모듈을 나누는 기준 이전의 프로젝트에서는 Tuist를 하나의 프로젝트로 모듈화를 했습..

    Tuist 도입기

    도입 전 상황 1. merge conflict 4명의 사람이 함께 프로덕트를 개발하면서 다양한 충돌을 경험했습니다. 일반적인 swift 코드 내에서의 충돌의 경우는 코드를 읽어보고 팀원들과 상의하면서 수정을 하기가 그렇게 어렵지는 않았습니다. 하지만 pbxproj 파일의 충돌의 경우 swift 코드처럼 쉽게 읽으면서 conflict를 해결하기에 어려움이 있었습니다. 파일을 수정, 이동, 삭제 등을 할 때마다 팀원들과 상의를 하는 것이 불필요하게 우리의 노력을 낭비하는 것이라는 생각이 들었습니다. 2. 모듈화 또한 구현을 할 수 있는 선에서의 라이브러리들은 직접 구현을 해서 사용하고, 각각의 코드의 역할 분리를 명확하게 하기로 한 상황에서 해당 구현체들을 모듈화 해서 관리를 하고 싶었습니다. 도입 이유 위..