Slack

It’s a non-transitive R class world

Feb 1, 2023
It’s a non-transitive R class world
SummaryAI, from the source post

This post details the migration of Slack's Android codebase to use non-transitive R classes. It outlines the challenges of referencing resources, establishes conventions for Kotlin (import aliases) and Java (fully-qualified names), and describes a chosen migration strategy that involved find-and-replace operations and scripting due to the scale of the codebase. It also covers developer experience enhancements like live templates and custom lint checks for convention enforcement. The migration yielded a ~14% improvement in incremental build times and an ~8.5% reduction in APK/DEX size.

More from the Android Non-Transitive R Class Migration trail