Slide 1

Slide 1 text

Sebastian Aigner @sebi_io What's New in Compose Multiplatform: A Live Tour @zsmb13 Márton Braun

Slide 2

Slide 2 text

What if you could just… do iOS? turns out: you probably can!

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

What we'll build today

Slide 5

Slide 5 text

Features • Fully shared Compose UI • Logic separated from UI • Navigation between pages • Resources & localization • Data persistence • Dependency injection

Slide 6

Slide 6 text

jb.gg/compose

Slide 7

Slide 7 text

Guidelines jb.gg/compose

Slide 8

Slide 8 text

Emulators Márton’s machine Sebastian’s machine

Slide 9

Slide 9 text

Demo!

Slide 10

Slide 10 text

Let's extract some logic! • Jetpack ViewModel • KMP-ObservableViewModel • Voyager • Orbit MVI • Molecule • … ⚗

Slide 11

Slide 11 text

Let's store some data! • Room • Realm • SQLDelight • KStore • DataStore • Multiplatform Settings 💽

Slide 12

Slide 12 text

We gotta inject things! • Koin • Kodein • kotlin-inject • … 💉

Slide 13

Slide 13 text

We gotta navigate! • Compose Navigation • Voyager • PreCompose • … 🧭

Slide 14

Slide 14 text

Compose Navigation • Converted to Multiplatform by JetBrains • Popular, well-established APIs (you might already know them!) • Minimizing the work for bringing existing Android apps to multiplatform • Keeps evolving!

Slide 15

Slide 15 text

Soon™: Type-safe multiplatform navigation!

Slide 16

Slide 16 text

Kotlin Multiplatform libraries

Slide 17

Slide 17 text

Get started: jb.gg/compose

Slide 18

Slide 18 text

Try Compose Multiplatform! twitter: @sebi_io @zsmb13 github: @SebastianAigner @zsmb13 [sebastian,marton]@jetbrains.com jb.gg/compose