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
Paris Kotlin Meetup de mai: Gradle 💙 Kotlin
Search
mbonnin
May 11, 2023
Technology
2
42
Paris Kotlin Meetup de mai: Gradle 💙 Kotlin
Tout ce que vous voulez savoir (ou pas) sur le Gradle Kotlin DSL (ou build scripts!)
mbonnin
May 11, 2023
Tweet
Share
More Decks by mbonnin
See All by mbonnin
Gratatouille: metaprogramming for your build-logic
martinbonnin
1
54
GraphQL 💙 Kotlin, 2024 edition
martinbonnin
0
18
GraphQL_nullability__state_of_the_union.pdf
martinbonnin
0
13
Offline and Reactive apps with Apollo Kotlin
martinbonnin
0
41
What's new in Apollo Kotlin 3
martinbonnin
1
140
Offline and Reactive apps with Apollo Kotlin
martinbonnin
2
200
Everything you didn't want to know about the Kotlin DSL
martinbonnin
3
590
Kotlin native in 10 min
martinbonnin
0
89
DroidCon IT - GraphQL on the JVM and beyond
martinbonnin
0
28
Other Decks in Technology
See All in Technology
QAエンジニアが伝えたい品質保証の羅針盤 / Compass for Quality Assurance
mii3king
2
340
AWSの生成AI入門書を執筆しました🎉
minorun365
PRO
0
150
能動学習のいろは:書籍「Human-in-the-Loop機械学習」3〜5章
hiroyoshiito
0
300
Kaggleで学ぶ系列データのための深層学習モデリング
yu4u
7
1.7k
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
10
1.8k
回り回って効いてくる副次的効果としての技術広報/techpr
nishiuma
1
200
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
170
SWC Transformerから見るTypeScript関数記述ベストプラクティス
fujiyamaorange
1
180
「できる!」を増やすGitHub Copilot活用法 / How to use GitHub Copilot to expand your possibilities
sansan_randd
1
240
データ分析力を高めるSQL研修サービス『SQL Everyone』
hikarut
1
400
LLM評価の落とし穴~開発者目線で気をつけるポイント~
rishigami
12
3.3k
技術力の伸ばし方を考える
khirata
0
140
Featured
See All Featured
Navigating Team Friction
lara
179
13k
Atom: Resistance is Futile
akmur
260
25k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Become a Pro
speakerdeck
PRO
13
4.6k
The Invisible Customer
myddelton
114
12k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
We Have a Design System, Now What?
morganepeng
43
6.8k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
47k
Documentation Writing (for coders)
carmenintech
60
4k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Transcript
Bienvenue 🤗
Kotlin DSL Tout ce que vous avez toujours voulu savoir
sur le Gradle Kotlin DSL sans jamais le oser le demander.
@MartinBonnin apollographql/apollo-kotlin
Gradle
Google
Jetbrains
Changes • gradle init • Android Studio/IntelliJ templates • API
docs • Documentation!
plugins { id 'org.jetbrains.kotlin.jvm' version '1.5.31' } dependencies { implementation(’com.squareup.okio:okio:3.0.0’)
} kotlin { explicitApi() } tasks { compileKotlin { kotlinOptions { apiVersion = '1.3' } } }
plugins { id("org.jetbrains.kotlin.jvm").version("1.5.31") } dependencies { implementation("com.squareup.okio:okio:3.0.0") } kotlin {
explicitApi() } tasks { compileKotlin { kotlinOptions { apiVersion = "1.3" } } }
It’s good?
It’s (mostly) good! • Autocomplete • Only one language
None
Kotlin DSL (Gradle Kotlin) != Kotlin build scripts (Jetbrains Kotlin)
Kotlin DSL = Kotlin build scripts + generated accessors +
sam-with-receiver + assignment operator + gradleKotlinDSL() + apiVersion + -Xsam-conversions=class
Demo
Wrap up
None
None
None
https://github.com/gradle/gradle/issues/15886#issuecomment-954833377
Pour aller plus loin https://www.youtube.com/watch?v=oavqsLKRuDU
Merci! @MartinBonnin
Resources • https://android-developers.googleblog.com/2023/04/kotlin-dsl-is-now-default-for-new-gradle-builds.html • https://blog.gradle.org/kotlin-dsl-is-now-the-default-for-new-gradle-builds • https://blog.jetbrains.com/kotlin/2023/04/kotlin-dsl-is-the-default-for-new-gradle-builds/ • https://docs.gradle.org/current/userguide/kotlin_dsl.html •
https://github.com/gradle/gradle/pull/24286 • https://gradle.github.io/kotlin-dsl-docs/api/ • https://storage.googleapis.com/martin-public/userguide/writing_in_kotlin.html • https://github.com/gradle/gradle/blob/master/subprojects/kotlin-dsl-provider-plugins/src/main/kotlin/org/gradle/k otlin/dsl/provider/plugins/DefaultProjectSchemaProvider.kt • https://www.youtube.com/watch?v=oavqsLKRuDU