Articles


2025
Android

📌 Android Context — Part 2: The Android Internals Deep Dive

âťť Also on Droidcon Global

Discover how Android Context underpins process creation, lifecycle, and system interactions for robust, efficient apps

2025
Android

📌 Using the Android Context and Manifest to Unveil the Android System Mechanics (2025 Edition)

âťť Also on Droidcon Global

How the Context and the Manifest connect your App with the Android Operating System, allowing for Inter-Process Communication and Resource Management/span>

2025
Android

Compose-Native CameraX Is Now Stable: End-to-End Guide for Jetpack Compose

Announced at Google I/O 2025 and now stable. Build camera UIs with CameraXViewfinder and camera-compose: setup, coordinate transforms, tap-to-focus, pinch-to-zoom, photos and video, plus migration.
2025
Android

Stop Event-Drilling in Jetpack Compose with Composition Locals

Escape Prop-Drilling and Event-Drilling without Losing Your Architecture.

2025
Dev Ops

Coordinated Polyrepo Pattern: Managing Multiple Git Repositories with Submodules

Learn how to coordinate multiple independent Git repositories using submodules under a centralized binder repository.

2025
Android

Android’s New 16 KB Page Size: What It Is, Why It Matters, and What You Should Do

Android moves to a 16 KB page size. See why it matters for performance and how to prepare your app for the Nov. 1, 2025 deadline.

2025
Android

Side-Effects in Jetpack Compose Made Simple

Jetpack Compose side-effects guide: lifecycle timing, keys, coroutines, best practices, ViewModel-first patterns.

2025
Kotlin

Kotlin Flows Explained

A guide to understanding Kotlin Flows. Learn Hot vs. Cold Flows, StateFlow, coroutines, and how to write clean, modern, async code.

2025
Kotlin

The Holder Pattern in Kotlin for Android Developers

Master the Holder pattern in Android/Kotlin: flexible alternative to Kotlin object singletons, cleaner DI, shared StateFlow & token control.

2025
Kotlin Multiplatform

“Expect Actual” Mechanism in Kotlin Multiplatform Explained

âťť Also on Droidcon Global

In this article, I demystify the expect/actual mechanism, compare it to interfaces, and provide clear, practical examples to help you make the most of it. Whether you're new to KMP or refining your skills, this guide will give you a solid understanding of one of its core concepts.

2025
Kotlin

Decorator Pattern in Kotlin — Embracing Open/Closed Principle

Write cleaner, reusable Kotlin code by mastering the Decorator Pattern and embracing the Open/Closed Principle.

2025
Kotlin

Builder & Factory patterns in Kotlin

Builder Pattern and Factory Pattern in Kotlin, Android. Learn how Builder and Factory work for Kotlin, but also for Java and other OO Languages.

2025
Android

Imperative vs Declarative in Android — The Real Difference

The concise guide to "active" and "passive" UI mindset. The evolution of mobile UI for both iOS and Android (with focus on Android)

2025
Android & KMP

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

âťť Also on Droidcon Global

Boost Android/KMP library testing! Learn Maven Local & Composite Builds for fast local iteration & validation before publishing.

2025
Android & KMP

Process Death Handling via Automatic State Persistence (Android & KMP)

âťť Also on Droidcon Global

Reanimator: Automatic StateFlow saving for Android & KMP ViewModels. Simplifies process death & MVI transient state handling.

2025
Kotlin

runCatching vs. try-catch in Kotlin: A Comprehensive Error Handling Comparison

Discover how Kotlin's runCatching transforms error handling with cleaner code, chaining capabilities, and functional programming principles.

2025
Kotlin Multiplatform

Integrating Native Swift Code in a Kotlin Compose Multiplatform App

âťť Also on Droidcon Global

Learn how to seamlessly integrate native Swift code into your Kotlin Compose Multiplatform apps with a clear, step-by-step guide!

2025
Kotlin/Android

Kotlin inline reified to Solve Type Erasure, and a Practical Guide on noinline, crossinline, and More

âťť Also on Droidcon Global

Master how Kotlin inline reified deals with Type Erasure, and explore noinline and crossinline modifiers.

2025
Kotlin/Android

Kotlin Guards Explained: Boost Code Clarity with when Statements in Kotlin 2.1

âťť Also on Droidcon Global

Master Kotlin Guards in when statements for cleaner, expressive code. Kotlin 2.1.0 features, Kotlin Guard conditions, and fail-fast logic.

2025
Programming

Interfaces vs Abstract Classes in Java and Kotlin

Learn the key differences between Interfaces and Abstract Classes in Java and Kotlin with practical examples and clear explanations.

2025
Android

Android Clean Architecture: Implementing Use Cases, Managers, and Multi-Provider Systems

âťť Also on Droidcon Global

SOLID...ify and transform your Android codebase! Master Clean Architecture with practical Use Cases, smart Managers & bulletproof multi-provider systems.

2025
Android

Safeguarding Critical Operations: Block Accidental Navigation in Jetpack Compose

âťť Also on Droidcon Global

Learn how to block accidental navigation during critical tasks with a custom loading indicator in Jetpack Compose for robust Android apps.

2025
Programming

A Deep Dive on SOLID Principles published in ITNEXT.  The only SOLID read you will ever need:

2025
Android & iOS

Garbage Collection (GC) vs Automatic Reference Counting (ARC): Memory Management Showdown

Compare Android's Garbage Collection vs. iOS's ARC for optimal memory management in mobile app development. Discover key differences.

2025
Android

Faking Network Responses with MockK (Featuring Ktor)

âťť Also on Droidcon Global

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

âťť Also on Droidcon Global

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

âťť Also on Droidcon Global

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

âťť Also on Droidcon Global

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

âťť Also on Droidcon Global

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

âťť Also on Droidcon Global

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

âťť Also on Droidcon Global

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!

* Several articles are included in certain publications: