It’s time to talk about meta-programming, annotation processors and compiler plugins 🧙♂️. Today we have Zac Sweers on stage, Mobile Engineer @ Slack and maintainer of Moshi, a popular Json library.
Zac is the author of MoshiX, a set of extensions for Moshi. Between those, one that caught my attention was moshi-ksp
. KSP (Kotlin Symbol Processing API) is set to revolutionize the landscape of annotations processors in Kotlin. Join us on this deep dive on code generation and more.
Enjoy the show 👨🍳
Show Notes
- 00.18 Intro
- 01.05 Episode Start
- 01.28 Zac’s Introduction
- 03.03 What is Metaprogramming?
- 04.42 What is KSP?
- 05.26 What about KAPT
- 08.20 Overcoming KAPT costs
- 09.50 Beyond KAPT
- 11.26 KSP API & Features
- 15.02 Your story of Moshi
- 17.46 Kotlin Metadata
- 19.16 Generating Moshi Adapters
- 20.18 What is MoshiX?
- 23.44 MoshiX & KSP
- 25.07 Adopters and Success Stories
- 28.02 From MoshiX to Moshi
- 30.57 Kotlin Compiler Plugins
- 36.20 Compiler Plugin opportunities
- 38.53 A Moshi Compiler Plugin?
- 41.00 Metaprogramming beyond Java/Kotlin
- 45.06 What’s next for MoshiX?
- 54.44 Further reading
- 60.15 Where to find Zac online?
Resources
- ZacSweers/MoshiX on Github
- google/ksp on Github
- square/moshi on Github
- ZacSweers/redacted-compiler-plugin on Github
- square/kotlinpoet on Github
- KSP Quick Start
- KotlinConf 2018 - Annotation Processing in a Kotlin World
- @ZacSweers on Github
- Zac’s Blog
- @ZacSweers on Twitter