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

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

github.com/zsmb13/EkspenseTrakker

Slide 19

Slide 19 text

Join our Roundtable! . 310 PM Chromecast Room .Kotlin by JetBrains, present and future . Have a chat with Developer Advocates from JetBrains about anything Kotlin related on your mind. Language evolution, tooling, development practices, Kotlin Multiplatform and Compose Multiplatform... We're here for all of it!

Slide 20

Slide 20 text

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