LUKSO Digital Wardrobe
Lead / primary Android developer · Nov 2020 – Jan 2023
A social-commerce Android app for the LUKSO blockchain where users try on blockchain-owned digital fashion in real time via Unity + MediaPipe, then buy, sell, and share it across a Universal-Profile–based marketplace and feed.












LUKSO Digital Wardrobe is a native Android application at the intersection of AR, social networking, and blockchain-based commerce. Every fashion item is tied to an on-chain address, and each user is a LUKSO Universal Profile.
The main feature is a real-time AR try-on: a prebuilt Unity engine with MediaPipe body/pose tracking, integrated as a library (Unity-as-a-Library), lets users pick an owned garment or try one before buying, see it rendered on themselves through the camera, snap a photo, and push it straight into post creation - which then flows into a social feed and NFT marketplace.
Architecture & engineering highlights
- 15-module Gradle project with strict clean-architecture layering - a pure-Kotlin domain layer with zero Android/network dependencies, an API data layer, a shared common layer, and independently owned feature modules (marketplace, feed, profile, item, checkout, camera, post, qrscanner).
- Two presentation patterns by design: MVVM (Jetpack ViewModel + LiveData/Flow) alongside a unidirectional MVI/Redux store built on Freeletics FlowRedux with coroutine channels and per-feature State/Action/SideEffect files.
- Unity + MediaPipe AR integration: wiring a prebuilt IL2CPP Unity module (arm64-v8a, custom NDK toolchain, native .so body-tracking libraries, tracked as Git LFS + submodule) into a Jetpack/Hilt Kotlin app, and pre-warming Unity in MainActivity to cut the camera launch by 400% (under a second).
- Networking via a Ktor client with kotlinx.serialization and an OkHttp auth-interceptor Bearer-token flow, plus a Ktor MockEngine offline demo mode for reliable presentations and screenshots without a live backend.
- Blockchain UX rendered natively: a hand-written canvas-drawn Blockies identicon view, a custom UniversalProfileView, token balances with USD conversion, a send-token flow, and an on-chain-style activity feed (bought / sent / received / liked).
- Dual-rail checkout (credit card + cryptocurrency), Firebase (Cloud Messaging, Crashlytics, Analytics, Dynamic Links deeplinks), CameraX + ML Kit + ZXing QR scanning to resolve profile/asset addresses, and Glide-based media.
- CI/CD using GitHub Actions - NDK/CMake setup, encrypted Firebase credentials, a ./gradlew build check, and Firebase App Distribution deploys.
Tech stack
Android
All rights belong to their respective owners.
