К вашему сведению: для просмотра представлений рекомендуется связывание данных, а не синтетическое.
Комментарий DA for Android от Google на Reddit
Привет! Защитник разработчиков для Android в Google здесь!
Я хотел добавить сюда немного предыстории. Расширения Kotlin с синтетическими представлениями никогда преднамеренно не «рекомендуются», хотя это не следует воспринимать как рекомендацию не использовать их. Если они работают на вас, не стесняйтесь и дальше использовать их в своем приложении!
Мы отошли от них (например, мы не обучаем их в курсе Udacity), потому что они открывают глобальное пространство имен идентификаторов, не связанных с макетом, который на самом деле раздувается без проверок на недопустимые поиски, являются только Kotlin и не 'не допускает наличия NULL, если представления присутствуют только в некоторой конфигурации. Все вместе эти проблемы приводят к увеличению числа сбоев в работе приложений Android.
С другой стороны, они предлагают легкий API, который может помочь упростить просмотр представлений. В этой области также стоит взглянуть на привязку данных, которая также выполняет автоматический поиск представлений, а также интегрируется с LiveData для автоматического обновления ваших представлений при изменении данных.
Сегодня в этой области есть несколько эффективных вариантов:
Привязка данных - это рекомендация как для просмотра представлений, так и для привязки, но она добавляет немного накладных расходов по сравнению с Android Kotlin Extensions. Стоит посмотреть, подходит ли это для вашего приложения. Привязка данных также позволяет наблюдать за LiveData для автоматической привязки представлений при изменении данных. По сравнению с Kotlin Extensions, он добавляет во время компиляции проверку просмотров и безопасность типов. Расширения Android Kotlin Extensions официально не рекомендуются (что не то же самое, что рекомендация против). У него есть проблемы, упомянутые выше, поэтому для нашего кода мы их не используем. Butter Knife - еще одно решение, которое чрезвычайно популярно и работает как для Kotlin, так и для языка программирования Java. Читая комментарии здесь, там ' много разработчиков, которым очень повезло с Kotlin Extensions. Это здорово - и мы будем помнить об этом, когда будем искать пути дальнейшего улучшения наших API. Если вы еще не рассматривали привязку данных, обязательно попробуйте.
Кстати, наше внутреннее руководство по стилю кода не предназначено для непосредственного применения вне нашей кодовой базы. Например, мы используем mPrefixVariables, но нет причин, по которым каждое приложение должно следовать этому стилю.