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
200
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
160
Harmonizing APIs, a comparison of GraphQL and OpenAPI through the Spotify API
martinbonnin
1
100
Construisez votre bibliothèque Java/Kotlin
martinbonnin
2
120
Building libraries for the next 25 years
martinbonnin
2
140
GraphQL 💙 Kotlin, 2024 edition
martinbonnin
1
110
GraphQL_nullability__state_of_the_union.pdf
martinbonnin
1
56
Paris Kotlin Meetup de mai: Gradle 💙 Kotlin
martinbonnin
3
97
Offline and Reactive apps with Apollo Kotlin
martinbonnin
1
83
What's new in Apollo Kotlin 3
martinbonnin
2
260
Other Decks in Programming
See All in Programming
パスワード再設定メールのURLについて知っておこう
uyuki234
0
150
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
230
Simple Storage Service(S3) is not simple
iwatsukayura
0
280
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
カツオ、ご期待ください
suneo3476
0
180
速習iPhone Duo対応
yuukiw00w
2
980
Are APIs Still Relevant in the AI Era?
soyuka
0
460
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
470
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
0
160
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.5k
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
410
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Chasing Engaging Ingredients in Design
codingconduct
0
360
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Documentation Writing (for coders)
carmenintech
77
5.6k
What's in a price? How to price your products and services
michaelherold
247
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Git: the NoSQL Database
bkeepers
PRO
433
67k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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