Compiler plugins provide a gateway to extend the capabilities of the Kotlin compiler, allowing developers to inject custom logic into the compilation pipeline.
Without compiler plugins, Android Jetpack Compose would have never been possible. Compiler plugins enable the use of Aspect Oriented Programming to apply cross-cutting logic for use cases when Kotlin's language is not modular enough, or create your own implementation of Kotlin’s Coroutine.
In this session, we will explain the fundamentals of Kotlin's Internal Representation (IR) and explore the details of compiler phases. We will then showcase some meta-programming samples, illustrating how to inspect and modify the output of the compiler.