What's New

Latest Articles and Videos

New!

TypeAlias Show #4:
Kotlin 2.1

Let's check out pattern guards, direct Swift export, and more!

TypeAlias Show #4:<br />Kotlin 2.1

Immutable and Persistent Lists (Livestream Clip)

Let's check out the kotlinx.collections.immutable library, and why you might want to use it.

Immutable and Persistent Lists (Livestream Clip)

Anonymous Functions Aren't Lambdas

In Kotlin, anonymous functions have a distinct syntax from lambdas. Let's check it out!

Anonymous Functions Aren't Lambdas

Fun with Function Types

Let's see how we can call regular functions and property setters as if they were extension functions.

Fun with Function Types

Subtyping Composables (Livestream Clip)

One idea about how you could create a slot API with Compose.

Subtyping Composables (Livestream Clip)

TypeAlias Show #3:
Immutable Lists

Compose Multiplatform 1.7, Immutable Collections, subtyping Composables

TypeAlias Show #3:<br/>Immutable Lists

Builder Pattern
in Kotlin

Do we need the Builder Pattern in Kotlin? Let's find out.

Builder Pattern<br />in Kotlin

Factory Patterns in Kotlin

Let's look at the Factory Method and Abstract Factory patterns to see how we can use them in Kotlin.

Factory Patterns in Kotlin

TypeAlias Show #2:
Multi-Cursor Magic

Kotlin Roadmap updates, StackOverflow survey results, and accelerated development in JetBrains' IDEs.

TypeAlias Show #2:<br/>Multi-Cursor Magic

State Pattern in Kotlin

The design pattern series continues. Let's see how we can modernize the State Pattern.

State Pattern in Kotlin

Decorator Pattern in Kotlin

In this video, we'll modernize the Decorator Pattern using some of Kotlin's language features.

Decorator Pattern in Kotlin

Strategy Pattern in Kotlin

Let's see how Kotlin can modernize the Strategy Pattern from the original Gang of Four book.

Strategy Pattern in Kotlin

Coroutines: Concurrency in Kotlin

A live presentation covering the main concepts from Chapter 20, in about 30 minutes.

Coroutines: Concurrency in Kotlin

TypeAlias Show #1: kotlinx.rpc

It's the very first episode of the TypeAlias Show Livestream!

TypeAlias Show #1: kotlinx.rpc

Composing Like You're Inheriting

Composition vs. Inheritance... or can we get the best of both worlds?

Composing Like You're Inheriting

7 Overlooked Stdlib Features

Let's look at seven features in the standard library that you might have missed.

7 Overlooked Stdlib Features

Değişenler, İbareler, ve Nev’ler

Demek bir Kotlin programcısı olmak istiyorsun? Ol vakit, doğru yerdesiniz! Senin maceran işte tam burada, değişenleri, ibareleri, ve nev’leri izah ettiğimiz Bab 1’de başlıyor.

Değişenler, İbareler, ve Nev’ler

Reified Type Parameters

What is type erasure, and how does the reified keyword help?

Reified Type Parameters

The Essence of Coroutines

What makes a coroutine a coroutine?

The Essence of Coroutines

Looking Forward to Kotlin 2.0

Kotlin 2.0 is just around the corner!

Looking Forward to Kotlin 2.0

Three Simple Rules for Subtypes

Inheritance and variance are based on three simple rules.

Three Simple Rules for Subtypes

Inline Functions

Let's look at inline functions, and the crossinline and noinline modifiers.

Inline Functions

Every Kind of Class

Inner classes, value classes, sealed classes, and many others... let's look at them all!

Every Kind of Class

Type Projections

Type projections give us generic subtypes when declaration-site variance isn't an option!

Type Projections

Variance... without Generics!

Unlock the mental model of variance. No generics required!

Variance... without Generics!

Introduction to HexFormat

Let's check out HexFormat and its related functions!

Introduction to HexFormat

Intersection Types in Kotlin

Intersection types are not denotable, but we can still use them!

Intersection Types in Kotlin

try-catch vs runCatching

Let's talk about try-catch, runCatching(), and those poll results!

try-catch vs runCatching

Leanpub Frontmatter Podcast: Dave Leeds

Len Epp and I talk about Kotlin, learning how to code, publishing on Leanpub, and lots more!

Leanpub Frontmatter Podcast: Dave Leeds

A Tour Through Konsist with Igor Wojda

I team up with special guest Igor Wojda to demonstrate how the Konsist static code analysis tool can be used to ensure consistency in a Kotlin codebase!

A Tour Through Konsist with Igor Wojda

How to Use Kotlin's Timing API

Kotlin's Timing API is stable as of Kotlin 1.9, and it offers some great ways to both measure and specify time. In this video, we'll take a tour through the main features of this API so that you can start using durations and time marks like a pro!

How to Use Kotlin's Timing API

Wall Clock vs. Monotonic Clock

As a prelude to exploring the newly-stable Timing API in Kotlin 1.9, let's check out the difference between a wall clock and a monotonic clock!

Wall Clock vs. Monotonic Clock

Introduction to Collection Builders

Use Collection Builders to dynamically build out a collection's contents, without leaving it open to modifications.

Introduction to Collection Builders

Smart Casts with Kotlin Contracts

Use the experimental Contracts feature to create a Smart Cast from your own function.

Smart Casts with Kotlin Contracts

Easy SharedPreferences with Delegated Properties

Learn how Kotlin's delegated properties work by turning Android's SharedPreferences into a delegate.

Easy SharedPreferences with Delegated Properties

5 Fun Ways to Use Extension Functions

Let's put extension functions together with operator function conventions to do some crazy things!

5 Fun Ways to Use Extension Functions

5-Year Celebration: Peek Behind the Scenes!

Get a peek behind the scenes, including my art setup, my writing tooling, and even my cute dog!

5-Year Celebration: Peek Behind the Scenes!