Bumble Andrey Kovalev

Bumble's Appyx vs Jetpack Compose Navigation

Original post 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.

Continue reading

What This Article Covers

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.

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.

This page summarizes “Appyx vs Jetpack Compose Navigation” by Bumble, published Aug 12, 2022. All credit for the original work goes to the authors.

Read the original on medium.com (opens in new tab)

AI tools for Android

Browse all AI tools →