-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discover PhotoKit change history #29
Comments
Discover PhotoKit change history - WWDC22 - Videos - Apple Developer 본 글은 WWDC 를 보고, 번역 및 요약 그리고 실행해보는 스터디 프로젝트의 일환입니다.
PhotoKit 은 사진 라이브러리에 저장된 사진, 영상 및 앨범에 접근하고 업데이트하기 위해 풍부한 API 를 제공합니다. PhotoKit 은 깊은 수준으로 Photos 접근과 통합이 필요한 앱을 위해 설계되었습니다. 사진 관리 또는 편집, 사용자 지정 카메라 앱이나 사진 라이브러리를 독특하게 탐색할 수 있는 방법을 제공하는 앱들이 있을 것입니다. 이런 유형의 앱들은 사진 라이브러리가 시간이 지남에 따라 어떻게 변경되는지 모니터링해서 Photos 의 경험을 자세히 반영할 수 있습니다. 예를 들어, 소셜 하이킹 앱을 만들었다고 해보겠습니다. 친구와 하이킹 다녀온 사진을 공유하고, 편집하는 앱입니다. 이 앱은 산에서의 경험을 콜라주(위와 같이 화면을 구성하는 기법)를 만들기 위해 최근 하이킹 운동의 시작과 끝 타임스탬프에서 사진을 모읍니다. 이는 사진 라이브러리에서 선택한 사진과 동기화된 상태로 유지됩니다. 예를 들어, 친구에게서 하이킹 사진을 받는다면 앱은 이 업데이트를 사용하여 새로운 콜라주를 생성할 것입니다. 지금까지 앱이 새로 삽입된 에셋과 이전 하이킹 콜라주의 변경사항을 발견하려면 열련의 fetch 를 수행해야 했습니다. 앱은 마지막 앱 실행 날짜보다 늦게 생성된 에셋을 가져올 수 있습니다. 에셋 업데이트와 삭제를 결정하는 건 더 어려웠습니다.
전체적으로 앱을 실행할 때마다 세 가지 검사를 별도로 해야하는데 만약 앱이 많은 양의 에셋을 표시하는 경우 특히나 비용이 많이 듭니다. 불확실한 결과를 일일이 가져오고 확인을 하는 대신 API 호출로 무엇이 변했는지 정확하게 아는 방법이 있다면 어떨까요? 새로운 변경 내역 API 를 통해 쉽게 사진 라이브러리의 오프라인 업데이트를 추적할 수 있습니다. 1️⃣ New change history API변경 내역은 사진 라이브러리에 대한 삽입, 업데이트, 삭제 처럼 변경 타임라인으로 구성됩니다. 위의 타임라인 예시를 보면 3일간의 변경 내역에 에셋, 앨범, 폴더가 변경되었습니다. 어떻게 변경 사항이 발생한 것을 알 수 있을까요? 👾 : persistent change token 을 사용하면 됩니다!
새로운 API 는 PhotoKit 을 지원하는 모든 플랫폼에서 사용 가능합니다. 앱이 실행되고 사진 라이브러리와 함께 작동하면 여러분은 persistent change token 을 앱 내에 저장할 수 있습니다. 👉 Photos 객체에 대한 변경 세부 정보를 세 가지 유형으로 가져올 수 있습니다. 👉 코드로 살펴보겠습니다.
👉 새로운 persistent history API 와 기존의 change observer API 를 비교해 보겠습니다.
여러분들은 요구사항에 따라 위의 API 를 사용할 수 있습니다. 하이킹 앱으로 돌아가 봅시다. 이제 하이킹 콜라주를 만들고 업데이트 하기 위해 persistent change API 를 사용해서 에셋을 추적하려고 합니다.
이제 변경 정보에서 앱에 영향을 미치는 라이브러리 변경 사항을 식별해야 합니다. 이미 우리는 updated, deleted, inserted local identifiers 를 식별했습니다. 👉 어떻게 이걸 반영해 업데이트 할까요?
insertedIdentifiers 를 사용해서 삽입된 에셋을 가져오고 어떤 에셋이 삽입되었는지 알 수 있습니다. 하이킹 시작과 종료와 생성 날짜를 비교하며 하이킹 타임스탬프 사이의 변화를 확인할 수 있습니다.
업데이트 된 에셋들에 수정이 있을 수 있으니
deleteIdentifier 를 사용해 재생성이 필요한 콜라주를 결정할 수 있습니다. 👾 : 이제 변경 사항은 모두 처리했고, 앱은 최신 상태입니다. 새로운 API 를 사용할 때 주의해야 할 사항이 몇 가지 있습니다. ✅ Considerations
업데이트, 삽입된 에셋에 대해 성능 향상을 보이기 위해서는 여러 개의 작은 요청 대신 하나의 큰 fetch 가 좋습니다.
✅ Handling errorspersistent changes 를 fetch 할 때 오류 두 가지가 있습니다.
위의 경우 앱이 최신 상태인지 확인하기 위해 사진 라이브러리에서 추적된 객체를 refetch 하는 것을 권합니다. 2️⃣ Additional PhotoKit APIs새로운 PhotoKit API 가 몇 가지 더 있습니다. PhotoKit 은 미디어 하위 유형 및 스마트 앨범에서 cinematic 비디오에 접근을 지원합니다. 👉 여기에 새로운 오류 코드도 두 개 있습니다.
👾 : Photos picker 관한 올해 세션도 있습니다! |
The text was updated successfully, but these errors were encountered: