expo-media-library new API: album listing lacks smart albums, asset counts, and bulk metadata
E
EX John
The new class-based API (expo-media-library 57) can't replace legacy getAlbumsAsync() for building an album picker:
- No smart albums on iOS. Album.getAll() uses PHCollectionList.fetchTopLevelUserCollections, so Recents, Favorites, Videos, Screenshots, etc. are unreachable. Legacy had getAlbumsAsync({ includeSmartAlbums: true }).
- No asset count. Legacy Album.assetCount is gone; the only way to count is fetching every asset in the album (album.getAssets() or Query.album(...).exeForMetadata()).
- No bulk album metadata. Titles require one async getTitle() round-trip per album, and album type (smart vs. user) isn't exposed at all.
Use case: a Google Photos–style picker header listing albums with title + count, smart albums first. Assets migrate cleanly to Query.exeForMetadata(), but albums force us to keep importing expo-media-library/legacy.