• How are we going to add this new feature when the code is a mess?
  • We can’t change this file– it’s too risky!
  • How do I test this class when it depends on X, Y, and Z?
  • There is not enough time to make the changes you want!
  • What does this code even do!?
  • I feel overwhelmed and it’s never going to get any better.

Android isn’t new anymore. Most applications are not greenfield projects. Many of us find ourselves in the position of working on code we didn’t author and which we don’t fully understand.

In the spirit of Michael Feathers’ classic book, this talk explores ways we can navigate, maintain, improve and evolve Android legacy code. We will cover topics like architecture, refactoring, testing, and dependency breaking techniques using examples from the speakers’ combined 16+ years of experience working on Android.