A multi-brand, multi-language Android kiosk in Jetpack Compose with offline-first Room storage, Lock Task Mode, payment-terminal integration and 151 unit tests under JaCoCo.
Kotlin 2.2
Jetpack Compose + Material 3
Lock Task
Kiosk Mode + auto-recovery
Cardnet/Verifone
Payment terminal integration
151 tests
JaCoCo unit-test coverage
A multi-brand restaurant group needed a hardened Android kiosk app for self-order checkout, with payment-terminal integration and high reliability in store. We delivered a Jetpack Compose app on Kotlin 2.2 with Clean Architecture (MVVM + UDF), offline-first Room storage, Ktor Client API, Hilt DI, Lock Task Mode kiosk lockdown, Cardnet/Verifone payment integration and 151 unit tests across 12 suites with JaCoCo coverage.
Client
Multi-brand restaurant group
Industry
Foodtech & Delivery
Scope
Native Android kiosk app + payment-terminal integration
Stack focus
Kotlin 2.2, Jetpack Compose, Material 3, Hilt, Room, Ktor
An always-on, in-store kiosk app has zero tolerance for a frozen screen, a failed payment or a runaway update.
The app has to lock down the device, restart on boot and recover from crashes without staff intervention.
Cardnet/Verifone terminals must complete payments under pre-flight checks, with logging and duplicate guards.
Two brands and two languages share a single binary with theme and locale switching at runtime.
We engineered a production-grade Android kiosk with Clean Architecture, offline-first data and explicit operational guarantees.
Lock Task Mode, BootReceiver auto-start, session manager and crash recovery.
Cardnet/Verifone integration with pre-flight checks, transaction logging and duplicate guard.
Dynamic Material 3 themes per brand and instant Spanish/English locale switching.
Room database for menus, products and orders with Ktor Client sync to the API.
Firebase Crashlytics, Analytics, Performance and Remote Config plus input sanitization, log masking and R8 log stripping.
151 unit tests across 12 suites with JaCoCo coverage on domain, use cases, repositories and payment paths.
The kiosk runs in store with hardened kiosk mode, reliable payments and a test suite that protects every release.
Production
Kiosk app live in store
Lock Task
Hardened kiosk mode
Cardnet/Verifone
Payments in production
151 tests
JaCoCo coverage on critical paths