No description
  • Kotlin 99.1%
  • Python 0.6%
  • JavaScript 0.2%
Find a file
2026-05-20 20:58:45 +02:00
.github
app update: AGPL-3.0-only license, version bump 1.0.8, fix F-Droid fastlane links 2026-05-20 20:58:45 +02:00
fastlane/metadata/android/en-US update: AGPL-3.0-only license, version bump 1.0.8, fix F-Droid fastlane links 2026-05-20 20:58:45 +02:00
fdroid/metadata Bump version to 1.0.7 for store hotfix update 2026-05-13 20:58:16 +02:00
gradle/wrapper
scripts
.gitattributes
.gitignore
38171FDJG004PT
batch_translate.py
build.gradle.kts
gradle.properties
gradlew
gradlew.bat
kompact.kt.txt
LICENSE
Privacy Policy.md
README.md chore: bump version to 1.0.5, fix about formatting and update F-Droid metadata links 2026-05-09 10:48:51 +02:00
settings.gradle.kts
temp_screen.kt
test.kt

Kompact

Kompact is an open-source Android app written in Kotlin with Jetpack Compose that compresses images (JPEG, PNG, WebP) quickly and transparently. Official builds are produced and signed by the maintainer to keep a single line of trust that stays compliant with F-Droid and Google Play policies.

Key Features

  • Multi-selection of images through the Storage Access Framework.
  • Fully configurable compression parameters (quality, max size, output format).
  • Result cards summarize original vs compressed size and the status of each operation.
  • Modern Material 3 UI with light/dark support.
  • Automatic export to the Pictures/Kompact directory with the option to pick any other destination.
  • Side-by-side preview of source/output with synchronized quality and target size controls.

Note: PDF documents, audio tracks, and video files are not supported yet. They remain on the roadmap and will arrive in future releases once the image workflow is fully battle-tested.

Design

  • FDroid-inspired palette with emerald primary (#1C8F62), denim secondary (#2F5978), and orange accent (#B55300) for a clean, opinionated look.
  • AA contrast maintained between text/icons and both light/dark surfaces for accessible viewing.

Requirements

  • Android Studio Ladybug or newer.
  • Android Gradle Plugin 8.5+, Gradle 8.7.
  • JDK 21 (recommended) or JDK 17 configured through JAVA_HOME.
  • Android SDK 35, minSdk 24.

Quick start

# from the project root
./gradlew assembleDebug
./gradlew test
./gradlew assembleRelease

Artifacts must be signed with your own keys when testing private builds because production signing happens exclusively on the maintainer release workstation.

Project structure

  • app/src/main/java/com/kompact/data contains the local repository and compression logic.
  • app/src/main/java/com/kompact/ui hosts the ViewModel and main composables.
  • app/src/main/java/com/kompact/model exposes shared domain models.
  • app/src/main/java/com/kompact/util keeps reusable helpers.

Distribution policy

  • The codebase contains no proprietary services, so it remains eligible for F-Droid and other FLOSS catalogs.
  • Release builds stay unsigned inside the repository to let F-Droid reproduce them with its keys.
  • Google Play specific assets (screenshots, policy text, signing artifacts) are curated by the maintainer, and production uploads happen from the same release workstation.
  • For third-party forks, change the application ID and sign with independent keys to avoid name collisions.

docs/PUBLISHING.md tracks the release checklist shared with platform maintainers, focusing on the steps reviewers need for compliance checks.

Release governance

  • Tags are created only by the maintainer after running the full QA pass.
  • Official packages are distributed exclusively through the maintainer-operated channels (Git tags, eventual F-Droid entry, Google Play listing).
  • Community contributions are welcome, but merging or publishing decisions always stay under upstream control to preserve a single trust source.

License

Kompact is distributed under the GNU Affero General Public License v3.0 only. Refer to LICENSE for details and always include a link to the source when redistributing binaries or forks.