A Flutter plugin for cross-platform media asset management, providing APIs to access and manage photos, videos, and audio without UI integration.
photo_manager is a Flutter plugin that provides a unified API to access and manage media assets (photos, videos, audio) from device galleries across Android, iOS, macOS, and OpenHarmony. It solves the problem of platform-specific complexities in media library interactions, enabling developers to build feature-rich media applications without dealing with native code directly. The plugin handles permissions, asset retrieval, filtering, caching, and advanced operations like entity modification.
Flutter developers building applications that require access to device media libraries, such as photo pickers, gallery apps, social media apps, or any app needing media management features. It is particularly useful for those targeting multiple platforms (Android, iOS, macOS) and needing consistent behavior.
Developers choose photo_manager for its comprehensive cross-platform support, robust filtering capabilities, and active maintenance. Unlike simpler solutions, it offers advanced features like Live Photo handling, custom SQL filtering, and experimental write operations, all while abstracting native complexities into a clean Dart API.
A Flutter plugin that provides images, videos, and audio abstraction management APIs without interface integration, available on Android, iOS, macOS and OpenHarmony.
Provides a unified Dart API for Android, iOS, macOS, and OpenHarmony, abstracting native complexities like permissions and asset retrieval, as shown in the README's platform-agnostic usage examples.
Offers robust filtering via FilterOptionGroup and CustomFilter with SQL-like conditions, enabling precise queries by type, size, date, or custom attributes for media-intensive apps.
Specialized handling for iOS Live Photos, including filtering and video extraction, which is rare in Flutter plugins and detailed in the README's dedicated sections.
Well-maintained with migration guides, common issues addressed on GitHub, and companion packages like wechat_assets_picker, ensuring long-term viability.
Requires extensive setup for Android (Gradle, Kotlin versions, permission manifests) and iOS (Info.plist entries), which can be error-prone and time-consuming, as detailed in the configuration sections.
Many operations like entity deletion, copying, and moving are labeled experimental in the README, with warnings about platform inconsistencies and potential modifications or removals.
On iOS, cached files must be manually deleted after use to free disk space, adding development overhead for resource-sensitive apps, as noted in the cache mechanism section.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.