Projects
LUKSO Digital Wardrobe app icon

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.

AndroidKotlinWeb3ARUnity
Social feed - a full-screen fashion look (head-to-toe yellow) with likes and shareThe same look made shoppable - a tagged garment (Blush Jogger Trousers) with its priceA Universal Profile page with item and follower counts and a post reelThe profile's post reel - a grid of fashion looks with view and like countsA liked post viewed full-screen, with engagement and the creator's profileThe owner's wardrobe - a grid of owned items with prices and availabilityLiked items - a grid of saved marketplace garments with pricesMarketplace browse - collections, search, and an AR 'Try' button on a productA product page for Multicolour Chunky Sneakers with a Buy Now button and owners listThe product page scrolled to its owners and related itemsA profile's on-chain address shown as a shareable QR codeThe profile's followers list with follow and unfollow controls

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

Kotlin 1.7AGP 7.4Coroutines / FlowJetpack Navigation ComponentLifecycle / ViewModelViewBindingViewPager2Hilt / DaggerKtorOkHttpkotlinx.serializationFreeletics FlowRedux (MVI)GlideCameraXML KitZXingFacebook ShimmerFirebase (FCM, Crashlytics, Analytics, Dynamic Links)Unity-as-a-LibraryMediaPipe AR body trackingJUnitMockitoTruth

All rights belong to their respective owners.