A 3-part article explaining the new D-KMP architecture, based on DeclarativeUIs, Kotlin MultiPlatform and MVI pattern.

- Part 1: The D-KMP architecture and the Declarative UIs
- Part 2: Kotlin MultiPlatform and the MVI pattern
- Part 3: D-KMP layers and Team organization

Image for post
Image for post

The App State

The AppState is the most important component of our app, as it’s where we define all data needed by our UI layer.
The AppState is platform-independent and takes the form of a simple Kotlin data class. Here is an example of the AppState:

data class AppState ( val homeScreen : HomeState, val listScreen : ListState, val detailScreen…


A 3-part article explaining the new D-KMP architecture, based on DeclarativeUIs, Kotlin MultiPlatform and MVI pattern.

- Part 1: The D-KMP architecture and the Declarative UIs
- Part 2: Kotlin MultiPlatform and the MVI pattern
- Part 3: D-KMP layers and Team organization

Image for post
Image for post

Kotlin 1.4 has made MultiPlatform real!

With the release of Kotlin version 1.4 (August 2020), Kotlin MultiPlatform has left its Experimental stage and entered the Alpha.

We are now at a point where we can start working on production projects, as the stability of the technology is already outstanding. Any change or improvement will mostly happen under the hood.

If we had any…


A 3-part article explaining the new D-KMP architecture, based on DeclarativeUIs, Kotlin MultiPlatform and MVI pattern.

- Part 1: The D-KMP architecture and the Declarative UIs
- Part 2: Kotlin MultiPlatform and the MVI pattern
- Part 3: D-KMP layers and Team organization

Latest Update: Feb 25, 2021

Image for post
Image for post

Daniele Baroncelli

Mobile architect (client/server), with over 10 years experience. Focusing on Android, iOS, Kotlin, Golang. Now researching rich client architectures with D-KMP.

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