Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Etat des lieux de l'écosystème de Kotlin en 2024
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yostane
November 12, 2024
Programming
78
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
83
[TnT 2025] Comment j'ai porté Doom sur navigateur grâce au Web Assembly
yostane
0
47
[FOSDEM 2023] How I Ported Doom to the Browser with WebAssembly
yostane
0
74
[DevoxxUK 2024] Using WASM to port games to the browser: the BlazorDoom use case
yostane
0
71
[DevoxxBe 2024] Run your favorite games everywhere with WASM: the BlazorDoom use case
yostane
0
51
[TNT25] Etat des lieux de l'écosystème de Kotlin en 2024]
yostane
0
55
Adding fun to API development with Kotlin
yostane
0
180
[DroidKaigi 2024] You’ll 💜 Becoming a FullStack Developer with your Android skills!
yostane
0
65
You’ll 💜 Kotlin and not only for Android!
yostane
0
81
Other Decks in Programming
See All in Programming
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
170
ChromeでローカルLLM
ryu1013
0
170
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
250
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
190
Vue Fes Japan の “作る側”に関わってみて
naokihaba
1
200
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
130
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
290
R8 の設定見直しでアプリサイズ削減
andpad
0
230
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
170
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
5
1.2k
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
350
続・コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions-again
handlename
0
140
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Statistics for Hackers
jakevdp
799
230k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
560
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
770
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
470
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
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