RSSAmplifier

Blog

FunkyMuse

Blog containing Kotlin and Android goodies.

funkymuse.github.ioRSS feed ↗5 posts

Latest posts

Hilt in Android Auto: From Manual Factories to a Cleaner Screen Provider

If you’ve ever followed the Android Auto Codelabs, you’ve seen the “sample” way of building a Car App. It works, it’s functional, but as soon as you try to scale it beyond a simple demo, you hit a wall: Dependency Management. Keep in mind this is only one way to wire things, I’m pretty sure many others exist, I’m exploring things on Android Auto and Android Wear lately and how to connect and w...

Metro DI for KMP mobile: From God Objects and manually checked Singletons to Compile-Time Injection

The Starting Point: God Object, Custom Singletons, and Lazy Maps In the previous article i talked about how the Ktor backend replaced a God Object BackendComponent with Metro’s compile-time graph. The mobile side of Rudio had a remarkably similar story, except it was more interesting because there were actually two God Objects working together and someone (looks in the code, realizes it was me...

Metro DI for Ktor Backend: From a God Object through manual DI to Constructor Injection

The Starting Point: a God Object When Rudio was a created a few months ago it used the simplest possible DI: one big object BackendComponent with everything wired manually via by lazy and lateinit var. No framework, no annotations, no ceremony, then i started adding things and manual DI became a tedious and tiring task because everywhere i used default parameters to achieve default constructor...

SQLCipher + Firebase in KMP: When SPM import Symbol Conflicts Break Your Encryption; Properly encrypt your Room database in KMP

The Starting Point I know, long title… my creativity turned into lengthy title I recently needed encrypted database storage in my Kotlin Multiplatform app using AndroidX Room. After some research, i found Paris Tsiogas’s excellent guide on Encrypted Room Database in KMP which walks through the full setup, Gradle dependencies, platform-specific implementations, and a custom SQLCipherNativeDriv...

Android ViewModel Data Loading: Best Practices and Flow-Based Architecture

Architecture discussions in Android development often spark passionate debates—sometimes garnering both praise and criticism. Writing about these topics isn’t easy, but that’s what makes it worthwhile. This article presents my opinionated perspective on data loading patterns, refined through experience and recovery from recent surgeries (one recovery is still in progress). Consider this a sna...