A simple, sleek Android app for compressing photos, videos, and GIFs with Material You design.
-
Clean Architecture with 3 layers:
- Domain Layer: Business logic, models, repository interfaces
- Data Layer: Repository implementations, local database, compression engines
- Presentation Layer: UI (Activities, Fragments, ViewModels)
-
MVVM Pattern with ViewModels and LiveData/Flow
-
Dependency Injection using Hilt
-
Material You Design with dynamic colors
app/
βββ data/
β βββ local/
β β βββ dao/ # Room DAOs
β β βββ entity/ # Room entities
β β βββ CompressorDatabase.kt
β βββ repository/ # Repository implementations
βββ di/ # Hilt modules
βββ domain/
β βββ model/ # Domain models
β βββ repository/ # Repository interfaces
βββ presentation/
βββ home/ # Home screen
βββ compress/ # Compression screen (to be added)
βββ history/ # History screen (to be added)
βββ MainActivity.kt
Since FFmpeg-kit is not available on Maven Central, you need to download the .aar file manually:
-
Download
ffmpeg-kit-min-gpl-5.1.LTS.aarfrom: -
Place the downloaded
.aarfile in:app/libs/ -
The dependency is already configured in
app/build.gradle.kts:implementation(files("libs/ffmpeg-kit-min-gpl-5.1.LTS.aar")) implementation(libs.smart.exception)
- Go to Firebase Console
- Create a new project or use existing one
- Add Android app with package name:
com.matrix.compressor - Download
google-services.json - Place it in
app/directory
./gradlew clean build- β Clean Architecture with MVVM
- β Dependency Injection (Hilt)
- β Material You Design
- β Room Database for history
- β³ Photo compression
- β³ Video compression (FFmpeg)
- β³ GIF compression
- β³ Batch processing
- β³ Before/After preview
- β³ Firebase Analytics & Remote Config
- β³ Ad integration (after 10K downloads)
- Language: Kotlin
- UI: XML with Material 3 Components
- Architecture: Clean Architecture + MVVM
- DI: Hilt
- Database: Room
- Async: Coroutines + Flow
- Navigation: Navigation Component
- Image Loading: Glide
- Compression:
- Photos: Compressor library
- Videos: FFmpeg-kit
- GIFs: Glide
- Firebase: Analytics, Crashlytics, Remote Config
- Project setup with Clean Architecture
- Material You theme
- Home screen UI
- Photo compression implementation
- Video compression implementation
- GIF compression implementation
- Batch processing
- Before/After preview
- Quality settings
- History screen
- Firebase integration
- Settings screen
- Onboarding
- Play Store assets
- Beta testing
Copyright Β© 2026 Matrix. All rights reserved.