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.

Avatar for Kevin Galligan

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)