Compose Destinations is a Kotlin Symbol Processing library that generates type-safe navigation code for Jetpack Compose applications.
The library solves the problem of boilerplate-heavy, non-type-safe navigation in Jetpack Compose by using annotation processing to generate code that wraps the official Jetpack Compose Navigation framework. Developers annotate their screen Composables with @Destination, declare navigation arguments as function parameters, and the tool generates type-safe destination objects and navigation graphs. This approach eliminates manual route string management and argument serialization while keeping the underlying navigation APIs familiar.
Compose Destinations suits teams building Android apps with Jetpack Compose who want to reduce navigation boilerplate without adopting an entirely different navigation framework. It works with standard serializable types like Parcelable, Serializable, Enum, and kotlinx.serialization classes out of the box, and supports custom argument types. The tool handles navigation animations, deep linking, bottom sheet screens, and Wear OS support. It is particularly valuable for projects where type safety and reduced boilerplate are priorities, as it generates all necessary code at compile time rather than requiring manual route definitions.
The project maintains active development with a major version update introducing architectural changes and encouraging migration. The maintainers provide comprehensive documentation including migration guides and actively solicit feedback through GitHub issues and a dedicated Slack channel. Development appears responsive to user needs, with support for emerging Android features like Wear OS integrated into the library's evolution.