Case study · Android

Retail POS

A point-of-sale app for retail stores, part of a cloud ERP suite. Cashiers ring up sales in seconds while the app quietly handles promos, taxes and licensing behind every tap.

Role
Mobile Developer
Platform
Android
Status
Live on Play Store
Get it on Google Play

What it handles

Checkout

Checkout

One screen to ring up a sale: items, quantities and savings, recalculated with every tap.

Promos & tax, handled reliably

Promos & tax, handled reliably

Promos apply automatically when a sale qualifies, and tax is calculated inclusive or exclusive with rounding, so the cashier never does the math.

Payment

Payment

Quick cash amounts, cash or non-cash, and loyalty points. Checkout in a few taps.

Product detail

Product detail

Per-item price, stacked discounts like "5+10", multiple units and notes.

Tap through a sale

An interactive prototype built from real app screens with demo data. Ring up a sale from product list to receipt.

New sale

Tap the highlighted areas, like a Figma prototype.

Under the hood

UI
XML views with ViewBinding, Navigation Component with Safe Args, and Paging. Every screen has its own state class; ViewModels expose it as StateFlow plus one-shot events.
Domain
Clean Architecture with ~290 use cases. Calculation engines in plain Kotlin: sale totals with inclusive/exclusive tax and rounding, a promo engine built on the Strategy pattern (discount, bonus, buy X get Y, minimum spend), and loyalty points.
Data
Room for local data, Retrofit + OkHttp across two backend API generations, DataStore for settings, WorkManager for background jobs, and a WebSocket for real-time cashier approval.
Device
CameraX + ML Kit barcode scanning, Bluetooth and WiFi receipt printers, session and license validation.
Quality
Hilt for dependency injection, Firebase Crashlytics, Analytics and Performance Monitoring, Fastlane releases to Play Store.
‹ All work