Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin Multiplatform in Production

Kotlin Multiplatform in Production

Kotlin Multiplatform is steadily making its way into production applications. We (Touchlab) are working with a bunch of orgs to make that happen. This talk kind of wanders through a whole bunch of tangentially related topics. It also has a bunch of links.

Kevin Galligan

October 08, 2020
Tweet

More Decks by Kevin Galligan

Other Decks in Technology

Transcript

  1. Common JVM JS Native iOS Mac Linux Windows Android/NDK Wasm

    Others… Java-6 Java-8 Android Browser Node Typescript(?)
  2. KMM •is mostly a branding designation (it’s still KMP) •has

    a dedicated website and docs to help get started •has an Android Studio plugin built just for mobile (ish)
  3. kot·lin mul·ti·plat·form /ˌkätˈlin məltiˈplatfôrm,ˌkätˈlin məltīˈplatfôrm/ noun noun: kotlin multiplatform 1.optional,

    natively-integrated, open-source, code sharing platform, based on the popular, modern language kotlin. facilitates non-ui logic availability on many platforms.
  4. kot·lin mul·ti·plat·form /ˌkätˈlin məltiˈplatfôrm,ˌkätˈlin məltīˈplatfôrm/ noun noun: kotlin multiplatform 1.optional,

    natively-integrated, open-source, code sharing platform, based on the popular, modern language kotlin. facilitates non-ui logic availability on many platforms. Oh, and JetBrains!
  5. expect class Date { fun toLongMillis(): Long } expect class

    DateFormatHelper(format: String) { fun toConferenceDate(s: String): Date fun toLocalDate(s: String): Date fun formatConferenceTZ(d: Date): String fun formatLocalTZ(d: Date): String }
  6. kot·lin mul·ti·plat·form /ˌkätˈlin məltiˈplatfôrm,ˌkätˈlin məltīˈplatfôrm/ noun noun: kotlin multiplatform 1.optional,

    natively-integrated, open-source, code sharing platform, based on the popular, modern language kotlin. facilitates non-ui logic availability on many platforms. Oh, and JetBrains! not “cross platform”
  7. “Selling” KMP/KMM Links • Starter Kit: Kotlin Multiplatform (KMP) for

    iOS Developers
 https://go.touchlab.co/kmpsell • Introduce your team to KMM
 https://kotlinlang.org/docs/mobile/introduce-your-team-to- kmm.html
  8. Concurrency Links • KMM Concurrency Overview
 https://kotlinlang.org/docs/mobile/concurrency-overview.html • Kotlin/Native Concurrency

    Handson
 https://play.kotlinlang.org/hands-on/ Kotlin%20Native%20Concurrency/00_Introduction • Thoughts on the changes
 https://medium.com/@kpgalligan/kotlin-native-concurrency- changes-bbb1a5147e6 • More deep dive video
 https://www.youtube.com/watch?v=oxQ6e1VeH4M
  9. Single Framework Links • Multiple Kotlin Frameworks in an Application


    https://touchlab.co/multiple-kotlin-frameworks-in-application/ • Kotlin team tickets
 https://youtrack.jetbrains.com/issue/KT-42247
 https://youtrack.jetbrains.com/issue/KT-42250
  10. KT SW KT-objc KT KT-objc KT KT-objc KT KT-objc KT

    KT-objc KT KT-objc KT KT-objc KT KT-objc KT KT-objc KT KT-objc KT KT-objc KT KT-objc SW SW SW SW SW SW SW SW SW SW SW SW SW
  11. KT SW KT KT KT KT KT KT KT KT

    KT KT-objc KT KT-objc KT KT-objc SW SW SW SW SW SW SW SW SW SW SW SW SW
  12. • Compiler Plugins • Super-solid IDE and tooling support •

    Post-alpha (GA maybe?) • Proper WASM :) • New memory model • Way more library support (date format, file, mock, etc) • Compose for iOS? (probably not, but at some point)