Articles

2025
Programming *

The Liskov Substitution Principle (LSP) in Kotlin — Deep Dive

In Short: Subclasses Should Behave Like Their Parents. Lets deep dive on the 3rd of the SOLID Principles

2025
Android *

Faking Network Responses with MockK (Featuring Ktor)

A practical guide to mocking network responses in Kotlin. Make your tests faster and more reliable using MockK, with real-world examples

2025
Android *

Coroutine Suspension Mechanics: The Finite State Machine within

Let’s gaze inside a Kotlin Coroutine structure and see the Finite State Machine (FSM) inside it. Suspension mechanics revealed.

2025
Android *

Composition Locals in Jetpack Compose: A Beginner-to-Advanced Guide

Did you ever need to pass irrelevant parameters through multiple composable functions just to forward a parameter down the composable tree somewhere? CompositionLocals provide the solution to that problem.

2025
Android *

Mastering Kotlin Coroutine Channels in Android: From Basics to Advanced Patterns

Learn coroutine communication patterns, from basic producer-consumer to advanced fan-in/fan-out scenarios, to ui events in Android development.

2025
Android *

The One Script to Rule Them All: Android Project Cleanup Made Easy

A comprehensive script that automates project cleanup, handling both single and multi-module projects with support for macOS, Linux, and Windows.

2024
Android *

The Evolution of Android Architecture Patterns: From UI-Centric to MVC to MVP to MVVM to MVI

From God Activities to MVI: A journey through Android's architectural evolution, showing how each pattern solved its predecessor's limitations.

2024
Android

Surviving Process Death Without Permanent Storage: Ephemeral Persistence for Both StateHolders and ViewModels

If the system kills your app in the background and later re-creates it, you often need to restore some temporary data (ephemeral state) without storing it permanently on disk. In this article, we’ll show two approaches:

2024
Android *

Mastering Global State Management in Android with Jetpack Compose

As Android developers, we often face the challenge of managing state across our applications. Whether it’s user authentication, theme preferences, or app-wide settings, having a reliable way to handle global state is crucial.

2024
Android

How to Locally Test Your Android or KMM Library Using Maven Local

You build a library and want to test it locally with an actual project before publishing online? Check out my new guide to learn how to publish your Android/Kotlin/Java library to a local Maven repository on your own machine for instant testing with sample apps.

2024
Android *

Handling One-Time Events in Jetpack Compose: Channels vs. SharedFlow

Struggling to handle one-time events in Jetpack Compose? Discover why Channels beat SharedFlow for ephemeral triggers, and how to ensure your UI reacts just once, every time. 

2024
Android *

Bridging the Gap Between Jetpack Compose State and StateFlow for Reactive UI

Check out my short guide on how to seamlessly bring StateFlow’s thread-safe updates into Compose’s classic State handling. Learn how a simple extension function can give you the best of both worlds—powerful concurrency features and the elegance of delegated state in your Compose UI!

2024
Android

SecureAndroidPersist — Android Persistence and Encryption Library

The Android Secure Persist Library is a powerful Kotlin library designed to provide secure and efficient storage of preferences and raw data encryption for Android applications, all with zero configuration.

2024
Android

Jetpack Compose Navigation: Embracing Type Safety and Simplifying Parcelable Handling with NavHelper library

NavHelper library to streamline type-safe Parcelable data passing in Jetpack Compose's new Navigation, showcasing the power and flexibility of the type safety introduced at Google I/O '24. 

2021
Android

Jetpack Compose — Building a RecyclerView with StickyHeader

Create full-featured RecyclerView using LazyColumn with minimal code and effort thanks to Jetpack Compose!

2021
Android

The Android Context, Manifest, and the Android System

What is Android Context? What is the Android Manifest? How do they relate to the Android System?

2020
Deep Learning

Deep RL: DQN — Regression or Classification?

Providing basic understanding behind a regression approach to a classification problem in DQNs action values.

2019
Reinforcement Learning

Reinforcement Learning — Basic Understanding

Understanding the basic concepts behind Reinforcement Learning using value-based methods.

2019
Deep Learning

Introduction to Deep Learning Theory (video-tutorial)

An easy to absorb introduction to Machine Learning and Neural Networks with YouTube video content

2019
Android

Android webview scroll and facebook comments problem when Admob loads advert

There is bizarre behavior in Android when you combine a “WebView” together with “AdMob”. Read my solution...

2019
Web

What is AMP — Accelerated Mobile Pages

So what is AMP? How will it change our website? Is it any useful? What is the architecture behind it? How can I build an AMP website?

2019
Java

What is a static variable in Java

All Java newbies at some point looked for some clear and direct explanation over Static variables. Here it is!

2019
Java - Android

Java Interfaces — Listeners: Example of an Activity using AsyncTask in a separate file

This article is describing a common pattern widely used in Android Development, like creating a clickListener for items in a recycler view.

* Certain articles are adopted by certain publications:

  • Droidcon’s publications ProAndroidDev for Android Specific articles. 
  • ITNEXT for software development posts not directly related to android