본문 바로가기
프로젝트관리

프로젝트 모듈화하기 -프로젝트 생성

by zinozino 2022. 11. 21.

요즘 회사 프로젝트에서 Monolish 앱에서 벗어나 모듈화를 통한 코드 분리, 기능 분리, 의존성 분리 등을 

진행하면서  처음 시작했던 모듈 나누기 작업을 정리하면서 해보겠습니다.

(굉장히 간단..!) 

 

Workspace를 만들어 둡니다.

프로젝트 단위로 기능을 나눌 것이니 관리하기 용이하도록 하기 위해서입니다.

 

이름은 Note처럼 필기할 수 있는 느낌으로다가..

 

이제 본 프로젝트를 만듭니다. 

 

App으로 선택하고 프로젝트를 생성해주세요! (이때 프로젝트의 그룹을 위에서 만든 Workspace로!)

그럼 workspace 안에 App Project가 생겼을 겁니다.

 

Noterious는 기획하면서 만든 거라 기능을 상세하기 구분하지 않았지만 공통 기능 및 Extension 함수, 공통 UI를 제공하는 모듈은

필요할 것 같습니다.

실제 회사에서도 모듈화를 진행하면서 먼저 진행하고 있는 부분이기도 합니다...

 

이번엔 Framework로 생성해주세요!

 

framework 형태의 Core와 UI를 프로젝트로 추가 생성

 

다음으로 각 기능 분리를 위하여 Feature 폴더를 만들고 Framework로 위에서처럼 프로젝트로  나눌 겁니다.!

 

 

일단 이 정도까지만....?

 

이제 어느 정도 기능별로 프로젝트를 만들었으니 유일신

유일 앱 Noterious에 연결합니다.

 

Noterious App 

App에 각 기능을 가져와야 하니  일단 기능들을 넣어줍니다.

 

Onboarding 프로젝트는 Notorious앱의 구성요소지만  Onboarding을 구현할 때는 Core와 UI 모듈에 의존하게 됩니다. 

 

 

최종적인 프로젝트구성
그래프로 표현해본 구성

//file NoteriousApp ->  NoterousApp.swift
import SwiftUI
import Onboarding
import NoteriousUI

@main
struct NoteriousApp: App {
    
    init() {
        Fonts.registerFont()
    }
    
    var body: some Scene {
        WindowGroup {
            IntroView() //Onboarding module - IntroView
        }
    }
}

실제 앱화면