In this short and practicle article, we will talk about handling UI events, such as onClick events, by taking full advantage of the Kotlin’s Function Types and Sealed Classes.

Here’s the short version.

If you have not already learned about what a composable is, consider reading this article which explains…


The purpose of this article is to explain a few fundamental concepts and terms regarding the Jetpack Compose UI Library on Android. I intend to use the least amount of jargon necessary, and to connect new concepts with those which may be familiar to you when appropriate.

While this is…


The title of this article is full of a bunch of words, some of which may be unclear to programmers who only write low-level code, and some of which may be unclear to programmers who only write web and mobile GUI applications.

I will try to hopefully bridge the gap…


Concurrency is widely regarded as one of the most difficult challenges among all fields of computation. I was first introduced to concurrent programming in high level languages, and the magic did not disappear until I studied it in C/C++.

If you are still wondering how it works under the hood…


The technical content in this article is intended for software developers who have written at least one significant application. It does not need to be in the realm of GUI programming, but that is my own expertise and this article will reflect that.

In this article, we will:

  • Briefly summarize…


A question which has been popping up repeatedly in my Q&A sessions since the Navigation Library from Android Architecture Components was released, is whether or not a Single Activity Architecture is:

  • Detrimental (bad)
  • Not Important (neutral)
  • Useful (good)
  • Mandatory (apply everywhere and in all situations)

In this short article, I…


I am asked very frequently about which OS, language, platform, framework, library, IDE, and or whatever other kind of tech, is the best choice for new developers. Some more frequent questions lately have taken the form of:

  • Should I write native, web, or hybrid applications?
  • Should I pick Dart, Kotlin…

Most people either do not start, or quit learning to code for two reasons:

  • Learning one’s first programming language can be a very difficult task
  • It is important to have a good teacher (or at least good instructions) but they can be hard to find

In this article, I will:


For roughly the first 24 years of my life (I am turning 27 in less than a month as of writing this), I did not know how to find a balance between taking a break versus wasting time. One of these things is a critical component of working hard, being…


My name is Ryan, and I hate jargon. I hate jargon because I am ill-equipped to remember it, but the reason why I still write decent code is that I am well equipped to understand the concepts which these jargon words point to.

In this article, I will talk about…

Ryan Michael Kay

Self-taught software developer & student of computer science.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store