- Kotlin 99.8%
- JavaScript 0.2%
- Fix StackOverflowError crash in draw editor when touching the canvas (recursive local Dp.toPx extension resolved to itself infinitely) - Make "Delete original files" work on all Android versions: WRITE_EXTERNAL_STORAGE runtime permission (Android 9-), recoverable security consent (Android 10), MediaStore delete request (Android 11+), with explicit error message instead of silent failure - Text editor: multiple independent text overlays, tap to select and edit each one (text, color, size, scale, rotation, position) and delete it - Add Robolectric regression tests for the draw editor gestures - Update to version 2.0.2 code 24 Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> |
||
|---|---|---|
| .fdroid-work/metadata | ||
| .github | ||
| app | ||
| docs | ||
| fastlane/metadata/android/en-US | ||
| fdroid/metadata | ||
| gradle/wrapper | ||
| scripts | ||
| .gitattributes | ||
| .gitignore | ||
| 38171FDJG004PT | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| kompact.kt.txt | ||
| LICENSE | ||
| Privacy Policy.md | ||
| README.md | ||
| release.keystore | ||
| resources.txt | ||
| settings.gradle.kts | ||
| temp_screen.kt | ||

Kompact
Kompact is an open-source Android app written in Kotlin with Jetpack Compose that compresses images (JPEG, PNG, WebP, BMP, GIF, TIFF, HEIF, HEIC, AVIF, JXL, ICO) 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/datacontains the local repository and compression logic.app/src/main/java/com/kompact/uihosts the ViewModel and main composables.app/src/main/java/com/kompact/modelexposes shared domain models.app/src/main/java/com/kompact/utilkeeps 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.
F-Droid publication
The official source repository for F-Droid inclusion is https://git.naxod.com/luca/Kompact. A mirror at https://gitlab.com/naxodlab/kompact is maintained solely to facilitate F-Droid's CI pipeline. All official releases, tags, and source of truth remain in the primary repository. F-Droid's auto-update mechanism tracks tags from the official repo.
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.