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.