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
Gratatouille: metaprogramming for your build-logic
Search
mbonnin
April 14, 2024
Programming
210
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Gratatouille: metaprogramming for your build-logic
mbonnin
April 14, 2024
More Decks by mbonnin
See All by mbonnin
Metadataquoi??
martinbonnin
0
170
Harmonizing APIs, a comparison of GraphQL and OpenAPI through the Spotify API
martinbonnin
1
120
Construisez votre bibliothèque Java/Kotlin
martinbonnin
2
130
Building libraries for the next 25 years
martinbonnin
2
140
GraphQL 💙 Kotlin, 2024 edition
martinbonnin
1
120
GraphQL_nullability__state_of_the_union.pdf
martinbonnin
1
63
Paris Kotlin Meetup de mai: Gradle 💙 Kotlin
martinbonnin
3
99
Offline and Reactive apps with Apollo Kotlin
martinbonnin
1
91
What's new in Apollo Kotlin 3
martinbonnin
2
270
Other Decks in Programming
See All in Programming
ActionController meets Protocol Buffers
sorah
1
790
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
360
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
310
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.7k
SODA - FACT BOOK(EN)
sodainc
1
210
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
300
オーケストレーション記述言語 Katari
yukikurage
0
240
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
150
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
540
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
790
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
300
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
610
The Pragmatic Product Professional
lauravandoore
37
7.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
Bash Introduction
62gerente
615
220k
Google's AI Overviews - The New Search
badams
0
1.7k
Design in an AI World
tapps
1
380
How to Ace a Technical Interview
jacobian
280
24k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Ethics towards AI in product and experience design
skipperchong
2
460
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