Mobile App Development/IOS

[ IOS ] 프로젝트 코코아팟 라이브러리(SnapKit) 적용

loopinger 2024. 5. 13. 17:02

1. 코코아팟이란?

Objective-C나 Swift로 작성된 프로젝트에 대해 라이브러리를 관리하고, 프로젝트의 의존성을 쉽고 효과적으로 통합할 수 있도록
설계된 의존성 관리 도구
루비로 작성되었으며, 수천 개의 공개 라이브러리에 쉽게 접근할 수 있는 중앙화된 저장소를 제공

2. 코코아팟설치

# 코코아팟 의존라이브러리 drb 설치
sudo gem install drb -v 2.0.6

# 코코아팟 의존라이브러리 activesupport 설치
sudo gem install activesupport -v 6.1.7.6

# 코코아팟 라이브러리 설치
sudo gem install cocoapods

# 코코아 팟 버전 확인
pod --version

3. 코코아팟 프로젝트 적용

프로젝트 폴더 위치 이동
폴더에서 새로운 터미널 열기

 

[ 상위 폴더 이동 ] ⇨ [ 프로젝트명.xcodeproj ] 파일 확인

# e.g. cd /path/to/directory
# .xcodeproj 파일이 위치한 프로젝트 경로 이동
# cd [xcodeproj파일이존재하는프로젝트경로]

# Pod파일 생성
pod init

# Podfile 변경(Snapkit 라이브러리 추가)
cat <<POD_INSTALL > Podfile
target '$(ls -d *.xcodeproj | rev | cut -d'.' -f2- | rev)' do

  use_frameworks!

  pod 'SnapKit'

end
POD_INSTALL

# Podfile을 변경하여 Pod 라이브러리 설치
pod install

# 실행중인 XCode 종료
osascript -e 'quit app "Xcode"'

# 생성된 xcworkspace 파일 실행
open $(ls -d *.xcworkspace)

명령어 실행 후 [ 프로젝트명.xcworkspace ] 파일 생성 확인


[ 프로젝트명 ] ⇨ TARGETS ⇨ Build Settings ⇨ Build Options ⇨ User Script Sandboxing을 No로 설정


프로젝트의 중요 시스템 리소스 접근을 허용 가능하도록 변경

4. 코코아팟 라이브러리 활용

// UIKitViewController.swift

import UIKit
import SnapKit

class UIKitViewController : UIViewController
{
    override func viewDidLoad()
    {
        let customView = UIView()
        customView.backgroundColor = .red

        self.view.addSubview(customView)
       
        customView.snp.makeConstraints
        { make in
            make.center.equalToSuperview()
            make.width.height.equalTo(100)
        }
    }
}
// ContentView.swift

import SwiftUI

struct ContentView : UIViewControllerRepresentable
{
    func makeUIViewController(context: Context) -> UIKitViewController
    {
        UIKitViewController()
    }
    
    func updateUIViewController(_ uiViewController: UIKitViewController, context: Context)
    {
        
    }
}

#Preview
{
    ContentView()
}

SnapKit 라이브러리를 사용하여 뷰를 표시