Skip to content

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

Notifications You must be signed in to change notification settings

CodeShipping/AIOCompressor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

 
 
 

Languages