Sunsetting compose-router

Zsolt Kocsi
2 min readJul 28, 2022

The king is dead, long live the king!

How compose-router came to be

December 2019 Jetpack Compose was at its 0.1.0-dev03 version in — still one and half a year before its 1.0, with constantly changing APIs and many “under construction” parts. It was messy, but it was already mind-blowing. Not many of my friends considered playing with it just yet though.

Compose-router was born out of curiosity in this era. Compose is declarative, and I wanted to see how that would work in the context I’d been working:

  1. Could I implement a declarative, nested navigation tool, similarly to the one we implemented in badoo/RIBs?
  2. Could I implement a nested back press handler to automatically go back in navigation history? (Mind you: Compose didn’t have a back handling mechanism at the time yet)

I published the results to these questions in this article:

And compose-router was born — proud to say it was the very first of its kind in Compose land.

Why is it time to sunset it now?

Because there’s something even better!

Compose-router was an experiment — since then, my colleagues and I have been working on something much more powerful. We’ve just announced Appyx the other day:

Compose-router was the early pioneer for what Appyx can do today. They are conceptually similar — but Appyx is superior in every way:

  • Beautiful animations
  • Navigation engines
  • Proper lifecycle scoping
  • Plugins
  • …and many more…

You can check it out at:

If you had a project using compose-router, it should be very easy to switch to Appyx.

Happy coding!

--

--