2022. 4. 11. 01:30ㆍTech/Mobile(Android, iOS)
- 목차
이 글은 이전에 운영하던 깃 블로그에서 옮겨온 글입니다.
서론
해당 포스팅은 cocoapods의 사용법에 관한 포스팅이 아닌, 개념에 관한 내용이며, 사용법은 추후 포스팅할 예정입니다.
cocoapods
iOS 개발을 하는 사람들, 조금이라도 iOS 개발에 관련되는 사람들이라면 필수적인 녀석이 있습니다. 바로 cocoapods이라는 의존성 관리 매니저입니다.
cocoapods 공식 홈페이지에 소개된 내용(2020년 12월 기준)
CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 79 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly.
내용인 즉, "어마어마하게 많은 라이브러리 사이의 종속성(의존성)을 관리해주는 아주 멋진 녀석이다."라는 것입니다.
cocoapods 은 어떻게 의존성 관리를 하는가?
이전 글인 [Programming]의존성(Dependency)에서 의존성을 관리하긴 하는데, 프로젝트는 어떻게 알고 관리를 하는지 의문을 표한 적이 있습니다. cocoapods 은 Podfile 이란 것을 이용합니다. 구조는 의외로 간단합니다.
- Podfile 은 최종 프로젝트를 생성해주는데 필요한 정보가 기재된 파일
- Podfile 에는 라이브러리 이름, 버전, 소스, 종속시킬 타깃 등등... 의 정보가 기재
- 종석 성이 관리되기 전 Xcode 프로젝트에 Podfile을 생성
- 터미널 명령어 or 스크립트 등을 이용하여 해당 Podfile 기반의 Workspace (Xcode 프로젝트 형식)를 생성
- 생성된 Workspace 가 최종 프로젝트 파일이며, 이 파일로 앱을 빌드해 배포하면 됨
위 단계중, 개발자가 신경 써야 할 것은 Podfile입니다. Podfile 이외는 고정된 과정이며, Podfile 이 어떻게 구성되어 있는지에 따라 의존성 관리의 모든 게 결정됩니다.
//Podfile 예시
platform :ios, '10.0'
source 'https://github.com/CocoaPods/Specs.git'
target 'Unity-iPhone' do
pod 'CustomLib', '1.0.0'
end
간단하게 해석을 해보면, 프로젝트 내에 'Unity-iPhone' 타깃에 'CustomLib'의 '1.0.0' 버전을 의존성으로 걸어준다는 내용입니다. 해당 라이브러리는 'https://github.com/CocoaPods/Specs.git'에서 가져오게 됩니다. 이처럼 프로젝트에 사용할 구성을 Podfile로 만들어주는 과정을 해주면 됩니다.
마무리
사실 cocoapods 을 사용하지 않아도 프로젝트를 생성해 임의로 관리하며 앱을 출시까지 할 수 있습니다. 저도 처음 프로젝트를 시작할 때는 사용하는 라이브러리도 적고, 관리할 버전도 많지 않아(배우는 단계라) 임의로 한 적이 있습니다.
하지만, 점점 규모가 커질수록 관리가 버거워지기 시작하고 휴먼 미스도 많이 생기게 되었습니다. 어쩌면 이러한 관리 방식은 선택이 아닌 필수가 아닐까 싶네요. 나중에는 cocoapods을 설치하고, 배포하는 방법도 글로 써볼까 합니다.
'Tech > Mobile(Android, iOS)' 카테고리의 다른 글
[Mobile]Deeplink (0) | 2022.04.11 |
---|---|
[iOS]iOS 앱 간 데이터 공유 키체인 쉐어링(Keychain sharing) (0) | 2022.04.11 |
[Android]가비지 컬렉터(Garbage collector) (0) | 2022.04.11 |
[Android]Android 앱 간 데이터 공유(ContentProvider와 ContentResolver) (0) | 2022.04.11 |
[Android]JVM, JRE, JDK (0) | 2022.04.10 |