A professional Android File Manager application built with Flutter, inspired by Google Files UI and functionality.
- Bottom Navigation: Clean, Browse, Share tabs
- Material Design 3: Modern, clean interface
- Dark/Light Mode: System theme support
- File browsing with folder navigation
- File categories (Images, Videos, Audio, Documents, APKs, Archives)
- Search functionality
- Storage information display
- InβApp Viewers: Open images, videos, audio, and documents without leaving the app
- Image gallery & fullscreen viewer with zoom/pan
- Video player with controls and playlist support
- Audio player with queue and background playback
- Document viewer for PDF, TXT, DOCX (fallback to external apps)
- ZIP Toolkit: Compress and extract archives with progress indicators
- Storage analysis
- Large file detection
- Junk file cleanup
- Cache management
- Easy file sharing
- Multiple file selection
- Share to various apps
- Flutter: 3.10.0 or higher
- Dart: 3.10.7 or higher
- Android: API 21+ (Android 5.0)
- Permissions: Storage access required
git clone <repository-url>
cd file_manager_proflutter pub getflutter run# Debug APK
flutter build apk --debug
# Release APK
flutter build apk --release- Open Android Studio
- File β Open β Select the project folder
- Wait for Gradle sync to complete
- Select device/emulator from the dropdown
- Click Run button or press
Shift+F10
The app requests the following permissions based on Android version:
- READ_EXTERNAL_STORAGE / WRITE_EXTERNAL_STORAGE: Legacy storage access (Android < 10)
- MANAGE_EXTERNAL_STORAGE: Full storage access (Android 11+)
- QUERY_ALL_PACKAGES: List installed apps
- REQUEST_INSTALL_PACKAGES: Install APK files
- Android 13+ granular media permissions (photos, videos, audio) for media libraries
lib/
βββ core/
β βββ theme/
β βββ app_theme.dart # App themes
βββ features/
β βββ home/
β β βββ home_screen.dart # Main navigation
β βββ browse/
β β βββ browse_screen.dart # File browser & tools entry
β βββ clean/
β β βββ clean_screen.dart # Storage cleaner
β βββ share/
β β βββ share_screen.dart # File sharing
β βββ media/
β β βββ screens/
β β β βββ image_gallery_screen.dart
β β β βββ image_viewer_screen.dart
β β β βββ video_library_screen.dart
β β β βββ video_player_screen.dart
β β β βββ audio_library_screen.dart
β β β βββ audio_player_screen.dart
β β βββ widgets/
β β βββ media_thumbnail.dart
β βββ documents/
β β βββ screens/
β β βββ document_viewer_screen.dart
β βββ zip/
β β βββ screens/
β β βββ zip_tool_screen.dart
β βββ file_explorer/
β βββ file_list_screen.dart
βββ services/
β βββ permission_service.dart # Permission handling (Android 13+ media)
β βββ file_service.dart # File operations
β βββ media_library_service.dart # Media scanning (isolates)
β βββ document_service.dart # Document parsing (PDF/TXT/DOCX)
β βββ audio_playback_service.dart # Audio playback wrapper
β βββ zip_service.dart # ZIP compression/extraction
β βββ file_type_resolver.dart # MIME/type resolution
β βββ viewer_launcher.dart # Centralized viewer routing
βββ providers/
β βββ media_library_providers.dart
β βββ document_providers.dart
β βββ audio_playback_provider.dart
βββ models/
β βββ file_model.dart
β βββ media_asset.dart
β βββ document_models.dart
βββ main.dart # App entry point
- flutter_riverpod: State management
- google_fonts: Typography
- permission_handler: Android permissions (including Android 13+ media)
- path_provider: File system paths
- share_plus: File sharing
- open_filex: Open files with external apps (fallback)
- device_info_plus: Device information
- animations: Smooth transitions
- photo_view: Image zoom/pan and fullscreen viewer
- video_player: Inβapp video playback
- just_audio: Audio playback with background support
- audio_session: Audio session management
- pdfx: PDF rendering
- mime: MIME type detection
- archive: ZIP compression/extraction and DOCX parsing
- xml: DOCX XML parsing
- path: Path utilities
- Enable Developer Mode on Windows for symlink support
- Update Flutter SDK:
flutter upgrade - Clean build:
flutter clean && flutter pub get
- Grant storage permissions when prompted
- For Android 11+, enable "All files access" in settings
- On Android 13+, grant individual media permissions (Photos, Videos, Audio) for media libraries
- Use Release builds for better performance
- Enable R8 shrinking for release builds
- Media scanning runs in isolates to avoid UI freezes
- Inβapp viewers support common formats (images, videos, audio, PDF, TXT, DOCX)
- Unsupported formats automatically open with external apps via
open_filex - Errors in inβapp rendering also trigger external app fallback
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For issues and feature requests, please create an issue in the repository.