The future of apps:
Declarative UIs with Kotlin MultiPlatform (D-KMP) — Part 1/3

The Past

The “past” is what app development has been until now, where most companies have built separate apps for each platform (Android, iOS, Web), with no shared code on the client-side.

The Future

In this 2020, we are experiencing the rise of two important paradigms, which are happening in parallel: Declarative UIs and Kotlin MultiPlatform. This will bring opportunities never seen before, and it will make “Multi-Platform” and client-side shared code the preferred choice for apps development.

The 3 pillars for the future of apps

  • Declarative UIs (JetpackCompose on Android, SwiftUI on iOS)
  • KMP (Kotlin MultiPlatform)
  • MVI pattern (Model-View-Intent)

The D-KMP architecture

Declarative UIs have landed on Android and iOS!

After over a decade, we are experiencing the most important revolution for the mobile frameworks. Both Android and iOS have started to ship their new UI toolkits, which are both declarative, taking inspiration from the paradigms of React and Flutter. They are going to fully replace the current way of defining views in both operating systems.

Why declarative UIs?

JetpackCompose and SwiftUI are both Declarative UI frameworks, which means they are just describing how the UI should look like for the different states, without managing the state directly. The Declarative UI paradigm have become popular thanks to frameworks like React.js and Flutter, which have shown how simpler it is to interact with stateless components. Their success has eventually pushed both Android and iOS to join the Declarative UI world!

DeclarativeUI for Web

JetBrains and Google are now working on a Compose version for the Web. Recently a technology preview of Compose for Web has been made publicly available. It is based on the DOM, and it is expected to grow very quickly in the next months.

DeclarativeUI for Desktop

In the meantime, JetBrains has already released Compose for Desktop, which is now in Alpha. It allows the development of desktop apps for Windows, macOs and Linux.

Will Compose eventually support iOS too?

This is a very popular question. I believe it will eventually, mainly thanks to the big community behind Compose. However SwiftUI will easily remain the preferred way to write the UI of an iOS app.

--

--

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
Daniele Baroncelli

Daniele Baroncelli

248 Followers

Mobile architect (client/server), with over 10 years experience. Focusing on Android, iOS, Kotlin, Golang. Progenitor of the D-KMP Architecture.