[TIL] 2021.03.12

승아·2021년 3월 12일
0

👩🏻‍💻 오늘 공부한 내용

https://yagom.net/ 에 오픈소스 라이브러리 만들기 강좌를 참고하였습니다.

코코아팟

  • iOS의 의존성 관리 도구

    의존성 관리 도구란?
    외부 라이브러리를 사용할 때 프로젝트와 해당 라이브러리의 상관관계를 용이하게 관리해주는 도구.

  • .xcworkspace : .xcodeproj의 모음, 즉 Xcode 프로젝트를 워크스페이스라는 하나의 작업공간으로 묶어놓은 단위
  • Podfile.lock : pod들의 버전을 계속 추적하여 기록해놓고 유지시키는 역할을 함. 또한 유일성을 보증하는 해쉬값인 CHECKSUM이 부여된다. pod버전에 변화가 생기면 checksum또한 변하므로 pod과 podfile은 같이 커밋해야됨.

코코아팟 명령어

// pod을 추가, 수정, 삭제
pod install 

// pod을 최신 버전으로 업데이트, pod update pod이름 으로 개별적인 pod 업데이트 가능
pod update 

// podfile.lock에 리스트된 것보다 새로운 버전을 가진 팟 파일을 나열
pod outdated 

// 모든 podspec파일을 업데이트, pod repo update pod이름 으로 개별적인 pod 업데이트 가능
pod repo update 

코코아팟 라이브러리 만들기

  1. 코코아팟 프로젝트 생성
  • pod lib create 라이브러리명
pod lib create PBSudoku
  1. 위를 실행하면 나오는 5가지 질문에 답해준다.

    1️⃣ What platform do you want to use?? [ iOS / macOS ]
    - 사용할 플랫폼 선택 > iOS
    2️⃣ What language do you want to use?? [ Swift / ObjC ]
    - 사용할 언어 선택 > Swift
    3️⃣ Would you like to include a demo application with your library? [ Yes / No ]
    - 데모 애플리케이션 포함 여부. 앱을 테스트 해볼지. 일단 그냥 Yes ~
    4️⃣ Which testing frameworks will you use? [ Quick / None ]
    - 테스트를 위한 프레임워크를 추가적으로 사용할 것인지 아직 초보니까 None .
    5️⃣ Would you like to do view based testing? [ Yes / No ]
    - 뷰 기반의 테스트를 진행할 것인지 Yes면 FBSnapshotTextCase를 포함시켜준다고 한다. 일단 No
  2. 이제 자동으로 파일이 생기며 .xcworkspace가 뜬다.
  3. 라이브러리명 > Podpodspec 확인
#
# Be sure to run `pod lib lint PBSudoku.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'PBSudoku'
  s.version          = '0.1.0'
  s.summary          = 'A short description of PBSudoku.'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

  s.homepage         = 'https://github.com/sainkr/PBSudoku'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'sainkr' => 'raebadnap@naver.com' }
  s.source           = { :git => 'https://github.com/sainkr/PBSudoku.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '9.0'

  s.source_files = 'PBSudoku/Classes/**/*'
  
  # s.resource_bundles = {
  #   'PBSudoku' => ['PBSudoku/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end
  1. Github 저장소 생성
// 만들어준 pod 프로젝트에서 터미널 열고
git init
git remote add origin https://github.com/sainkr/PBSudoku.git
git push -u origin master 
  1. Pods > Developemnt Pods > 프로젝트 명 > ReplaceMe.swift 를 프로젝트명으로 바꿔준다.
  2. 바꿔 준후 그 파일에서 개발을 시작한다.

✍🏻 오늘은...

두번째 iOS앱은 스도쿠로 결정했다! 책이나 인터넷에 나온 스도쿠를 DB에 저장해 만들려고 했지만 그럼 너무 단순해질것 같아 스도쿠를 생성해주는 오픈소스를 만들어볼까 한다. 이런 오픈소스가 있어도 되나..? 누군가 필요할까..?란 생각이 계속들지만 오픈소스 공부도 할 겸 만들어봐야겠다 😭 아 참고로 PBSudoku에 PB는 Panda Bear🐼 다

0개의 댓글