[iOS] 오픈소스가 뭐야

Madeline👩🏻‍💻·2024년 1월 8일
0

iOS study

목록 보기
31/61
post-thumbnail
post-custom-banner

😶‍🌫️

오픈소스가 뭐야

카카오톡에도 오픈소스가

각 앱들에 오픈소스 방문하기 탭이 있다는 사실,, 알고 계셨나요?

잘 쓰는 오픈소스 몇 개 정리해보겠다

UI 관련 오픈소스

https://github.com/WenchaoD/FSCalendar

https://github.com/uias/Tabman

로직 관련 오픈소스

https://github.com/onevcat/Kingfisher

https://github.com/SwiftyJSON/SwiftyJSON

그냥 써도 되나? 저작권없나?

저작권있긴하다. 한 4가지 정도의 라이센스가 있는데, 다 갖고 있는게 MIT 라이센스.
MIT 라이센스는 프리하게 쓰면 된다. 명시만 해줘!정도의 라이센스이다.

어떤 라이센스나 어떤 오픈소스는 구현하고 나면 내 작성 코드를 그 프로젝트로 넘겨줘야 한다는 내용을 포함하고 있단다.ㄷㄷ 그래서 잘 찾아보고 사용하는게 중요하다.

네이버, 배민, 카카오, ..에서 사용하는 것들은 우리가 마음놓고 써도 된다.

왜 무료로 제공하지? 100원씩만 받아도 부자될텐데..

-> 개발 자체가 공유 문화.
다른 사람들이 인정하고 쓰는 것 자체가 내 경력이 된다. 내가 직접 오픈소스 배포해본 경험, 왜 했는지에 대한 어필을 할 수 있다.

그리고 라이브러리를 썼으면, 만든 사람이 마음이 바뀌어서 이제 안쓸래!하면 그 이후에는 못씀. 그래서 주기적으로 탐색하는 것도 필요하다!

써보자!

감정일기 프로젝트 + SideMenu, Alamofire, …

(내 프로젝트) + 각종 라이브러리, 오픈소스, …

설치 방법

  • 코코아팟, 카르타고, 소스코드, …

만약에 오픈소스 3개쓰고 싶은데, 다 다른 방법으로 설치하면 복잡해~

설치 도와주는 것 자체를 키워드로 Package Manager, Dependency Manager라고 부름

  • CocoaPods
  • SwiftPM(SPM)

요렇게 2개가 젤 유명하다.

CocoaPods

  • 애플이 만든 건 아니야. 다른 사람이 만든 패키지 종류 중 하나인데, 터미널로 설치 및 관리해
  • 3년전?만해도 코코아팟만 썼어. 오픈소스 대부분이 코코아팟 지원했거든. 여러개 쓰고 싶을 때, 고민없이 코코아팟으로 고 했었음.
  • 빌드 속도 떨어짐

카르타고

  • 코코아팟이랑 같이 쓰고 지원되는 형태인데, 요즘은 잘 안써. 왜냐면 이거 만든 사람이 이제 관리안하거든. 약간의 제약이 있음
  • 빌드 속도 빠름
  • 카르타고를 지원하는 라이브러리 자체가 좀 적어. 그래서 코코아팟 더 많이 써

SPM

  • 많은 패러다임이 바뀌게 됨
  • 애플이 만들었거든~
  • 근데 잘 안썼어. 왜그러냐면 xcode안에 내장되어있지 않았어. 많은 라이브러리가 어차피 코코아팟 쓰고 있었어서 그랬지. 지원하는 오픈소스가 많이 없어서 안씀.

수동

  • 프로젝트 다운받아서 직접 넣는 것. 코드 복붙 느낌
  • 낫배드일거같지만, 코드 업데이트될때, 라이브러리 버전 업데이트가 대응이 안됨.

SPM이 xcode에 들어오다,,

  • 설치와 관리하는 방법이 겁나 편해졌어. 이제는 많은 라이브러리들이 SPM지원해.

우리도 SPM으로 설치해보자~!

IQKeyboardManager 실습

https://github.com/hackiftekhar/IQKeyboardManager

  1. 깃헙 들어가서 링크 복사한다

  1. 프로젝트 파일 > Package Dependencies > 하단에 + 버튼

  1. 검색창에 링크 복붙

  1. 설치


저기 써있는 버전 관련해서,

버전 관리

0.0.0 ver: 최초 버전

1.0.0 : 메이저 버전

  • 엄청 큰 변화, 대규모 업데이트
  • 대부분의 코드가 호환이 안됨. swift 2→3, iOS 15→16 이런 느낌

0.1.0 : 마이너 버전

  • 기존 버전과 대부분 호환됨
  • 기능 한두개 추가될 때

0.0.1 : fetch 버전

  • 버그 수정, 런타임 에러 수정
  • 기능 추가되진 않았는데, 코드 수정함

그래서 원하는 버전 설치하는 것도 여기서 가능하다.

profile
🍎 Apple Developer Academy@POSTECH 2기, 🍀 SeSAC iOS 4기
post-custom-banner

0개의 댓글