ButterKnife или Data binding?
#разработка #библиотеки
Сегодня на работе спорили о том, что лучше использовать: ButterKnife или Data binding?
Помню, что когда ещё не было ButterKnife, то приходилось писать
Не так давно появился Data Binding. Для использования нужно немного модифицировать xml-файл разметки и написать в Activity
Какие плюсы у ButterKnife? Например, есть другие аннотации, которые упрощают работу, например:
В Data Binding же мы получаем мощный инструмент для работы с адаптерами в
С появлением Kotlin появились
Так уж повелось, то в Java-проектах я использую ButterKnife, а в новых, написанных на Kotlin проектах — Kotlin Extensions. С Binding сталкивался на ранних этапах его появления, но уверен, что это отличный инструмент.
А что больше нравится вам?
🔴 — ButterKnife;
🔵 — Data Binding;
⚫️ — Kotlin Extensions.
#разработка #библиотеки
Сегодня на работе спорили о том, что лучше использовать: 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.