Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Flutter
  3. photo_manager

photo_manager

Apache-2.0Dartv3.9.0

A Flutter plugin for cross-platform media asset management, providing APIs to access and manage photos, videos, and audio without UI integration.

Visit WebsiteGitHubGitHub
759 stars382 forks0 contributors

What is photo_manager?

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.

Target Audience

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.

Value Proposition

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.

Overview

A Flutter plugin that provides images, videos, and audio abstraction management APIs without interface integration, available on Android, iOS, macOS and OpenHarmony.

Use Cases

Best For

  • Building custom photo or video picker interfaces in Flutter apps
  • Creating gallery or media management applications with advanced filtering
  • Developing social media apps that require access to device media libraries
  • Implementing cross-platform media features for Android, iOS, and macOS
  • Handling Live Photos and other platform-specific media types
  • Managing media permissions and limited access flows on modern OS versions

Not Ideal For

  • Projects needing quick media access with minimal native configuration (e.g., using Flutter's image_picker for basic picking)
  • Applications where disk space is tightly managed and automated cache cleanup is required over manual iOS file deletion
  • Teams requiring fully stable, production-ready APIs for media modification (e.g., deleting or moving assets) without experimental warnings
  • Simple apps that only need to display a few gallery images without advanced filtering or cross-platform consistency

Pros & Cons

Pros

Cross-Platform Consistency

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.

Advanced Filtering Capabilities

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.

Live Photo Support

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.

Active Maintenance and Ecosystem

Well-maintained with migration guides, common issues addressed on GitHub, and companion packages like wechat_assets_picker, ensuring long-term viability.

Cons

Complex Native Configuration

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.

Experimental and Unstable Features

Many operations like entity deletion, copying, and moving are labeled experimental in the README, with warnings about platform inconsistencies and potential modifications or removals.

Cache Management Overhead

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.

Frequently Asked Questions

Quick Stats

Stars759
Forks382
Contributors0
Open Issues68
Last commit2 months ago
CreatedSince 2018

Tags

#dart#photo#ios#video-library#plugin#permission-handling#video#mobile-development#cross-platform#photo-library#flutter#image#media-management#flutter-plugin#photos

Built With

K
Kotlin
G
Glide
O
Objective-C
S
Swift
F
Flutter
D
Dart

Links & Resources

Website

Included in

Flutter59.5k
Auto-fetched 1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub