Conquer your Compose Navigation with KSP & KotlinPoet in a Multi-Module Project
summary
Payback refactors a 65 feature module app into a single-activity Compose flow using a central navigator and compile-time generation with KSP and KotlinPoet to produce route strings, nav-arg classes, parser functions and Hilt modules. Generated code enforces type-safe routes, supports module-to-module destination resolvers, returns parcelable results via savedStateHandle, and injects args into ViewModels. Four custom KSP processors evolve over a year, cut boilerplate significantly and prevent runtime route/argument errors in production.
AI-written summary · about
chapters (20)
- 0:00Introduction to navigation improvement
- 1:08Talk context and challenges
- 2:13Compose navigation basics
- 4:19KSP and KotlinPoet explained
- 5:45Payback’s Compose navigation issues
- 7:50Single activity pattern setup
- 9:15Central navigator implementation
- 10:44Type safety in navigation
- 11:49Auto-generating routes with KSP
- 13:35KSP processor implementation steps
- 16:23Extracting class information
- 17:50Generating code with KotlinPoet
- 19:16Improvements over the past year
- 19:57Module-to-module navigation
- 21:24Returning results from screens
- 23:37Injecting args into ViewModels
- 25:05Hilt module for argument injection
- 25:27Project evolution summary
- 25:50Recommendations and takeaways
- 26:11Closing and Q&A
related talks
02mJetpack Compose Navigation: Beyond The Basics
06mType safe, multi-module best practices with Navigation Compose
46mExploring Navigation Libraries for Compose
22mDecompose your Kotlin Multiplatform project into feature modules
40mNavigation in a Multiplatform World
49mNavigating with Jetpack Compose
22mDecompose your Kotlin Multiplatform project into feature modules
26mBuild your own compiler with KSP
