카카오톡, 인스타그램 같은 우리가 자주 사용하는 앱의 설정에 들어가면, 오픈소스 라이선스라는 항목을 볼 수 있는데요, 앱을 개발하면서 사용한 외부라이브러리를 볼 수 있습니다. 개발에서 공유문화로 소스코드를 많이 공유하지만, 저작권에 유의하며 사용합시다~
외부라이브러리를 프로젝트에서 사용하기 위해서 dependency manager를 사용합니다. 종류와 특징을 알아볼게요
CocoaPods
Carthage
Swift Package Manager
Manually
깃허브에서 특정라이브러리를 만든 개발자가 지원하는 방식으로만 설치할 수 있어요. 깃허브 리드미의 intallation 부분을 확인해봅시다!
3.1.2라는 버전이 있을 때
major
알아두면 커뮤니케이션 할 때 유용해요!
이미지 라이브러리로 많이 사용하는 kingfisher의 특징에 대해 알아봅시다.
친구와 협업할 때 배포한 서버가 http라 애플과 연동이 안되서 힘들었던 적이 있는데요, 이유가 무엇인지 알아봅시다!
https는 http에 보안기술이 적용되었다는 차이가 있어요. 그래서 애플에서는 http로 통신을 할 경우 무조건 block을 합니다.
그럼에도 안전하고 생각한 http와 통신을 하려면 어떻게 할까요?
ATS(App Transport Security Setting)을 설정해줍니다.
다음과 같이 plist에 추가해주고 Allow Arbitary Loads 속성을 YES로 설정해줍니다.
드래그앤드롭방식으로 임의로 다른 프로젝트에서 파일을 가져오거나, 파일을 제대로 삭제하지 않고 git을 사용했을 때 파일이 빨갛게 뜨고 에러가 나는 경우가 있는데요 파일을 안전하게 가지고 오는 법을 알아봅시다.
파일을 드래그앤 드롭하면 다음과 같은 팝업이 나타나는데요, 여기서 설정은 파일을 참조해서 가지고 올래? 복사해서 가지고 올래?의 차이로 이해하시면 됩니다.
Copy items if needed를 체크하지 않으면 참조해서 가져오기 때문에, 파일 정보를 보면 원본의 경로가 저장된 것을 알 수 있고, 원본 파일이 삭제되거나 remote로 저장을 할 때 문제가 발생합니다.
따라서
1. copy items if needed체크
2. create groups
3. add to target을
체크해서 안전하게 파일을 가져옵시다!
저장된 파일은 target의 build phases에서 확인할 수 있는데요
기계어로 번역이 필요한 파일과 asset파일들이 별도로 관리되고 있는것을 확인할 수 있습니다ㅏ
개발자들이 프로젝트 폴더링을 할때 소스코드관련 파일은 Sources폴더에, Asset같은 파일들은 Resources폴더에 저장했었는데 저런 이유가 있었네요!
<Todo:>
rawValue
**CaseIterable
viewDidLoad()
viewWillAppear()
viewDidAppear()
viewWillDisappear()
viewDidDisappear()
viewIsAppearing()