No description
  • Kotlin 97.2%
  • Python 2.5%
  • JavaScript 0.2%
Find a file
2026-06-06 11:29:02 +02:00
.fdroid-work/metadata remove exif from all images 2026-06-06 11:29:02 +02:00
.github Initial import 2025-12-05 21:38:40 +01:00
app remove exif from all images 2026-06-06 11:29:02 +02:00
docs remove exif from all images 2026-06-06 11:29:02 +02:00
fastlane/metadata/android/en-US Bump version 1.1.0: fix Exif strip UI, fix high-res scaling issue, fix Liberapay id, update store metadata 2026-06-05 10:49:08 +02:00
fdroid/metadata Bump version 1.1.0: fix Exif strip UI, fix high-res scaling issue, fix Liberapay id, update store metadata 2026-06-05 10:49:08 +02:00
gradle/wrapper Initial import 2025-12-05 21:38:40 +01:00
scripts feat: integrate Firebase Analytics & Crashlytics 2026-01-17 17:30:13 +01:00
.gitattributes feat: integrate Firebase Analytics & Crashlytics 2026-01-17 17:30:13 +01:00
.gitignore Update gradle properties and ignore keys 2025-12-30 12:06:07 +01:00
38171FDJG004PT Initial import 2025-12-05 21:38:40 +01:00
batch_translate.py Release 1.0.2: bump version, update F‑Droid metadata, UI fixes and delete-originals feature with i18n 2026-04-30 20:14:19 +02:00
build-failed.md remove exif from all images 2026-06-06 11:29:02 +02:00
build.gradle.kts chore: remove Firebase Analytics and Crashlytics 2026-01-17 17:32:43 +01:00
gradle.properties Update gradle properties and ignore keys 2025-12-30 12:06:07 +01:00
gradlew feat: add Text overlay and icons for image actions 2026-04-05 12:14:33 +02:00
gradlew.bat Initial import 2025-12-05 21:38:40 +01:00
Kompact-v1.1.0-release.apk remove exif from all images 2026-06-06 11:29:02 +02:00
kompact.kt.txt Release 1.0.2: bump version, update F‑Droid metadata, UI fixes and delete-originals feature with i18n 2026-04-30 20:14:19 +02:00
LICENSE Initial import 2025-12-05 21:38:40 +01:00
patch_bump.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_edge.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_exif_comp.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_exif_dialog.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_fdroid.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_fdroid2.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_models.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_preview_gen.py remove exif from all images 2026-06-06 11:29:02 +02:00
patch_repo.py remove exif from all images 2026-06-06 11:29:02 +02:00
Privacy Policy.md Upload files to "/" 2025-12-08 11:09:37 +00:00
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
release.keystore remove exif from all images 2026-06-06 11:29:02 +02:00
resources.txt remove exif from all images 2026-06-06 11:29:02 +02:00
settings.gradle.kts Release 1.0.2: bump version, update F‑Droid metadata, UI fixes and delete-originals feature with i18n 2026-04-30 20:14:19 +02:00
temp_screen.kt Release 1.0.2: bump version, update F‑Droid metadata, UI fixes and delete-originals feature with i18n 2026-04-30 20:14:19 +02:00

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.