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
Gratatouille: metaprogramming for your build-logic
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mbonnin
April 14, 2024
Programming
2
160
Gratatouille: metaprogramming for your build-logic
mbonnin
April 14, 2024
Tweet
Share
More Decks by mbonnin
See All by mbonnin
Metadataquoi??
martinbonnin
0
120
Harmonizing APIs, a comparison of GraphQL and OpenAPI through the Spotify API
martinbonnin
1
68
Construisez votre bibliothèque Java/Kotlin
martinbonnin
2
96
Building libraries for the next 25 years
martinbonnin
2
89
GraphQL 💙 Kotlin, 2024 edition
martinbonnin
1
73
GraphQL_nullability__state_of_the_union.pdf
martinbonnin
1
34
Paris Kotlin Meetup de mai: Gradle 💙 Kotlin
martinbonnin
3
73
Offline and Reactive apps with Apollo Kotlin
martinbonnin
1
62
What's new in Apollo Kotlin 3
martinbonnin
2
230
Other Decks in Programming
See All in Programming
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
Raku Raku Notion 20260128
hareyakayuruyaka
0
350
CSC307 Lecture 02
javiergs
PRO
1
780
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
110
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
110
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
How to Talk to Developers About Accessibility
jct
2
130
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Mind Mapping
helmedeiros
PRO
0
89
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
ラッコキーワード サービス紹介資料
rakko
1
2.3M
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
Abbi's Birthday
coloredviolet
1
4.8k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Un-Boring Meetings
codingconduct
0
200
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Transcript
Gratatouille Webinar - Apr 2024
Hi 👋 🥐
apollographql/apollo-kotlin
Automatic code generation 4 query.graphql schema.graphqls Kotlin
Codegen 5 { sessions { nodes { language title startsAt
speakers { name } } } } class Session(val nodes: List<Node>) class Node( val language: String, val title: String, val startsAt: DateTime, val speakers: List<Speaker> ) class Speaker(val name: String)
6
7
Classloaders 8 • Several ones ◦ root project classloader ◦
subproject classloader ◦ buildSrc classloader • See Crash course in classloaders
9
10 Yes, BUT… johnrengelman/shadow
11 Yes, BUT… • Slow to compile • Duplicates bytecode
• Doesn’t fix everything GradleUp/Gr8 🐘🆙
Other things 12 • Overlapping outputs • Build cache •
Path sensitivity • Manual serialization • Parallel execution • Optional/nullable ⁉ • Type safety
Entering Gratatouille Even more classloaders… ;-)
Live demo?
Status 15 • Mostly proof of concept • Branch of
Apollo working with it • Single artifact mode • Testing