Skip to content

CodeShipping/AIOCompressor

Repository files navigation

All In One Compressor

A simple, sleek Android app for compressing photos, videos, and GIFs with Material You design.

Architecture

  • 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

Project Structure

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

Setup Instructions

1. Download FFmpeg Library

Since FFmpeg-kit is not available on Maven Central, you need to download the .aar file manually:

  1. Download ffmpeg-kit-min-gpl-5.1.LTS.aar from:

  2. Place the downloaded .aar file in: app/libs/

  3. 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)

2. Add Firebase Configuration

  1. Go to Firebase Console
  2. Create a new project or use existing one
  3. Add Android app with package name: com.matrix.compressor
  4. Download google-services.json
  5. Place it in app/ directory

3. Build & Run

./gradlew clean build

Features (Planned)

  • ✅ 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)

Tech Stack

  • 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

Development Roadmap

Phase 1: Core Features (Week 1-2)

  • Project setup with Clean Architecture
  • Material You theme
  • Home screen UI
  • Photo compression implementation
  • Video compression implementation
  • GIF compression implementation

Phase 2: Enhanced Features (Week 3)

  • Batch processing
  • Before/After preview
  • Quality settings
  • History screen

Phase 3: Polish & Launch (Week 4)

  • Firebase integration
  • Settings screen
  • Onboarding
  • Play Store assets
  • Beta testing

License

Copyright © 2026 Matrix. All rights reserved.

About

An android application for compressing everything whether its photo, video, file etc.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages