🍎 iOS/Swift

Photos ν”„λ ˆμž„μ›Œν¬ κ³΅μ‹λ¬Έμ„œ λ²ˆμ—­

JerryiOS 2024. 8. 7. 21:12

Photos ν”„λ ˆμž„μ›Œν¬

사진 μ•±μ—μ„œ κ΄€λ¦¬ν•˜λŠ” 이미지 및 λΉ„λ””μ˜€ Asset을 λ‹€λ£¨λŠ” ν”„λ ˆμž„μ›Œν¬. μ—¬κΈ°μ—λŠ” iCloud 사진과 라이브 사진이 ν¬ν•¨λœλ‹€.


PhotoKit을 μ‚¬μš©ν•˜μ—¬ iOS, macOS, tvOS 및 visionOSμ—μ„œ 사진 앱이 κ΄€λ¦¬ν•˜λŠ” 이미지 및 λΉ„λ””μ˜€ Asset에 μ ‘κ·Όν•©λ‹ˆλ‹€. 이 ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μžμ˜ 사진을 νŽΈμ§‘ν•˜κ±°λ‚˜ ν‘œμ‹œν•˜κ±°λ‚˜ 앨범, μˆœκ°„ 및 곡유 앨범과 같은 Asset μ»¬λ ‰μ…˜μ„ 관리할 수 μžˆμŠ΅λ‹ˆλ‹€. 이 ν”„λ ˆμž„μ›Œν¬λŠ” μ‚¬μš©μžμ˜ μž₯μΉ˜μ™€ iCloud에 μžˆλŠ” 사진에 λŒ€ν•œ 접근을 μ œκ³΅ν•©λ‹ˆλ‹€.

μ•±μ—μ„œ μ‚¬μš©μžμ˜ 사진에 μ ‘κ·Όν•˜λŠ” 것 외에도, μ•± ν™•μž₯을 κ΅¬μΆ•ν•˜κ³  μ•±μ˜ κΈ°λŠ₯을 iOS λ˜λŠ” macOS의 사진 앱에 직접 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžλ“€μ΄ 사진과 λΉ„λ””μ˜€λ₯Ό νŽΈμ§‘ν•˜κ±°λ‚˜ ν•„ν„° 및 효과λ₯Ό μ μš©ν•  수 μžˆλ„λ‘ 사진 νŽΈμ§‘ μ•± ν™•μž₯을 λ§Œλ“€κ±°λ‚˜, μ‚¬μš©μžμ˜ 사진을 μ‚¬μš©ν•˜μ—¬ μŠ¬λΌμ΄λ“œμ‡Ό, μ±… λ˜λŠ” 기타 λ§žμΆ€ν˜• μ½˜ν…μΈ λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ 사진 ν”„λ‘œμ νŠΈ ν™•μž₯을 μƒμ„±ν•˜μ‹­μ‹œμ˜€. μ΄λŸ¬ν•œ μ•± ν™•μž₯은 앱을 App Store에 μ œμΆœν•  λ•Œ μ•± λ²ˆλ“€μ— 포함해야 ν•©λ‹ˆλ‹€. λ§Œμ•½ κ·€ν•˜μ˜ 앱이 iOSλ‚˜ macOSκ°€ μ•„λ‹Œ ν”Œλž«νΌμ—μ„œ μ‹€ν–‰λœλ‹€λ©΄, ν•΄λ‹Ή ν”Œλž«νΌμ€ κ·€ν•˜μ˜ μ•± ν™•μž₯을 λ¬΄μ‹œν•©λ‹ˆλ‹€.


class PHPhotoLibrary

μ‚¬μš©μžμ˜ 사진 λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ μ ‘κ·Ό 및 변경을 κ΄€λ¦¬ν•˜λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

Photos Picker for UIKit, AppKit

iOSμ—μ„œ 사진 및 λΉ„λ””μ˜€ 선택
Photos 선택기λ₯Ό μ‚¬μš©ν•˜μ—¬ μžμ‚°μ„ μ°Ύκ³  μ„ νƒν•˜λŠ” μ‚¬μš©μž κ²½ν—˜μ„ κ°œμ„ ν•©λ‹ˆλ‹€.

class PHPickerViewController

사진 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μžμ‚°μ„ μ„ νƒν•˜κΈ° μœ„ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” λ·° μ»¨νŠΈλ‘€λŸ¬μž…λ‹ˆλ‹€.

Photos Picker for SwiftUI

SwiftUI 앱에 사진 선택기λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
SwiftUIμ—μ„œ μ œκ³΅ν•˜λŠ” 사진 선택기 λ·°λ₯Ό μ‚¬μš©ν•˜μ—¬ λ―Έλ””μ–΄ μžμ‚°μ„ μ„ νƒν•©λ‹ˆλ‹€.

Implementing an inline Photos picker

μ‹œμŠ€ν…œμ—μ„œ μ œκ³΅ν•˜λŠ” 반 λ†’μ΄μ˜ 사진 선택기λ₯Ό μ•±μ˜ 뷰에 ν¬ν•¨μ‹œν‚΅λ‹ˆλ‹€.

struct PhotosPicker

사진 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μžμ‚°μ„ μ„ νƒν•˜κΈ° μœ„ν•œ 사진 선택기λ₯Ό ν‘œμ‹œν•˜λŠ” λ·°μž…λ‹ˆλ‹€.

struct PhotosPickerItem

사진 선택기와 ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” ν•­λͺ©μ„ λ‚˜νƒ€λ‚΄λŠ” νƒ€μž…μž…λ‹ˆλ‹€.

struct PhotosPickerSelectionBehavior

사진 선택기가 μ‚¬μš©μžμ˜ 선택을 μ²˜λ¦¬ν•˜λŠ” 방식을 μ„€λͺ…ν•˜λŠ” νƒ€μž…μž…λ‹ˆλ‹€.

Asset Retrieval

μ§€μ •λœ 쿼리에 μΌμΉ˜ν•˜λŠ” μžμ‚°, μžμ‚° μ»¬λ ‰μ…˜, 및 μ»¬λ ‰μ…˜ λͺ©λ‘ κ°€μ Έμ˜€κΈ°
사진 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ μžμ‚°κ³Ό μžμ‚° μ»¬λ ‰μ…˜μ„ κ²€μƒ‰ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

class PHAsset

사진 λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 이미지, λΉ„λ””μ˜€ λ˜λŠ” 라이브 사진을 λ‚˜νƒ€λ‚΄λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

class PHAssetCollection

μˆœκ°„, μ‚¬μš©μžκ°€ μƒμ„±ν•œ 앨범 λ˜λŠ” 슀마트 앨범과 같은 사진 μžμ‚° 그룹을 λ‚˜νƒ€λ‚΄λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

class PHCollection

사진 μžμ‚° μ»¬λ ‰μ…˜ 및 μ»¬λ ‰μ…˜ λͺ©λ‘μ— λŒ€ν•œ 좔상 μŠˆνΌν΄λž˜μŠ€μž…λ‹ˆλ‹€.

class PHCollectionList

사진 μžμ‚° μ»¬λ ‰μ…˜μ„ ν¬ν•¨ν•˜λŠ” 그룹으둜, μˆœκ°„, 연도 λ˜λŠ” μ‚¬μš©μžκ°€ μƒμ„±ν•œ μ•¨λ²”μ˜ 폴더λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

class PHObject

사진 λͺ¨λΈ 객체(μžμ‚° 및 μ»¬λ ‰μ…˜)의 좔상 μŠˆνΌν΄λž˜μŠ€μž…λ‹ˆλ‹€.

class PHFetchResult

사진 검색 λ©”μ„œλ“œμ—μ„œ λ°˜ν™˜λœ μžμ‚° λ˜λŠ” μ»¬λ ‰μ…˜μ˜ μ •λ ¬λœ λͺ©λ‘μž…λ‹ˆλ‹€.

class PHFetchOptions

μžμ‚° λ˜λŠ” μ»¬λ ‰μ…˜ 객체λ₯Ό 검색할 λ•Œ 필터링, μ •λ ¬ 및 관리 결과에 영ν–₯을 λ―ΈμΉ˜λŠ” μ˜΅μ…˜ μ§‘ν•©μž…λ‹ˆλ‹€.

Asset Loading

이미지, λΉ„λ””μ˜€ λ˜λŠ” 라이브 사진 μ½˜ν…μΈ  μš”μ²­ 및 λΉ λ₯Έ μž¬μ‚¬μš©μ„ μœ„ν•œ 캐싱
μ½˜ν…μΈ λ₯Ό μš”μ²­ν•˜κ³ , 미리보기 썸넀일 및 μžμ‚° 데이터λ₯Ό 검색 λ˜λŠ” μƒμ„±ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.

class PHImageManager

미리보기 썸넀일 및 μžμ‚° 데이터λ₯Ό κ²€μƒ‰ν•˜κ±°λ‚˜ μƒμ„±ν•˜λŠ” 데 μœ μš©ν•œ κ°μ²΄μž…λ‹ˆλ‹€.

class PHCachingImageManager

λŒ€λŸ‰μ˜ μžμ‚°μ„ 미리 λ‘œλ“œν•˜κΈ° μ΅œμ ν™”λœ 미리보기 썸넀일을 κ²€μƒ‰ν•˜κ±°λ‚˜ μƒμ„±ν•˜λŠ” 데 μœ μš©ν•œ κ°μ²΄μž…λ‹ˆλ‹€.

class PHImageRequestOptions

이미지 κ΄€λ¦¬μžλ‘œλΆ€ν„° μš”μ²­ν•œ 사진 μžμ‚°μ˜ 정적 이미지 ν‘œν˜„ 전달에 영ν–₯을 λ―ΈμΉ˜λŠ” μ˜΅μ…˜ μ§‘ν•©μž…λ‹ˆλ‹€.

class PHVideoRequestOptions

λΉ„λ””μ˜€ μžμ‚° λ°μ΄ν„°μ˜ 전달에 영ν–₯을 λ―ΈμΉ˜λŠ” μ˜΅μ…˜ μ§‘ν•©μž…λ‹ˆλ‹€.

class PHLivePhotoRequestOptions

라이브 사진 μžμ‚°μ˜ 전달에 영ν–₯을 λ―ΈμΉ˜λŠ” μ˜΅μ…˜ μ§‘ν•©μž…λ‹ˆλ‹€.

Live Photos

라이브 사진 ν‘œμ‹œ
iOS 사진 μ•±κ³Ό λ™μΌν•œ λŒ€ν™”ν˜• μž¬μƒμ„ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•©λ‹ˆλ‹€.

class PHLivePhotoView

λͺ¨μ…˜κ³Ό 촬영 μ „ν›„ μˆœκ°„μ˜ μ†Œλ¦¬λ₯Ό ν¬ν•¨ν•œ 사진을 ν‘œμ‹œν•˜λŠ” λ·°μž…λ‹ˆλ‹€.

class PHLivePhoto

λͺ¨μ…˜κ³Ό μ†Œλ¦¬λ₯Ό ν¬ν•¨ν•œ μ‚¬μ§„μ˜ μ‹œκ°μ  ν‘œν˜„μ„ λ‚˜νƒ€λ‚΄λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

Asset Resource Management

class PHAssetResource

사진, λΉ„λ””μ˜€ λ˜λŠ” 라이브 사진 μžμ‚°κ³Ό κ΄€λ ¨λœ κΈ°λ³Έ 데이터 λ¦¬μ†ŒμŠ€μž…λ‹ˆλ‹€.

class PHAssetCreationRequest

κΈ°λ³Έ 데이터 λ¦¬μ†ŒμŠ€μ—μ„œ μƒˆλ‘œμš΄ 사진 μžμ‚°μ„ μƒμ„±ν•˜κΈ° μœ„ν•œ μš”μ²­μž…λ‹ˆλ‹€.

class PHAssetResourceCreationOptions

κΈ°λ³Έ λ¦¬μ†ŒμŠ€μ—μ„œ μƒˆλ‘œμš΄ 사진 μžμ‚°μ„ μƒμ„±ν•˜λŠ” 데 영ν–₯을 λ―ΈμΉ˜λŠ” μ˜΅μ…˜ μ§‘ν•©μž…λ‹ˆλ‹€.

class PHAssetResourceManager

사진 μžμ‚°μ˜ 데이터λ₯Ό μ €μž₯ν•˜λŠ” λ¦¬μ†ŒμŠ€ κ΄€λ¦¬μžμž…λ‹ˆλ‹€.

class PHAssetResourceRequestOptions

μžμ‚° λ¦¬μ†ŒμŠ€ κ΄€λ¦¬μžμ—κ²Œ μš”μ²­ν•˜λŠ” κΈ°λ³Έ μžμ‚° 데이터 전달에 영ν–₯을 λ―ΈμΉ˜λŠ” μ˜΅μ…˜ μ§‘ν•©μž…λ‹ˆλ‹€.

Photo Editing Extensions

Creating Photo Editing Extensions

앱이 사진 μ•± λ‚΄μ—μ„œ 직접 μžμ‚°μ„ νŽΈμ§‘ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•˜λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€.

protocol PHContentEditingController

μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ»€μŠ€ν…€ λ·° 컨트둀러 ν΄λž˜μŠ€κ°€ κ΅¬ν˜„ν•˜λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.

macOS Photos Project Extensions

Creating a Slideshow Project Extension for Photos

macOS 사진 앱에 ν”„λ‘œμ νŠΈ 생성을 μ§€μ›ν•˜λŠ” ν™•μž₯을 μΆ”κ°€ν•©λ‹ˆλ‹€.

class PHProject

사진 μ•± ν”„λ‘œμ νŠΈ ν™•μž₯을 λ‚˜νƒ€λ‚΄λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

class PHProjectInfo

ν”„λ‘œμ νŠΈ ν™•μž₯에 λŒ€ν•œ μ •λ³΄μž…λ‹ˆλ‹€.

class PHProjectExtensionContext

사진 ν”„λ‘œμ νŠΈ ν™•μž₯에 기반이 λ˜λŠ” ν”„λ‘œμ νŠΈμ™€ μ‚¬μš©μžμ˜ 사진 λΌμ΄λΈŒλŸ¬λ¦¬μ— λŒ€ν•œ 접근을 μ œκ³΅ν•˜λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

class PHProjectElement

λͺ¨λ“  μš”μ†Œ 객체의 μŠˆνΌν΄λž˜μŠ€μž…λ‹ˆλ‹€.

class PHProjectSection

μ„ νƒλœ μžμ‚° 및 ν…μŠ€νŠΈ μš”μ†Œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ½˜ν…μΈ  λͺ¨μŒμž…λ‹ˆλ‹€.

class PHProjectRegionOfInterest

사진 μžμ‚° λ‚΄μ˜ 관심 μ˜μ—­μ„ λ‚˜νƒ€λ‚΄λŠ” κ°μ²΄μž…λ‹ˆλ‹€.

class PHProjectChangeRequest

사진 ν”„λ‘œμ νŠΈ ν™•μž₯μ—μ„œ μžμ‚° 데이터λ₯Ό λ³€κ²½ν•˜κΈ° μœ„ν•œ μš”μ²­μž…λ‹ˆλ‹€.

protocol PHProjectExtensionController

ν”„λ‘œμ νŠΈ ν™•μž₯의 생λͺ…μ£ΌκΈ° 및 μ§€μ›ν•˜λŠ” μœ ν˜•μ„ μ •μ˜ν•˜λŠ” ν”„λ‘œν† μ½œμž…λ‹ˆλ‹€.

struct PHProjectCategory

사진 ν”„λ‘œμ νŠΈ ν™•μž₯ μΉ΄ν…Œκ³ λ¦¬λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ΅¬μ‘°μ²΄μž…λ‹ˆλ‹€.

Photo Errors

struct PHPhotosError

ν”„λ ˆμž„μ›Œν¬ 였λ₯˜λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ΅¬μ‘°μ²΄μž…λ‹ˆλ‹€.

let PHPhotosErrorDomain: String

였λ₯˜ λ„λ©”μΈμ˜ λ¬Έμžμ—΄ ν‘œν˜„μž…λ‹ˆλ‹€.

Structures

struct PhotosPickerStyle


참고자료


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

[PhotoKit | Apple Developer Documentation

Work with image and video assets that the Photos app manages, including those from iCloud Photos and Live Photos.

developer.apple.com](https://developer.apple.com/documentation/photokit)

λ°˜μ‘ν˜•