JakeWharton/butterknife
Butter Knife is an Android library that simplifies view and resource binding through annotations, supporting both compile-time code generation and a reflection-based runtime implementation. The system provides a comprehensive set of annotations for binding views, handling UI events, and accessing various Android resources. It includes a Gradle plugin that automatically generates an `R2` class for resource references and integrates with modern Android development practices like AndroidX. The library also features a lint rule to enforce correct usage of generated resources and offers a reflection-based backend for faster development cycles.
58.9
Adequate · 6 August 2026
5.9k
lines of production code
Java
primary language
1
bus factor · 101 authors in all
3
measurements over time
How it got here
2013–2014 · Gradle migration and runtime binding
The project underwent a significant infrastructure overhaul, migrating the build system from Maven to Gradle and updating the library's core mechanism from compile-time annotation processing to runtime reflection-based binding. This period also established the modern development environment with IDE configuration guides and automated deployment scripts.
7 changes
2015–2016 · Reflection backend and AndroidX migration
This period focused on introducing a reflection-based binding backend to support incremental compilation and library projects, alongside a comprehensive refactor of the compiler's internal immutable models. The team also migrated the project to AndroidX and Java 8, while adding lint checks and integration tests to ensure the new features worked correctly.
11 changes
2017–2019 · AndroidX migration and test coverage
This period focused on modernizing the Butter Knife codebase for AndroidX compatibility and updating the Gradle plugin to support feature variants. Significant effort was also directed toward expanding test coverage, including the introduction of a reflection-based development module and comprehensive integration tests for binding and event handling.
10 changes
Survey your own repository
JakeWharton/butterknife was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.
About this page
- The description of this project is derived from its own commit history, not from its README.
- The score is its highest published measurement, taken on 6 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit fcdebedf32 — the exact code this score is about.
- Scored under rubric rubric-2026.08.19. Score the same commit under that rubric and you get the same number.