[SPM] 01. Swift Package Manager 둘러보기

  [SPM] 01. Swift Package Manager 둘러보기


안녕하세요 물먹고하자 입니다. 이번에는 Swift Package Manager(이하 SPM)를 알아볼까 합니다.

애플 공식 링크 : https://developer.apple.com/documentation/swift_packages

Xcode11 이상부터 추가된 기능으로 애플에서 직접 지원하게된 기능이며, 라이브러리 관리가 주 목적인 기능입니다. (서드파티로 CocoaPods, Carthage 등 있음.)

아직은 SPM을 지원하고 있지 않는 라이브러리도 많지만, 메이져급 라이브러리들은 지원을 하고 있어 사용이 꺼려지진 않습니다.


  사용목적

1. 회사 내 서드파티 앱 공용소스 관리 목적
=> CocoaPods을 사용하면서 굳이 SPM을 도입을 하려는 목적은 현재 프로젝트의 서드파티 프로젝트가 늘어남으로 소스를 회사 내 Git서버에 올려서 서드파티에서 바로 사용하고, 편하게 업데이트를 받으려고함.

2. CocoaPods 속도 이슈
=> CocoaPods 사용보다 SPM 사용이 빌드면에서 속도가 빠르다고 하는데, CocoaPods 은 Copy, SPM은 Link 개념으로 빌드를 하는 걸로 알고 있음. 

* 첨부파일 #1 : CocoaPods, CocoaPods + SPM 시 속도 차이 (확대해서 보세요)
실험 PC : 2019 MacBook Pro 16 CTO (i9 8코어 2.3, 32GB 메모리)
프로젝트 : 그룹웨어(꽤 무거운편)
결론 : SPM으로 일부 전환시 40 ~ 60초 정도 시간단축 효과를 받음

* 첨부파일 #2 : CocoaPods -> SPM 변경 항목

실험결과만 보더라도 매일 버리고 있는 빌드시간을 조금이라도 단축 할 수 있을 것 으로 보아 변경해보기로 마음먹음

  마무리

처음 SPM이 나왔을때는 심지어 Alamofire 조차도 지원을 안해서 당시에는 별생각 안하고 있었는데, 프로젝트를 진행하면서 관리목적이 하나둘 생기다 보니 SPM을 알아보고 있습니다.
샘플 실행은 쉬운편이였고, CocoaPods에서만 지원되는 라이브러리가 있기 때문에 쉽게 전체적으로 SPM만 사용하긴 어려울 것 으로 보입니다.

천천히 SPM을 알아보면서 현 운영되고 있는 프로젝트에 도입, 이슈사항을 추가적으로 적어볼까 합니다.
#. 최종적으로는 Private Git 에 등록된 자체 소스를 사내망에서 다운받고나서 집으로가서 사용시 어떻게 되는지 까지 알아볼까 합니다.

오늘은 끝. 즐거운 코딩 되세요~

댓글

이 블로그의 인기 게시물

[iOS18 Beta] WkWebView Cookies 못 가져오는 현상 (SameSite default Lax 변경)

[iOS] 앱 아이콘 동적으로 변경하기 (Dynamically Change App icon)

[iOS] 앱스토어 등록 전, 후 URL 알아보기

[iOS] 초성 검색 지원하기 (유니코드 초성분리)

[Xcode] add Simulators (시뮬레이터 추가하기)