Solutions

Android Squared CardView

Recently, I had to add a perfect squared CardView and I wanted to achieve this without hardcoding its width and height. I happily discovered the power of ConstraintLayout. And so this is how I managed to create a perfect square which should work on every dimension. Heres some sample code that I used to create […]

, , ,
The best of both worlds: The type safety of a wrapper class with the zero-overhead performance of a primitive.
Snippets

Type-Safe Zero-Cost Wrappers with Kotlin Value Classes

The Problem: Primitive Obsession You’ve probably seen this pattern in production code: database IDs represented as Long, user emails as String, currency amounts as Double. On the surface, it’s simple and pragmatic. But it introduces a subtle bug vector—primitive obsession. Imagine you have a function that accepts a user ID and a post ID, both

, , , ,
Tutorials

Android Keyboard Animation: WindowInsetsAnimation API for Smooth IME Transitions

Why Android Keyboard Animation Matters When your app shows a text input and the soft keyboard slides up, that moment sets the tone for user experience. A jarring jump or a laggy animation feels cheap. A smooth, synchronized transition where your content slides up in perfect sync with the IME (Input Method Editor) feels polished

, , , , , ,
Tutorials

Android Choreographer API: Frame Timing, VSYNC, and Smooth 60fps Rendering

What Is the Choreographer API? The Choreographer API is Android’s internal frame timing system — the heartbeat of smooth animation. Every frame your app draws, the Choreographer orchestrates the timing. It synchronizes with the device’s VSYNC signal (the vertical refresh of your screen), and it exposes a callback mechanism so you can hook into that

, , , , , , , ,
Refactoring with AI
Articles

LLM Prompts for Code Refactoring: A Practical Guide

LLM Prompts for Code Refactoring: Structuring Your Requests When you’re facing a large refactoring task in your Android codebase, asking an LLM the right way can save you hours. Unlike simple coding questions, refactoring requires your AI assistant to understand the architectural context, the business logic you’re preserving, and the specific constraints of your project.

, , , ,
AI assistant concept with code on screen
Articles

Generate Architecture Docs from Code with LLMs

Generate Architecture Documentation Automatically from Your Codebase You know the problem: your app’s architecture documentation is either non-existent, wildly out of date, or buried in scattered wiki pages that nobody reads. By the time you onboard a new developer, they’re confused about module boundaries, data flow, and how components talk to each other. Modern LLMs

, , , ,
Autumn sunny sunset
Tutorials

Building a Day/Night Sky Gradient System for Android Live Wallpapers

Creating Realistic Sky Gradients That Change With the Sun When you look at a great live wallpaper, what makes it feel alive isn’t just animation — it’s the sky. A static blue-to-orange gradient at the top of your screen feels dead after five minutes. But a sky that actually shifts through dawn blues, golden hours,

, , , , ,
Tutorials

One HTTP Client for Android and iOS: Ktor 3 in a KMP Shared Module

The Networking Problem in KMP Projects Before Kotlin Multiplatform, Android had Retrofit and OkHttp while iOS had URLSession or Alamofire — two completely separate networking stacks, two sets of models to keep in sync, and twice the bugs to chase. KMP solves this at the shared-module level, and Ktor Client is the library built specifically

, , , , , ,
Circuit board representing platform layers
Tutorials

expect and actual: The Mechanism That Makes Kotlin Multiplatform Tick

The Core Problem KMP Has to Solve Kotlin Multiplatform lets you share business logic across Android, iOS, desktop, and web — but each platform still has its own APIs. Android has Log, iOS has NSLog, Android has SharedPreferences, iOS has NSUserDefaults. KMP’s answer to this is a two-keyword mechanism: expect and actual. It’s the single

, , , , ,
Code on a dark monitor screen
Tutorials

Kotlin Property Delegates You’re Probably Not Using: observable and vetoable

Why Property Delegates Often Go Unnoticed Most Kotlin developers know lazy — it’s everywhere. You see it in Android ViewModels, dependency injection setups, and library code. But the standard library ships two more property delegates that are surprisingly powerful and almost never discussed: Delegates.observable and Delegates.vetoable. If you’ve been wiring up manual setters or using

, , , , ,
Tutorials

Building a Weather-Reactive Rendering Engine for Android Live Wallpapers

Making Your Wallpaper Respond to Real-World Weather A beautiful sky gradient is a good start, but what makes Seasons Live Wallpaper feel special is that it reacts to the actual weather outside your window. Rain particles drift down when it’s raining. Snow accumulates during winter storms. Fog creeps in on humid mornings. Lightning flashes light

, , , , ,
Laptop with Kotlin code open
Tutorials

Lazy Computation in Kotlin: The sequence Builder and How It Can Save Your Memory

The Hidden Cost of Eager Collections Kotlin’s collection functions — map, filter, flatMap — are a joy to use. But they share one characteristic that can quietly hurt your app: they’re eager. Each call processes the entire source and allocates a brand new intermediate list. Chain three or four of them on a list of

, , , , ,
Articles

Rubber Duck Debugging with AI: Prompt Patterns for Effective Debugging

Rubber Duck Debugging with AI: The Modern Approach “Rubber duck debugging” is an old technique: you explain your bug to an inanimate object (a rubber duck), and in the process of explaining, you discover the problem yourself. Today’s AI assistants make this technique more powerful. Instead of talking to a duck, you can ask an

, , , ,
Code on a dark monitor
Tutorials

Claude Code Skills for Android: Automate the Boilerplate You Write Every Day

What Skills Are in Claude Code Once you’ve used Claude Code for a while you’ll notice you repeat the same prompts. “Create a new feature screen with a ViewModel and UiState.” “Add a Room entity and DAO for this model.” “Write a Hilt module that provides this repository.” These are perfect candidates for skills —

, , , , , ,
Seasons Live Wallpaper - for your Android device
Articles

Seasons Live Wallpaper — A Living, Breathing Home Screen for Android

What If Your Wallpaper Knew the Weather? Most live wallpapers loop the same animation forever. They look nice for a day, then you forget they’re even there. Seasons Live Wallpaper is different — it’s a wallpaper that actually pays attention to the world around you. Built by an indie developer from Romania, Seasons brings four

, , , , ,
Scroll to Top