최근 "스파클"이라는 프로젝트를 하면서 SPM을 활용해서 폰트, 색상, 디자인 시스템을 모듈화시키는 작업을 했다.
사실 SPM을 사용했지만 그냥 프로젝트 내에서 진행했을 때보다 장점이 있나? 라고 했을 때 명확한 답을 내리지 못했다.
만약 현재의 디자인 시스템을 가지고 관리자 앱? 이라든지 다른 프로젝트를 진행한다고 했을 때
바로 패키지를 추가하면 되니까 장점이 있을지도??
아무튼 우리가 하나의 프로젝트와 하나의 패키지 매니저, 즉 두 개의 파일을 만들어서 작업을 했는데
우리의 워크 플로우는 다음과 같았다. (SPM으로 디자인 시스템을 만들고 수정사항이 발생했을 때)
디자인시스템에서 수정할 것이 생기면 패키지 매니저에서 대놓고 바꿀 수 없었다!
왜냐면 연결되어 있는 프로젝트가 있어야 잘 수정이 되어있는지 테스트를 해볼텐데 프로젝트와 종속되어 있지 않으니까 테스트할 수 없었다.
그래서 프로젝트를 하나 만들고 그 프로젝트에 local로 패키지를 추가하면 패키지 내부를 수정할 수 있기 때문에 테스트와 동시에 수정이 가능하다.
그리고 테스트가 끝난다면 로컬에서 수정한 패키지를 내 실제 SPM으로 옮기는 과정을 거친다.
근데 항상 로컬 패키지를 만들 때마다 어떻게 하는지 헷갈려서 글로 남겨야겠다는 생각을 했다!
딱히 어떤 정보를 주기보단 내가 까먹으니까 참고용 글..)
우선 처음은 우리가 SPM으로 라이브러리를 가져오는 방식처럼 Package Dependencies를 통해 추가 버튼을 누른다.
하지만 여기서 url을 검색하는 것이 아니라 Add Local...을 클릭하고 로컬에 있는 Package를 불러온다.
그렇게 하면 좌측 상단에 Packages라고 추가된 것을 볼 수 있다.
import 해보면 자동완성까지 되지만 막상 빌드를 해보려고 할때 찾지 못한다는 에러 메서지가 나타난다.
Build Phases에 가서 라이브러리를 연결해주어야 한다.
내가 만든 SPM을 추가했다면 이제 패키지도 수정이 가능하고 프로젝트도 수정이 가능하기 때문에 패키지의 테스트 환경을 만들 수 있다!