PickMe Apr 11, 2025

Tenant-Specific Theming with Material 3 in Jetpack Compose

Article Summary

Chamod Lakmal from PickMe Engineering just cracked white-label theming for Android apps. If you're building B2B platforms that need per-tenant branding, this implementation guide is gold.

Multi-tenant apps face a common challenge: how to dynamically brand the UI for different clients without hardcoding colors or maintaining separate codebases. This article walks through implementing tenant-specific theming using Material 3 and Jetpack Compose, with full support for light and dark modes.

Key Takeaways

Critical Insight

Material 3's theming system enables elegant, scalable white-label branding without sacrificing code maintainability or user experience.

The article includes production-ready code snippets and a testing strategy that most theming tutorials completely skip.

About This Article

Problem

B2B platforms that serve multiple tenants need to support white-label branding across light and dark modes. The challenge is doing this without hardcoding colors or maintaining separate codebases for each client.

Solution

Chamod Lakmal's team built a TenantColors data class that converts to Material 3's ColorScheme at runtime. Semantic colors like primary, secondary, and error get fetched from backend APIs or Firebase Remote Config, then cached in DataStore so the app starts instantly.

Impact

A default fallback theme displays right away, so there are no visual gaps while the theme loads. The app can switch themes at runtime based on tenant configuration. The code stays clear and easy to maintain across the whole application.