The D-KMP architecture: Declarative UIs + Kotlin MultiPlatform + MVI pattern
Year 2020 has not only been the year of the pandemic, but also the year which set the division between “The Past” and “The Future” in apps development. With JetpackCompose and Kotlin MultiPlatform reaching “Alpha” stage in August 2020, The Future will already start in 2021, the year where both technologies will reach “Stable” stage.
The Future is a complete cut from the The Past, as “MultiPlatform” will become the preferred choice. We will see many platform-specific technologies (LiveData, RxJava, Dagger, Retrofit, Room, etc.) losing their centrality, replaced by KMP technologies such as StateFlow, Coroutines, Ktor, Serialization, SqlDelight, etc.
In this talk I will present the D-KMP architecture which is based on the 3 pillars:
- DeclarativeUIs (JetpackCompose on Android, SwiftUI on iOS, Kotlin/React on Web)
- KMP (Kotlin MultiPlatform)
- MVI pattern (Model-View-Intent)
I am a mobile architect (client/server), with over 10 years experience. I started Android development in 2009 and iOS development in 2015. I am also one of the early Golang adopters, starting in 2013.
I have architected the highest-rated travel app in Europe (called Trenìt!), which has 4.9 stars on Android and 4.8 on iOS, out of over 110,000 reviews.
I have historically focused on "thin" client architectures, with most logic residing on the webservices. I am now envisioning a future of "rich" client architectures, thanks to declarative UIs and Kotlin MultiPlatform.