Jetpack Compose Multiplatform!?

The Jetpack Compose UI toolkit for Android now supports the Desktop with the possibility of more platforms.

Jetpack Compose Multiplatform!?

Jetpack Compose, the new UI toolkit for Android, that is currently in an Alpha stage, has made it's way over to Desktop App development. The same UI toolkit used for Android application development can now be used for Desktop applications. Though both Jetpack Compose and Compose for Desktop are in early development stages, I'm excited to see them progress and am looking forward to their eventual promotion to stable APIs.

There was observation and discussion awhile back about Jetpack Compose being developed using Kotlin Multi-platform (expect/actual declarations, etc). Now with the introduction of Compose for Desktop by Jetbrains, Kotlin Multi-platform has become apparent. But this leads one to wonder, what other platforms can Jetpack Compose target? An experimental project was already created for getting the Jetpack Compose APIs to work for the Web and Javascript. So we know it is possible to target more than just Android with Jetpack Compose, however the question remains: which platform targets will be available?

Personally, I would like to see Jetpack Compose expand it's support to iOS. This makes sense since it is a similar platform, both being mobile environments, and with Kotlin Multi-platform it should be possible (though might require heavy work on the iOS implementation side). If that were the case, this could effectively replace Flutter, since a cross-platform UI toolkit along with Kotlin's Multi-platform support would provide a greater app development experience by allowing code sharing and removing redundant platform-specific implementations for every project.

Awhile back I wrote an article about some of my concerns with the Jetpack Compose toolkit. Some of these concerns have since been addressed, specifically, the use of ConstraintLayout and RecyclerView alternatives. The Jetpack Compose ReyclerView alternatives are LazyColumnFor and LazyRowFor for vertical and horizontal lists, respectively, as seen in this article. And the use of ConstraintLayout in Jetpack Compose can be seen in the documentation. This alleviates some of my concerns with the Jetpack Compose toolkit and I am looking forward to it's progress and promotion to a stable API.

The Jetpack Compose toolkit is a promising approach to UI development on Android, now desktop, and hopefully, soon much more.

Resources