Skip to content

Search

Find anything.

Search across posts, apps, projects, case studies, tools, and key site pages.

Showing 24 results

PostAndroidKotlinAI

Leveraging MCP Servers to Supercharge My Android Development Routine

I explain how I integrate a local MCP server into my Android workflow for instant code suggestions, automated test generation, and seamless CI/CD triggers, showing concrete Kotlin examples and performance gains.

PostRustAISQLite

Building A Local-First AI Memory Agent In Rust

How RustMarrow stores personal work context locally with SQLite, provider pullers, Obsidian mirroring, Claude queries, and JSON backup or restore.

PostAndroidKotlinTesting

My Android Release Checklist: Zero Bad Releases in 2 Years

A detailed, battle-tested checklist for solo Android developers to ensure stable, secure, and high-performance releases. Covers automated testing, CI/CD, performance monitoring, and final sanity checks.

PostAndroidKotlinArchitecture

Mastering Room Database in Production: 7 Battle-Tested Practices for Android Apps

This post shares 7 critical Room Database practices I've refined over 13 years of QA and building 22+ apps at SudarshanTechLabs. Focused on avoiding crashes, data loss, and performance pitfalls in production.

PostAndroidFire OSDigital Signage

Fire OS Is Not Android: The Behavioral Differences That Break Your App

Amazon's Fire OS shares Android's codebase but diverges in ways that will surprise you. These are the specific behavioral differences — background restrictions, JavaScript timers, WebView versions, permission models — that break apps built for Android and deployed on Fire OS devices.

PostAndroidMonetizationKotlin

Android In-App Purchases With Play Billing: A Practical Guide

Monetizing with in-app purchases requires more than integrating the Play Billing Library. Here's how to handle purchase flows, verify purchases securely, restore purchases, and avoid the common mistakes that cause rejected apps and failed payments.

PostAndroidKotlinSecurity

Securely Storing Secrets in Android Keystore

Learn how to use Android Keystore to protect API keys, tokens, and passwords in your Kotlin apps, with step‑by‑step code, best‑practice patterns, and common pitfalls to avoid.

PostPaging 3AndroidJetpack Compose

Paging 3 in Android: Efficient List Loading at Scale

Loading a thousand-item list all at once is how apps run out of memory and feel sluggish. Paging 3 loads data in chunks as the user scrolls. Here's how it fits together with Compose, Room, and a network source.

PostMaterial YouThemingJetpack Compose

Android App Theming With Material You and Dynamic Color

Material You lets your app adopt colors from the user's wallpaper while still keeping a brand identity. Here's how dynamic color works in Compose, how to support it without losing your brand, and the dark-theme details that matter.

PostJetpack GlanceWidgetsAndroid

Building an Android Widget With Jetpack Glance

Jetpack Glance lets you build home-screen widgets with a Compose-like API instead of clunky RemoteViews. Here's how it works, the constraints that make widgets different from app UI, and how to keep them updated efficiently.

PostAccessibilityAndroidJetpack Compose

Android Accessibility: Making Apps Work for Everyone

Accessibility isn't a feature you bolt on at the end — it's a set of small habits during development. Here's how I make Compose apps work with TalkBack, large fonts, and switch access without much extra effort.

PostKtorNetworkingAndroid

Ktor Client in Android: REST API Calls the Modern Way

Ktor is a clean, coroutine-native HTTP client that shines especially in Kotlin Multiplatform projects. Here's how I set it up for Android — serialization, auth, retries, and error handling — and when I'd still pick Retrofit.

PostJetpack ComposeCustom LayoutAndroid

Jetpack Compose Custom Layouts and Modifiers Deep Dive

When Row, Column, and Box can't express your design, Compose's Layout composable and custom modifiers let you measure and place children yourself. Here's how the measure-and-place model works and when to reach for it.

PostFirebaseBeta TestingAndroid

Firebase App Distribution: Beta Testing Without the Play Store

Getting a build into testers' hands shouldn't require the Play Store review queue. Here's how I use Firebase App Distribution for fast beta cycles, how it compares to Play's internal testing, and when to use each.

PostKotlin MultiplatformKMPAndroid

Kotlin Multiplatform Mobile: Sharing Code Between Android and iOS

KMP lets you share business logic between Android and iOS while keeping native UI on each. Here's what's actually worth sharing, what to leave native, and the realistic trade-offs from shipping it.

PostSecurityRoot DetectionAndroid

Detecting Root and Tamper in Android Apps

Root and tamper detection raises the cost of attacking your app, but it's a deterrent, not a wall. Here's a realistic look at what to check, how to respond proportionally, and why Play Integrity beats DIY checks.

PostSecurityAPI KeysAndroid

Handling API Keys Safely in Android Apps

Any API key you ship in an APK can be extracted — full stop. Here's how I actually handle keys in Android: which ones can live in the app, which must go behind a backend, and how to keep them out of git either way.

PostSecurityR8ProGuard

ProGuard and R8 for Security: Obfuscating Sensitive Code

R8's obfuscation won't stop a determined reverse engineer, but it removes the easy wins and raises the cost of attacking your app. Here's what it actually protects, its limits, and how to configure it without breaking your build.

PostSecurityCertificate PinningAndroid

Certificate Pinning in Android: When and How

Certificate pinning hardens your app against man-in-the-middle attacks, but done wrong it can brick your app on a cert rotation. Here's when it's worth it, how to implement it safely, and the backup-pin discipline that prevents outages.

PostSecurityDataStoreAndroid

Securing Android SharedPreferences and DataStore

SharedPreferences and DataStore are where small but sensitive values quietly accumulate. Here's how I keep that local storage secure — what to encrypt, what to keep in the Keystore, and what not to store at all.

PostSecurityAndroidVulnerabilities

Android App Security: Preventing Common Vulnerabilities

The Android vulnerabilities I see most often in real apps aren't exotic — they're exported components, insecure storage, and sloppy intents. Here's how to prevent the common ones before they ship.

PostJetpack ComposeGoogle MapsAndroid

Google Maps in Jetpack Compose: The Complete Guide

Adding Google Maps to a Compose app is straightforward once you know the Maps Compose library — markers, camera control, custom styling, and the performance and lifecycle gotchas that bite people first.

PostFirebaseAndroidBackend

How I Use Firebase in Production Without the Bloat

Firebase can run your whole backend or quietly balloon your app and your bill. Here's the lean subset I actually use across production Android apps, and the services I deliberately leave out.

PostSolo DeveloperProductIndie

Why I Build Focused Apps Instead of Super Apps

The pull toward cramming every feature into one app is strong, especially solo. Here's why I deliberately build small, focused apps instead — what it costs, what it buys, and how it shapes a sustainable portfolio.