Skip to content

Consequences (Jetifier)

Imagine you're a big company. You made a bunch of vital libraries that all depend on each other. And the whole world depends on them, without exaggeration.

Then at some point, at first glance purely for marketing purposes, you decided to rename all packages of these libraries. What could go wrong?

Since you're a big company, you write a utility that can replace old package names with new ones in all project dependencies transitively during the build process. At the cost of build time, of course, but how else. But in the short term, this allows users to live partially with new, partially with old dependencies.

Then 5 years pass, and people continue to try to disable it in large (and not so large) projects. With your own code it's still manageable, but third-party dependencies abandoned for years in legacy lived with old dependencies and still live to this day, so without this utility your project basically doesn't build. And you spend seconds of time on each build for each developer every day, minutes, hours or days if you multiply and look at the distance. And rewriting these pieces - these are losses right here and now, the meaning of which is difficult to explain to business. Many choose to do nothing, "we'll remove it someday".

This is all to what point. We as a community rather perceive this as a given, but, if you think about it, Jetifier is perhaps the dumbest thing that has happened to Android development in its entire existence. Google just created problems for us out of nowhere. Was it necessary?

TIL Jetifier hasn't come out of beta yet.