Fast, private, and 100% offline QR code scanner & generator for Android. Built natively using Jetpack Compose.
QuickQR is a premium, lightweight, and professional-grade QR code scanner, barcode reader, and custom QR generator for Android. Built entirely from scratch with Kotlin and Jetpack Compose, it prioritizes speed, high-quality user experience, and absolute user privacy by working 100% offline with zero advertisements.
- ⚡ Lightning-Fast Scanning — Powered by Google's ML Kit Barcode Scanning API for near-instant QR and barcode detection.
- 🎨 Custom QR Generator — Generate high-quality QR codes in seconds for URLs, Wi-Fi, email, phone numbers, SMS, and plain text.
- 🔒 Privacy First (100% Offline) — The app does not request
INTERNETpermission. All processing and storage happen locally on your device. - 📁 Searchable History & Exports — Keep track of your scans with local database storage. Export your history easily to CSV or JSON formats.
- ⚡ Intelligent Context Actions — Open URLs instantly, connect to Wi-Fi networks, send emails/SMS, or call numbers directly from scan results.
- 🎨 Modern Material 3 Design — Full support for system Light/Dark mode, featuring beautiful transitions, responsive layouts, and standard premium buttons.
- 🔋 Zero Bloat & Battery Efficient — No trackers, no background processes, and zero ads to preserve your device performance.
- Language: Kotlin 2.x
- UI Framework: Jetpack Compose (Material 3)
- Scanning API: Google ML Kit Barcode Scanning & CameraX
- Local Storage: Jetpack Room (SQLite) for history, Preferences DataStore for settings
- QR Code Generation: ZXing (Zebra Crossing)
- Platform: Native Android (minSdk 26, targetSdk 36)
- Build System: Kotlin DSL (
build.gradle.kts) with R8/ProGuard compiler optimizations
- Android Studio (Koala/Ladybug or newer)
- Java Development Kit (JDK) 17 or 21
- Android SDK 36 (Android 16 API level support)
-
Clone the repository:
git clone https://github.com/nicemustafa/quickqr.git cd quickqr -
Open the project in Android Studio.
-
Build the Debug APK:
./gradlew assembleDebug
-
Build the Optimized Release APK / App Bundle:
./gradlew assembleRelease
Note: Ensure you configure your signing properties in
keystore.propertiesfor production releases.
quickqr/
├── app/
│ ├── proguard-rules.pro # Comprehensive 100+ line ProGuard ruleset
│ ├── build.gradle.kts # App-level build configurations & dependencies
│ └── src/main/
│ ├── AndroidManifest.xml # Target API 35/36 & hardened offline permissions
│ ├── java/net/mustafaer/quickqr/
│ │ ├── data/ # Room Database, DAOs, DataStore repository
│ │ ├── ui/
│ │ │ ├── screens/ # Scanner, Generator, History, Settings Screens
│ │ │ ├── components/ # Unified buttons, bottom sheets, layouts
│ │ │ └── theme/ # Material 3 colors, shapes, typography
│ │ └── MainActivity.kt
│ └── res/ # Localized strings, backup policies, locales configs
└── build.gradle.kts # Project-level build configurations
This project is licensed under the MIT License — see the LICENSE file for details.
Mustafa ER (Founder of MEDEV Studios)
- Website: MEDEV Studios
- Privacy Policy: QuickQR Privacy Policy
- Email: mustafaerpro@gmail.com
- GitHub: @nicemustafa
If you find QuickQR useful, feel free to support:
- ⭐ Star this repository
- ☕ Buy me a coffee
- 🎉 Patreon
