Pandora’s Android codebase is 5+ years old. The project was initially developed by a handful engineers who were tasked with creating and delivering new features quickly. Over time, it evolved without a clear dependency management pattern. With a codebase of approximately half a million lines of code, and a growing team continuously developing features, it seemed daunting to suddenly refactor every component to properly utilize a dependency injection framework. Earlier this year Pandora was able to add Dagger 2 to its codebase.
In this talk, Pandora’s engineers will share details on how they managed to successfully refactor the application to use dependency injection while simultaneously continuing development across the app. Additionally, obstacles and solutions along with developed patterns will be shared in the hopes that other app developers take something useful back. Types of Injections, Scopes and Testing are a few of the topics that will be covered.