Bumble Andrey Kovalev Aug 12, 2022

Appyx vs Jetpack Compose Navigation

Article Summary

Andrey Kovalev from Bumble's engineering team challenges a fundamental assumption: what if Jetpack Compose Navigation's string-based routes and hardcoded BackStack are holding your Android app back?

Bumble released Appyx, an alternative navigation framework for Jetpack Compose that takes a radically different approach. Instead of string-based routes and a single navigation pattern, it offers type-safe navigation targets, testable business logic, and pluggable navigation models beyond the traditional back stack.

Key Takeaways

Critical Insight

Appyx separates navigation from UI, provides compile-time safety, and enables custom navigation patterns that Jetpack Compose Navigation's BackStack-only approach cannot support.

The article includes a step-by-step comparison showing how to build a dating cards swipe interface that would be impossible with standard Jetpack Navigation.

About This Article

Problem

Jetpack Compose Navigation's accompanist-navigation library only supports four animation types: enterTransition, exitTransition, popEnterTransition, and popExitTransition. This means developers can't animate custom properties like colour or rotation.

Solution

Appyx's TransitionHandler abstraction returns a Modifier that's applied to child Node composables. This lets you animate any property that Modifier supports, including colour and rotation, with just a single-line implementation in a separate class.

Impact

Developers can now animate properties beyond the four fixed transitions that Jetpack Compose Navigation offers. Complex animations like colour and rotation transitions are possible without needing workarounds.