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 […]

, , ,
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

, , , , ,
Close-up of code on a screen
Tutorials

Writing Android Tests and Debugging With Claude Code: A Practical Workflow

The Part of Android Development “Nobody Enjoys” :P Writing tests and debugging are the two parts of Android development where most developers lose the most time. Tests feel like writing code twice, and debugging often means staring at a stack trace while trying to hold an entire call graph in your head. Claude Code doesn’t

, , , , , , ,
Tutorials

Stop Using mutableListOf + toList(): Meet Kotlin’s buildList, buildMap, and buildSet

A Familiar But Slightly Awkward Pattern If you’ve written Kotlin for a while, you’ve almost certainly written code like this: fun getActiveUsers(users: List): List { val result = mutableListOf() for (user in users) { if (user.isActive) result.add(user) if (user.isPremium) result.add(user.copy(label = “Premium”)) } return result.toList() // convert back to read-only } The pattern works, but

, , , , ,
Tutorials

Functional Error Handling in Kotlin: runCatching and the Result Type

The Problem With Try-Catch Everywhere Exception handling in Kotlin (and Java before it) has always had a composability problem. Once you introduce a try-catch block, you break the expression-oriented flow of your code. You can’t easily chain operations, return from them in one line, or pass the “success or failure” result to another function without

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

Claude Code for Android Development: Setup and CLAUDE.md That Actually Helps

Why Claude Code Is Worth Setting Up Properly for Android If you’ve tried using Claude Code for Android development without any configuration, you’ve probably found it helpful but inconsistent. It might suggest Retrofit when your project uses Ktor, generate Java when you want Kotlin, or miss your architectural conventions entirely. The difference between a generic

, , , , ,
Tutorials

Stop Using System.currentTimeMillis() for Benchmarking: Kotlin’s measureTimedValue and Duration API

The Old Way: Manual Time Measurement If you’ve ever benchmarked a function in Kotlin or Android, you’ve probably written something like this: val start = System.currentTimeMillis() val result = doExpensiveWork() val elapsed = System.currentTimeMillis() – start Log.d(“Perf”, “doExpensiveWork took ${elapsed}ms, result=$result”) It works, but it’s noisy. You need three lines just to time one call,

, , , , ,
Tutorials

Claude Code for Android Development: Setup, Best Practices & Gotchas

AI-assisted development has moved well beyond autocomplete. Claude Code — Anthropic’s agentic coding tool — can read your project, reason about your architecture, write Kotlin, generate tests, and even help you debug Gradle. But like any powerful tool, it rewards those who know how to use it well. This guide walks you through everything you

, , , , , , ,
Articles

Using Claude to Write Better Play Store Descriptions (With Prompt Templates)

Writing a Play Store listing that converts is harder than it looks. The character limits are tight, keywords matter, and you have about three seconds to grab attention. Here’s how I use Claude to make it easier — including the exact prompts I use for Seasons Live Wallpaper. Keyword Research Prompt “I have an Android

, , , ,
Tutorials

Animating the Seasons: Building a Particle System with Android Canvas

One of the most satisfying things to code is a particle system. Snowflakes, falling leaves, fireflies — simple physics, beautiful results. Here’s how Seasons Live Wallpaper handles its snow, and how you can build something similar. The Particle Data Class data class Snowflake( var x: Float, var y: Float, val radius: Float, // visual size

, , , , ,
Articles

Getting Application Context in Kotlin with Hilt – The Modern Way

Learn how to get the Application Context anywhere in your Android Kotlin project using Hilt dependency injection. The modern, leak-safe replacement for the old Java singleton pattern.

Scroll to Top