Building a Multiplatform Window Manager for Fun
Sebastian AignerDeveloper Advocate at JetBrains
Window managers are the default way of interfacing with desktop computers - and they give users a fascinating amount of freedom in how they choose to work and multitask: allowing them to lay out applications in ways that are most comfortable for them. Wouldn't it be fun if we could bring that same paradigm into Compose Multiplatform apps? In this talk, we'll build a prototype for window management inside a Compose Multiplatform application together. We'll see how we can adapt key ideas from window managers (like full-screen vs resizable multi-windows, drag-and-drop, launchers, and more). In the process, we'll replicate some of the iconic aesthetic of the late 2000s. We'll explore key architecture aspects and challenges. These are topics that are relevant to much broader development tasks, beyond window management: concepts like ViewModelStoreOwners, lifecycle events, coroutine scopes and their lifetimes, navigation patterns, building UI for resizable surfaces, and many more. Through the power of CMP & KMP, we'll see it all in action on different platforms, from Android tablets to iPads to the Desktop. By the end of this talk, you'll understand how flexible you can be when building UIs with Compose Multiplatform, will have a deeper grasp of key concepts of framework-level architecture, and will have taken a fun trip down memory lane into the age of XP & Co!
Intended audience
Developers who want to learn more about architectural decisions, enjoy exploratory prototypes, and want to learn more about Compose Multiplatform. Basic knowledge with Jetpack Compose would be helpful. An understanding of multiplatform concepts may be helpful, but isn't strictly required.