longlivedrgn
Miro 찾기
longlivedrgn
전체 방문자
오늘
어제
  • 분류 전체보기 (74)
    • Swift (36)
    • iOS (31)
    • Algorithm (0)
    • Architecture, Design Patter.. (1)
    • Computer Science (6)
      • 컴퓨터 네트워크 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
longlivedrgn

Miro 찾기

[iOS] 의존성 관리 도구(Package Manager)
iOS

[iOS] 의존성 관리 도구(Package Manager)

2023. 2. 21. 00:01

다양한 의존성관리 도구

  • CocoaPods
    • Dynamic, Static 라이브러리를 모두 지원
    • 대부분의 라이브러리가 지원한다.
    • 여러 개의 pod들의 종속성을 확인하기가 쉽다.
    • 종속된 pod들을 매번 build해야된다. → 시간이 많이 든다.
  • Carthage
    • Dynamic, Static 라이브러리를 모두 지원
    • 프레임워크를 한번만 빌드하면 되므로, 빌드 속도가 매우 빠르다.
    • 어떤 오픈소스를 쓰고있는 지 보기 편한다.
    • 여러 개의 pod들의 종속성을 확인하기가 쉽다.
    • 새로운 패키지를 가져다 쓸 때마다 프레임워크를 추가해 줘야하는 번거로움이 존재한다(추가할 때 시간이 많이 걸린다.)
    • 설치하려면 Ruby gem 필요 (맥은 ruby가 내장되어 필요x)
  • Swift Package Manager (SPM)
    • Dynamic, Static 라이브러리를 모두 지원
    • 애플에서 지원해주는 first-party
    • 아직 지원하지 않는 라이브러리가 있다.
    • Swift 3부터 언어에 빌트인 → 설치할 필요 없음 XCode 11.0부터 엑코GUI환경에서 바로 관리할 수 있음 (starting with Xcode 11, the Swift Package Manager is finally becoming a true first class citizen within Apple’s suite of developer tools)

왜 의존성관리 도구를 써야될까?

  • 프로젝트에서 사용되는 다양한 외부 라이브러리들을 일일이 관리(업데이트)하는 게 아니라 손쉽게 일괄 관리할 수 있기에
  • 외부 라이브러리가 의존하고 있는 다른 라이브러리의 버전 업데이트를 한번에 관리할 수 있다.

Git과 의존성관리 도구를 사용할 때 조심해야될 점은?

  • 라이브러리의 업데이트가 현재 해당 라이브러리를 사용하고 있는 나의 프로젝트에서도 변경된 것으로 나온다!따라서 .gitignore 에 라이브러리를 넣어서, 라이브러리의 업데이트(변경)은 내 프로젝트의 커밋에는 반영되지 않게 한다!
저작자표시 (새창열림)

'iOS' 카테고리의 다른 글

[iOS] NotificationCenter  (0) 2023.04.13
[iOS] Gesture recognizer, Touch event handling  (0) 2023.02.28
[iOS] TableView에서 Swipe해서 Delete하기  (0) 2023.02.09
[iOS] sizeToFit()과 ToolBar  (0) 2023.02.09
[iOS] Target-Action Pattern  (0) 2023.02.06
    'iOS' 카테고리의 다른 글
    • [iOS] NotificationCenter
    • [iOS] Gesture recognizer, Touch event handling
    • [iOS] TableView에서 Swipe해서 Delete하기
    • [iOS] sizeToFit()과 ToolBar
    longlivedrgn
    longlivedrgn

    티스토리툴바