Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[TNT25] Etat des lieux de l'écosystème de Kotli...
Search
yostane
February 07, 2025
49
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[TNT25] Etat des lieux de l'écosystème de Kotlin en 2024]
yostane
February 07, 2025
More Decks by yostane
See All by yostane
[Fork It! Tunis 2025] How I Ported Doom to the Browser with WebAssembly
yostane
0
63
[TnT 2025] Comment j'ai porté Doom sur navigateur grâce au Web Assembly
yostane
0
30
[FOSDEM 2023] How I Ported Doom to the Browser with WebAssembly
yostane
0
56
[DevoxxUK 2024] Using WASM to port games to the browser: the BlazorDoom use case
yostane
0
50
[DevoxxBe 2024] Run your favorite games everywhere with WASM: the BlazorDoom use case
yostane
0
39
Adding fun to API development with Kotlin
yostane
0
170
Etat des lieux de l'écosystème de Kotlin en 2024
yostane
0
69
[DroidKaigi 2024] You’ll 💜 Becoming a FullStack Developer with your Android skills!
yostane
0
54
You’ll 💜 Kotlin and not only for Android!
yostane
0
64
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
410
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Crafting Experiences
bethany
1
180
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
250
Designing for Performance
lara
611
70k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
From π to Pie charts
rasagy
0
210
Designing Experiences People Love
moore
143
24k
Transcript
1
2
Etat des lieux de l'écosystème de Kotlin - 3
Yassine Benabbas DevRel, Enseignant Lille Android User Group @yostane in/benabbasyassine
- 4
- 5 blog.worldline.tech @TechAtWorldline
Agenda 6 Langage KMP Dev Front Dev Back Data Science
Langage 7
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
youtrack.jetbrains.com/issue/KT-43871 Litéraux de collections (en discussion) - 9
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
Kotlin Multiplatform (KMP) 11
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
13 Donc Kotlin a un compilateur fullstack !
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
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
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
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)
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)
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
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
Compiler backend Kotlin/ JVM Kotlin/ JS Kotlin/ Native Kotlin/ Wasm
iOS Desktop Browser Android Backend Data science Compiler frontend Outillage Librairies 21 Code multiplatformes
22 KMP: structure
23
24 Un monorepo … Comment !
KMP : implémentations spécifiques expect fun getPlatform(): String - 25
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
- 27
KMP: modes d’intégration - 28
Développement Frontend 29
Plusieurs choix JVM Pure Kotlin Kotlin/JS - WASM Compose JavaFx
React Exemple 30
??? 31
JafaFx + KtFX 32
@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
???? Fait intéressant 34 SwingX Romain Guy
- 35
wrl.li/quizapp 36
DEMO TIME KMP + compose 37
Développement backend 38
Plusieurs choix JVM Pure Kotlin Kotlin/JS - WASM Examples 39
DSL restassured DSL de test + nommage des fonctions avec
des phrases - 40
ExpressJS En Kotlin - 41
Ktor server Par JetBrains • Gratuit et open source •
Usage de DSLs • Fonctionnalités de base • Plugins - 42
- 43
- 44
- 45 https://wrl.li/ktorserverdemo
Etudes de cas https://kotlinlang.org/lp/server-side/case-studies 46
Data science 47
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
Librairies essentielles Kandy Dataframe 49
50
51
52
53 https://wrl.li/kandystats
54
55
- 56 https://wrl.li/kotlindatasciencedemo
Conclusion 57
Kotlin en 2024 Back Data science Front Infra, Scripting, Gradle,
… 58
Kotlin en 2024 Back Data science Front Infra, Scripting, Gradle,
… 59 Fondation Kotlin
• Frontend : Compose, JavaFx • Backend : Ktor, Spring,
Quarkus • Datascience : jupyter notebooks + libs • Kotlin est interopérable avec Java 60 Kotlin est universel
Kotlin training KMP training Merci pour votre attention Des questions
? 61 Diapos