Hadrian Burkhardt d9378fa78e init gradle
2026-02-09 02:19:10 +00:00
2026-02-09 01:31:43 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00
2026-02-09 02:19:10 +00:00

Clean Scanner (MVP)

Offline-first, ad-free QR/barcode scanner built with Kotlin + Compose + CameraX + ML Kit.

Architektur

  • ui/: Compose-Screens + ViewModels (MVVM presentation layer)
  • data/: Scanner-Analyzer, Room entities/DAO, Repository
  • domain/: app models (ScanResult, ScanRecord, UrlRiskResult)
  • settings/: DataStore preferences (history toggle, warnings toggle)
  • util/: URL risk scorer, clipboard, intents

Datenschutz

  • Keine Werbung
  • Keine Tracker/Analytics/Crashlytics
  • Kein Backend/keine Webrequests
  • Keine INTERNET-Permission im Manifest

MVP Features

  • Startscreen mit Scan-Button und lokalem Historie-Toggle (Default: OFF)
  • Scanner mit CameraX live preview, Taschenlampe, debounce/no double scan
  • Ergebnis-Bottom-Sheet mit Copy/Share/Open/Scan again
  • Lokale URL-Risikoheuristik mit Warn-Dialog ab Score >= 3
  • Historie-Liste inkl. Suche, Swipe-delete, Alles-löschen
  • Einstellungen: Historie an/aus, Warnungen an/aus, About

Run

  1. In Android Studio: Open this folder as project.
  2. Let Gradle sync dependencies.
  3. Run app on emulator/device (API 24+).

Tests

  • URL Risk Scorer Tests: app/src/test/java/com/clean/scanner/util/UrlRiskScorerTest.kt (11 cases)

Hinweis

In dieser Umgebung war kein gradle/gradlew verfügbar, daher konnte ich Builds/Tests hier nicht lokal ausführen.

S
Description
No description provided
Readme 246 KiB
Languages
Kotlin 100%