Skip to content

M0SAD67/Gallery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Έ M O S A Gallery

M O S A Logo

M O S A Logo

Professional Photo & Video Gallery with Advanced Video Player and Subtitle Support

Flutter Dart License Platform

Features β€’ Installation β€’ Usage β€’ Screenshots β€’ Developer


πŸ“¦ Download

πŸ“² Get the Latest Release

You can download the latest version of M O S A Gallery below πŸ‘‡

Download APK

Or visit the Releases page to see all available versions.


πŸ› οΈ How to Install (Android)

  1. Download the .apk file from the link above.
  2. Open the file on your Android device.
  3. Allow installation from unknown sources (if prompted).
  4. Launch M O S A Gallery and enjoy!

🎯 Overview

M O S A Gallery is a professional photo and video gallery app built with Flutter, offering a smooth and modern user experience with numerous advanced features.

✨ Key Features

πŸ“± Modern UI/UX

  • 5 different navigation bar designs (Pill Shape, Floating Pills, Holographic, iOS Style, Futuristic)
  • Smooth and professional animations
  • Dark mode support
  • Responsive design that adapts to all screen sizes

🎬 Advanced Video Player

  • Full Subtitle Support (SRT/VTT) with complete customization:
    • Change text and background colors
    • Control font size and position
    • Adjust transparency and width
  • Picture-in-Picture (PIP) mode for multitasking
  • Gesture Controls:
    • Vertical swipe for brightness and volume
    • Double tap for forward/rewind
  • Multiple playback speeds (0.25x - 2.0x)
  • Blur effect for privacy
  • Auto-save playback position
  • Auto-rotate to landscape
  • Visual indicators for brightness and volume

πŸ”’ Security & Privacy

  • App Lock with custom passcode
  • Biometric Authentication (Fingerprint / Face ID)
  • Hide Files from main gallery
  • Password-protected folder for sensitive content

🎨 Media Management

  • Display photos and videos by date
  • Advanced Search functionality
  • Multi-selection mode for batch operations:
    • Share
    • Delete
    • Hide
  • Albums and Collections
  • Recently Deleted folder
  • Filter by type (photos/videos)

⚑ Performance

  • Fast thumbnail loading
  • Shimmer effect while loading
  • Lazy loading for long lists
  • Smart image caching
  • Optimized memory usage

🌐 Languages

  • Arabic support
  • English support
  • Extensible interface for adding new languages

πŸ› οΈ Tech Stack

Frontend

  • Flutter 3.0+ - Main framework
  • Dart 3.0+ - Programming language

Core Libraries

Media Management

photo_manager: ^3.5.3          # Photo & video management
video_player: ^2.9.2           # Video playback
subtitle: ^1.0.2               # Subtitle file processing
open_file: ^3.5.8              # File operations

Security

local_auth: ^2.3.0             # Biometric authentication
flutter_secure_storage: ^9.2.2 # Secure storage
shared_preferences: ^2.3.3     # Settings storage

User Interface

flutter_colorpicker: ^1.1.0    # Color picker
device_info_plus: ^10.1.2      # Device information

Sharing & Permissions

share_plus: ^10.1.2            # File sharing
permission_handler: ^11.3.1    # Permission management

Additional Tools

intl: ^0.19.0                  # Internationalization
path: ^1.9.0                   # Path manipulation
file_picker: ^8.1.4            # File selection

πŸ“‹ Requirements

System

  • Android: 7.0 (API 24) or higher
    • For auto-rotate and advanced animations: Android 10+ (API 29)
    • For file hiding: Android 11+ (API 30) recommended
  • iOS: 12.0 or higher (not fully tested)

Development Tools

  • Flutter SDK 3.0 or higher
  • Dart SDK 3.0 or higher
  • Android Studio / VS Code
  • Xcode (for iOS development)

βš™οΈ Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/M0SAD67/mosa-gallery.git
cd mosa-gallery

2️⃣ Install Dependencies

flutter pub get

3️⃣ Configure Permissions

Android

Add permissions in android/app/src/main/AndroidManifest.xml:

<!-- Basic permissions -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- Android 11+ -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

<!-- Android 13+ -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />

<!-- Biometric -->
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />

<!-- PIP Mode -->
<activity android:supportsPictureInPicture="true" />

iOS

Add to ios/Runner/Info.plist:

<key>NSPhotoLibraryUsageDescription</key>
<string>We need access to your photos to display them</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>We need permission to save photos</string>
<key>NSFaceIDUsageDescription</key>
<string>We use Face ID to protect your app</string>

4️⃣ Run the App

# For development
flutter run

# Build APK
flutter build apk --release

# Build App Bundle
flutter build appbundle --release

πŸ“± Usage

Main Screen

  • Single tap: View photo/video
  • Long press: Enable multi-selection mode
  • Pull down: Refresh list
  • 3 taps on Library: Open hidden folder

Video Player

  • Single tap: Show/hide controls
  • Double tap left: Rewind 10 seconds
  • Double tap right: Forward 10 seconds
  • Vertical swipe left: Adjust brightness
  • Vertical swipe right: Adjust volume

Subtitle Settings

  1. Open video
  2. Tap subtitle icon
  3. Select SRT/VTT file
  4. Customize appearance (color, size, position)

App Lock

  1. Go to Settings
  2. Enable "App Lock"
  3. Enter passcode (minimum 4 digits)
  4. Enable biometric (optional)

πŸ“‚ Project Structure

mosa-gallery/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart                      # Entry point
β”‚   β”œβ”€β”€ home.dart                      # Main page and navigation
β”‚   β”œβ”€β”€ all_media_page.dart           # All media page
β”‚   β”œβ”€β”€ collections_page.dart         # Albums page
β”‚   └── pages/
β”‚       β”œβ”€β”€ media_viewer_page.dart    # Photo/video viewer
β”‚       β”œβ”€β”€ video_player_screen.dart  # Advanced player
β”‚       β”œβ”€β”€ sub_setting.dart          # Subtitle settings
β”‚       β”œβ”€β”€ setting.dart              # App settings
β”‚       β”œβ”€β”€ app_lock_service.dart     # App lock service
β”‚       β”œβ”€β”€ hidden_page.dart          # Hidden files page
β”‚       β”œβ”€β”€ deleted_page.dart         # Recently deleted
β”‚       └── welcome_screen.dart       # Welcome screen
β”œβ”€β”€ android/
β”‚   └── app/
β”‚       └── src/main/
β”‚           β”œβ”€β”€ AndroidManifest.xml   # Permissions
β”‚           └── kotlin/               # Native code for PIP
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ icon3.png                     # App icon
β”‚   └── test.jpg                      # Test image
β”œβ”€β”€ pubspec.yaml                       # Dependencies
└── README.md                          # This file

🎨 Screenshots

Main Screen

  • Photo and video gallery sorted by date
  • 5 different navigation bar designs
  • Advanced filters and search

Video Player

  • Modern interface with Glassmorphism effects
  • Full subtitle support
  • Smooth controls
  • PIP mode

Settings

  • App lock and biometric authentication
  • Navigation bar customization
  • Player settings (speed, rotation, audio)
  • Language support

🀝 Contributing

Contributions are welcome! If you'd like to contribute:

  1. Fork the project
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Future Development Ideas

  • Full iOS support
  • Built-in photo editor
  • Video trimming and editing
  • Automatic subtitle download
  • Cloud synchronization
  • Album sharing
  • Face recognition

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 Mohamed (MOSAD)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...

πŸ‘¨β€πŸ’» Developer

Mohamed (MOSAD)

πŸ™ Special Thanks

  • Flutter Team - Amazing framework
  • Dart Team - Powerful language
  • Open Source Community - For the libraries used

πŸ› Known Issues

  1. PIP Mode: May not work on some custom Android devices
  2. Biometric: Not available on older devices
  3. Hide Files: Requires special permissions on Android 11+

πŸ“ž Support & Contact

If you encounter an issue or have a suggestion:


🌟 Support the Project

If you like the project:

  • ⭐ Star the project on GitHub
  • πŸ”€ Share the project with friends
  • πŸ› Report bugs
  • πŸ’‘ Suggest new features

Made with ❀️ in Egypt

GitHub

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published