chaneeii/iOS-Study-Log

여러개의 이미지 select하기 🍒 (UIImagePickerController, PHPickerViewController)

Opened this issue · 0 comments

여러개의 이미지 select 하기

UIImagePickerController

UIImagePickerController : https://developer.apple.com/documentation/uikit/uiimagepickercontroller

애플에서 기본으로 제공하는 UIImagePickerController는 이미지를 한번에 여러장 선택하는 것이 불가능했다.
그래서 요런 라이브러리를 써야한다.

PHPickerViewController

PHPickerViewController : https://developer.apple.com/documentation/photokit/phpickerviewcontroller

그런데 2020 WWDC 에서 PHPickerViewController 를 공개했고, 애플에서는 이를 UIImagePickerController 의 alternative 라고 표현했다.

The PHPickerViewController class is an alternative to UIImagePickerController. PHPickerViewController improves stability and reliability, and includes several benefits to developers and users, such as the following:

그리고, PHPickerViewController 는 다음과 같은 기능을 제공한다.

  • Multiple Selection
  • Search
  • Albums
  • Zoom in / out

여기서 주목할건 바로 Multiple Selection이 가능하다는 것이다!

그리고 다음과 같은 특징도 있다.

  • iOS 14+ 지원
  • UIKit에 포함되었던 UIImagePickerController와는 다르게 PhotosUI라는 프레임워크에 포함되어 있음

장점

  • Permission 요청이 필요 없다.

스크린샷 2022-08-14 오후 2 43 52

  • 검색이 가능하다 : 날짜, 장소, 업체 이름, 카테고리, 이벤트, 사람 등
  • grid 레이아웃의 Zoom In/Out
  • 콘텐츠 다중 선택

원문
따라서 기존에는 gird 레이아웃의 Zoom In/Out, 컨텐츠 다중 선택 등이 필요할 때 직접 구현해야 했습니다. 특히, 다중 선택 기능은 사진을 다루는 대부분의 앱에서 필요로 하기에 필수적인 구현 항목으로 존재해왔습니다. PHPickerViewController는 이를 기본적으로 지원하므로 불필요한 코드를 지울 수 있습니다.
Permission을 요청하는 코드도 삭제할 수 있습니다. 왜냐하면 Permission 자체를 요청하지 않기 때문입니다. 요청하는 코드와 예외 처리 구문을 모두 삭제할 수 있으니 큰 이점으로 다가옵니다.

단점

  • UIImagePickerController의 카메라 사용과 사진을 편집하는 기능을 제공하지 않는다
  • 비디오 자동 압축(automatic compression)도 제공하지 않아 직접 처리해야 함.

How to use

전체적인 사용법은 UIImagePickerController과 비슷하다.
image

라이브러리

Reference

https://www.youtube.com/watch?v=yBHpKuTvfdA
https://zeddios.tistory.com/1052
https://jeong9216.tistory.com/161
https://rockyshikoku.medium.com/select-multiple-photos-from-iphone-photo-library-phpickerviewcontroller-986257d4d7db