PhotoKit(1)

작성일

PhotoKit을 사용할 일이 있어서 공부한 김에 PhotoKit을 정리해 보려고 한다.
참고로 처음에 사용할때 난 너무 어려웠다…
우선, PhotoKit이 뭔데?

PhotoKit이란?

  • iCloud 사진, 라이브 포토(Live Photos)를 포함한 사진 앱에서 관리하는 모든 사진 및 비디오 에셋(asset)을 사용하여 작업할 수 있는 프레임워크 이다.
  • PhotoKit은 컨텐츠를 표시 및 재생하기위해 에셋을 가져(fetch)오고 캐시(cache) 할 수 있다.
  • 사진 및 비디오 컨텐츠를 편집할 수 있고, 앨범, Moments, Shared Albums 같은 에셋들을 관리할 수도 있다.

우선, 이렇다고 한다 그러면 PhotoKit에선 어떻게 이제 사진을 다루는지 알아 보려고 한다.

PHAsset?

음.. 어렵다 볼떄마다 어려웠다.
공식 문서부터 살펴보면, “사진 라이브러리에 있는 이미지, 비디오 또는 Live Photo의 표현입니다.” 라고 되어있는데
솔직히 무슨 말인지 모르겠다.ㅠ 그래서 다른 여러 블로그들을 보고 참고하여 한문장으로 줄일 수 있었다.

  • 사용자 라이브러리의 이미지, 비디오, 라이브 포토의 메타정보 만 가지고 있는것.

음 이게 무슨 말이냐면, 사진이미지를 가지고 있는게 아니라, 사진 이미지에 대한 정보를 가지고 있는거라고 생각하면 편할것 같다.
추후 Asset에 불변한 고유값인 localIdentifier가 있는데, 이걸 PHImageManager와 함께 이용하여서 이미지로 바꿔줄 수있다.

PHAsset종류

PHAsset

  • 하나의 Asset을 담는 클래스
  • 사진 1장 단위

PHAssetCollection

  • PHAsset의 set
  • 사용자가 만든 앨범, 순간 등등

PHCollectionList

  • Asset 컬렉션들의 리스트
  • 앨범들의 리스트이다.

PHFetchOptions

  • fetch하는데 사용되는 옵션이다.
  • assets 또는 collection 객체를 가져올 때 Photos에서 반환하는 결과를 필터링, 정렬 해주는 옵션이다.

PHPhotoLibrary란?

  • 사용자의 공유 사진 라이브러리 접근 및 변경을 관리하는 shared 객체이다.

PHFetchResult란?

  • 위에 PHAsset들의 return 타입이다.

PHImageManager란?

  • asset이나 thumbnail을 조회하거나 생성하는 메서드를 제공한다.

우선 이정도로 용어들만 정리하고 나머진 다음 포스터에서 작성하겠다.