#разработка #библиотеки
Сегодня на работе спорили о том, что лучше использовать: 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.