Slide 1

Slide 1 text

Márton Braun Building with Kotlin Developer Advocate for Android and Beyond

Slide 2

Slide 2 text

Previously... 2017-05-18, Google I/O Extended Budapest

Slide 3

Slide 3 text

Previously... 2017-05-17, Google I/O Keynote

Slide 4

Slide 4 text

Previously... 2017-05-17, Google I/O

Slide 5

Slide 5 text

Kotlin’s evolution Kotlin 1.0 Public announcement Project start Open source 2013 2014 2015 2016 2017 2018 2019 2020 2021 2012 2022 2010 2011 2023 2024 2025 Kotlin on Android

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Kotlin-first Android 2019-05-07

Slide 8

Slide 8 text

Jetpack Compose announced 2019-05-08

Slide 9

Slide 9 text

Jetpack Compose 1.0 2021-07-28

Slide 10

Slide 10 text

5YKoA 2022-08-17

Slide 11

Slide 11 text

Kotlin’s evolution Kotlin 1.0 Public announcement Project start Open source Kotlin first Kotlin on Android Jetpack Compose 1.0 2013 2014 2015 2016 2017 2018 2019 2020 2021 2012 2022 2010 2011 2023 2024 2025

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Kotlin Multiplatform

Slide 16

Slide 16 text

Kotlin Multiplatform

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Kotlin’s evolution Jetpack Compose 1.0 Kotlin 1.0 Public announcement Project start Open source Native KMP stable Wasm Kotlin first KMM beta KMM alpha 2013 2014 2015 2016 2017 2018 2019 2020 2021 2012 2022 2010 2011 2023 2024 2025 Kotlin on Android

Slide 20

Slide 20 text

Kotlin Multiplatform libraries

Slide 21

Slide 21 text

github.com/terrakok/kmp-awesome

Slide 22

Slide 22 text

Multiplatform Jetpack 2022-10-10

Slide 23

Slide 23 text

Multiplatform Jetpack Annotations 1.7.0 Collections Room 1.3.0 2.7.0-alpha01 DataStore 1.1.0

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

jb.gg/compose Compose Multiplatform

Slide 26

Slide 26 text

@Composable fun SquaresGalleryView( images: List, selectedImage: PictureData, onSelect: (PictureData) -> Unit, ) { LazyVerticalGrid( modifier = Modifier.padding(top = 4.dp), columns = GridCells.Adaptive(minSize = 130.dp), verticalArrangement = Arrangement.spacedBy(1.dp), horizontalArrangement = Arrangement.spacedBy(1.dp) ) { itemsIndexed(images) { _, picture -> SquareThumbnail( picture = picture, onClick = { onSelect(picture) }, isHighlighted = selectedImage === picture ) } } }

Slide 27

Slide 27 text

Compose Multiplatform

Slide 28

Slide 28 text

Compose Multiplatform Resources 1.6.0+ Lifecycle 2.8.0-rc01 Navigation 2.7.0-alpha04 ViewModel 2.8.0-rc01

Slide 29

Slide 29 text

kotlinconf.com/global youtube.com/kotlin

Slide 30

Slide 30 text

Kotlin Multiplatform jb.gg/kmp Compose Multiplatform jb.gg/compose 5 years of Kotlin on Android goo.gle/5-years-of-kotlin Kotlin Multiplatform on Android goo.gle/kotlin-multiplatform Building with Kotlin for Android and Beyond zsmb.co/talks Márton Braun @[email protected]