-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Modernize Media screen #21457
Comments
This was referenced Sep 11, 2023
Closed
This was referenced Sep 18, 2023
Merged
This was referenced Sep 27, 2023
This was referenced Oct 5, 2023
This was referenced Nov 7, 2023
Merged
It's done. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Spec: UI Modernisation: Media on iOS.
Foundation ✅
The existing Media screen implementation relies heavily on MediaPicker framework, which is written in Objective-C and hasn't received a lot of attention recently. The framework attempts to generalize the code that displays images from different sources: your WordPress media library, Photos, Free Photos and GIFs, and more, which makes it brittle and hard to modify. The existing implementation also has some severe performance issues with thumbnail loading and caching, which have to be addressed.
In version 23.2, we've made the first step on the road to replacing the MediaPicker framework: integrating PHPickerViewController. The next step is to reimplement the Media screen in Swift while fixing the many unaddressed performance and other issues. This ticket covers it.
The first part of this ticket covers reimplementing the core Media screen functionality in Swift.
Modernization ✅
The second part of this ticket covers the new features and design improvements.
List
Details
Fixes
Thumbnail Loading Improvements ✅
URLSession
with noURLCache
to avoid double-caching it: the service has its own disk cacheabsoluteThumbnailLocalURL
for storing thumbnails. It gets populated byMediaImportService
when the assets are added, so we avoid duplicating the work of generating the thumbnailcoreDataStack.mainContext.perform
hops and use@MainActor
to enforce thread confinementThe text was updated successfully, but these errors were encountered: