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
Etat des lieux de l'écosystème de Kotlin en 2024
Search
yostane
November 12, 2024
Programming
76
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Etat des lieux de l'écosystème de Kotlin en 2024
yostane
November 12, 2024
More Decks by yostane
See All by yostane
[Fork It! Tunis 2025] How I Ported Doom to the Browser with WebAssembly
yostane
0
73
[TnT 2025] Comment j'ai porté Doom sur navigateur grâce au Web Assembly
yostane
0
41
[FOSDEM 2023] How I Ported Doom to the Browser with WebAssembly
yostane
0
69
[DevoxxUK 2024] Using WASM to port games to the browser: the BlazorDoom use case
yostane
0
63
[DevoxxBe 2024] Run your favorite games everywhere with WASM: the BlazorDoom use case
yostane
0
50
[TNT25] Etat des lieux de l'écosystème de Kotlin en 2024]
yostane
0
52
Adding fun to API development with Kotlin
yostane
0
170
[DroidKaigi 2024] You’ll 💜 Becoming a FullStack Developer with your Android skills!
yostane
0
63
You’ll 💜 Kotlin and not only for Android!
yostane
0
72
Other Decks in Programming
See All in Programming
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
880
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
270
不幸な GC
chencmd
0
890
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
3
540
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
100
Foundry Localでエージェント開発
seosoft
0
150
typoなんかねぇよ
raspython3
0
670
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
200
新卒PdEのリアル
ryu1013
1
420
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
180
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Navigating Weather and Climate Data
rabernat
0
510
Discover your Explorer Soul
emna__ayadi
2
1.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Product Roadmaps are Hard
iamctodd
55
13k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Building Adaptive Systems
keathley
44
3.2k
Transcript
Etat des lieux de l'écosystème de Kotlin Paris JUG 12/11/2024
- 1
Il était une fois un Devoxx 2024 2 Viens en
parler au ParisJug Sais-tu tout ce que peut faire Kotlin ?
3
Yassine Benabbas DevRel, Enseignant Lille Android User Group @yostane in/benabbasyassine
- 4
- 5 blog.worldline.tech youtube.com/@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 https://wrl.li/idiom-kt-01
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
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 : le kernel Kotlin utilise le JDK • Kotlin est interopérable avec Java 60 Kotlin JVM
Kotlin training KMP training Merci pour votre attention Des questions
? 61 Diapos