Skip to content
CAI
Produce a survey ↗Verify a survey

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

CAI band scale
CAI trend line

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

CAI lens gauges

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.

Survey a repository

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.
CAI link cards