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

Etat des lieux de l'écosystème de Kotlin en 2024

yostane
November 12, 2024

Etat des lieux de l'écosystème de Kotlin en 2024

yostane

November 12, 2024
Tweet

More Decks by yostane

Other Decks in Programming

Transcript

  1. Il était une fois un Devoxx 2024 2 Viens en

    parler au ParisJug Sais-tu tout ce que peut faire Kotlin ?
  2. 3

  3. Kotlin idiomatique • Coder avec les conventions et capacités du

    langage • Par ex. : définir des fonctions getters et setters n’est pas idiomatique en Kotlin 8 https://wrl.li/idiom-kt-01
  4. Et bien d’autres … Explicit backing field Array Literals guards

    Infinite loop github.com/Kotlin/KEEP x.com/kotlin Multi-field value classes Context parameters Kotlin statics and static extensions HexFormat - 10
  5. KMP: principe 12 Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/

    Native Kotlin/ Wasm iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies Program.kt
  6. 13

  7. KMP: principe 14 Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/

    Native Kotlin/ Wasm iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies Program.kt
  8. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 15 Code qui dépend du JDK / JVM
  9. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 16 Code qui dépend du JDK / JVM
  10. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 17 Code qui utilise UIKit (iOS)
  11. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 18 Code qui utilise UIKit (iOS)
  12. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 19 Code multiplateformes mobile
  13. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 20 Code multiplateformes mobile
  14. Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm

    iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 21 Code multiplatformes
  15. 23

  16. KMP : implémentations spécifiques actual fun getPlatform() = "Android ${android.os.Build.VERSION.SDK_INT}"

    actual fun getPlatform() = "iOS ${UIDevice.currentDevice.systemVersion}" expect fun getPlatform(): String - 26
  17. @composable fun MyComposableView(){ Box(contentAlignment = Alignment.Center, modifier = Modifier.fillMaxWidth().fillMaxHeight()) {

    Card(shape = RoundedCornerShape(8.dp), modifier = Modifier.padding(10.dp), ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Text(text = "Quiz", fontSize = 30.sp, modifier = Modifier.padding(all = 10.dp) ) Text(text = "A simple Quiz to discovers KMP, KMM and compose.", modifier = Modifier.padding(all = 10.dp)) Button(Text("Start the Quiz"), modifier = Modifier.padding(all = 10.dp), onClick = { } ) } } } Title 8:30 Start the Quiz Quizz A simple Quizz to discovers KMP, KMM and compose Compose multiplatform: UI déclarative Repose sur Skia et Skiko - 33
  18. Ktor server Par JetBrains • Gratuit et open source •

    Usage de DSLs • Fonctionnalités de base • Plugins - 42
  19. Jupyter Notebook • Markdown + code + sa sortie dans

    un fichier « .ipynb » • Format bien supporté: Jupyter lab, Datalore, VSCode, IntelliJ, GitHub ... • Support des langages via des Kernels (Kotlin maintenu par JetBrains) 48
  20. 50

  21. 51

  22. 52

  23. 54

  24. 55

  25. • Frontend : Compose, JavaFx • Backend : Ktor, Spring,

    Quarkus • Datascience : le kernel Kotlin utilise le JDK • Kotlin est interopérable avec Java 60 Kotlin JVM