Recently I was interviewed for an Android software development position, and I was asked to live code a simple app that demonstrates fetching a list of items from a network resource and display their information in an endless list.

I was given an API that supports paging and off I went coding away.
There was just one problem.

I had never implemented this behavior before, therefore, I was able to code an app that fetches results from the API, but I failed to implement the endless scrolling feature in the allowed time frame. …


In this article, I will demonstrate a simple way of converting a callback-based listener to a flow-based reactive design

Photo by Pavan Trikutam on Unsplash

The introduction of Kotlin as a first class language for Android development around 2018 had kicked off a new era of MAD — Modern Android Development, and with it, we received a new type that can emit multiple values sequentially.

In our work as Android developers, we often come across the need to implement some sort of listener abstract class to get a callback for a given action, an esoteric example of this is OkHttp3’s WebSocketListener:

Now when working reactively, implementing this abstract class might be problematic, we could implement it as an inner class and reference the callback…


In this third part of the Jetpack Compose navigation series, we would learn how to pass multi typed data using the compose navigation components while using its SafeArgs feature.

Here is the list of the blogs in this series:

In the last parts of the series, we wrote a small fun application using Jetpack Compose, where we implemented navigation with a bottom navigation bar and passed some string arguments between the screens using SafeArgs.


In this second part of the Jetpack Compose navigation series, we would learn how to pass string typed data using the compose navigation components while using its SafeArgs feature.

Here is the list of the blogs in this series:

In the first part of the series, we wrote a small fun application using Jetpack Compose, where we implemented navigation with a bottom navigation bar.


In this article, we would explore the new navigation component released for Jetpack Compose and implement a bottom bar navigation system.

Here is the list of the blogs in this series:

Navigation in Jetpack Compose has been somewhat complicated to implement up until the latest release from the Compose toolkit team.

Navigating between Android app screens was quite troublesome for years, using fragments and activities, with lifecycles and process deaths that catch you by surprise, I remember scanning through enormous code bases trying to find where one screen was replaced…


Being an Android developer is a wonderful and frustrating position to be in.
On the one hand, we can create amazing apps, design our logic in a coherent, elegant codebase, and let our users enjoy the show.
On the other hand, if you ask experienced Android developers about what are the pain points of Android development, most would provide the same answer.

Building UI’s using that infamous XML file.

Enter Jetpack Compose

Jetpack Compose is a new, declarative way of writing UI code in Kotlin for Android, there are a lot of resources on the issue, I would recommend this video by Leland…


Over the past few years the android framework placed a big emphasis on providing developers with components for creating more efficient design patterns. the MVVM (Model — View — ViewModel) was chosen to be the preferred way to design an android system, and built in components were provided by the framework so that developers wont have to deal with the headache of lifecycle or scoping.

After listening to Kaushik Gopal on the Android podcast, Fragmented, I became aware of the trend to implement Unidirectional Data Flow in android design, however, gopal was introducing a design that was heavily on the…

Ziv Kesten

I am a mobile developer, an android enthusiast and a drone lover (Secretly, don’t tell the wife)

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