TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.13K subscribers
Post #155 2.62K
​​ButterKnife или Data binding?
#разработка #библиотеки

Сегодня на работе спорили о том, что лучше использовать: ButterKnife или Data binding?

Помню, что когда ещё не было ButterKnife, то приходилось писать findViewById, после чего кастовать найденную View к нужной. Было слишком много лишнего кода. Например, если в вашей Activity есть 10 View, то для использования их нужно было писать 20 строк кода с findViewById. С появлением в проектах ButterKnife число строк сократилось вдвое, и теперь нужно было просто написать @BindView(R.id.textView) TextView text.

Не так давно появился Data Binding. Для использования нужно немного модифицировать xml-файл разметки и написать в Activity ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);, после чего у вас появляется доступ к вашему layout напрямую: binding.textView. Количество View не играет никакой роли при использовании Data Binding. Ведь строк кода всегда остается только 2!

Какие плюсы у ButterKnife? Например, есть другие аннотации, которые упрощают работу, например: @OnClick, @OnItemSelected, @BindColor. Также можно примененить аннотации на несколько View.

В Data Binding же мы получаем мощный инструмент для работы с адаптерами в RecyclerView, возможность делать кастомные атрибуты и много других интересных и удобных инструментов.

С появлением Kotlin появились kotlin-android-extensions, которые ещё больше упростили базовую работу с View.

Так уж повелось, то в Java-проектах я использую ButterKnife, а в новых, написанных на Kotlin проектах — Kotlin Extensions. С Binding сталкивался на ранних этапах его появления, но уверен, что это отличный инструмент.

А что больше нравится вам?
🔴 — ButterKnife;
🔵 — Data Binding;
⚫️ — Kotlin Extensions.
More from @android_live
  1. Oct 6, 2026Git --delete-merged На днях узнал про любопытную команду в Git — --delete-merged . Суть пр…
  2. Oct 5, 2026Почему Android-эмулятор жрёт 8 ГБ? На днях попался репозиторий с CLI-тулзой, которая обеща…
  3. Sep 29, 2026Post #1130
  4. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  5. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  6. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →