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
3
57
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
Harmonizing APIs, a comparison of GraphQL and OpenAPI through the Spotify API
martinbonnin
1
24
Construisez votre bibliothèque Java/Kotlin
martinbonnin
2
79
Building libraries for the next 25 years
martinbonnin
2
40
Gratatouille: metaprogramming for your build-logic
martinbonnin
2
110
GraphQL 💙 Kotlin, 2024 edition
martinbonnin
1
50
GraphQL_nullability__state_of_the_union.pdf
martinbonnin
1
23
Offline and Reactive apps with Apollo Kotlin
martinbonnin
1
44
What's new in Apollo Kotlin 3
martinbonnin
2
180
Offline and Reactive apps with Apollo Kotlin
martinbonnin
3
230
Other Decks in Technology
See All in Technology
クラウドサービス事業者におけるOSS
tagomoris
1
820
データマネジメントのトレードオフに立ち向かう
ikkimiyazaki
6
980
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
6
810
Goで作って学ぶWebSocket
ryuichi1208
1
950
現場で役立つAPIデザイン
nagix
33
12k
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
6.2k
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
2024.02.19 W&B AIエージェントLT会 / AIエージェントが業務を代行するための計画と実行 / Algomatic 宮脇
smiyawaki0820
13
3.4k
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
410
Swiftの “private” を テストする / Testing Swift "private"
yutailang0119
0
130
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.4k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
51
7.4k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
A Tale of Four Properties
chriscoyier
158
23k
It's Worth the Effort
3n
184
28k
Bash Introduction
62gerente
611
210k
Visualization
eitanlees
146
15k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Documentation Writing (for coders)
carmenintech
67
4.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
Typedesign – Prime Four
hannesfritz
40
2.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
330
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
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