Les Extensions Kotlin pour Android ne se limitent pas uniquement à la liaison de vues. Elles contiennent également d'autres fonctionnalités. Mais je suppose que vous parlez des fonctionnalités de liaison/mise en cache des vues des Extensions Kotlin pour Android et vous vous demandez si nous avons toujours besoin de la liaison de données, puisque nous nous sommes déjà débarrassés des appels à findViewById avec les propriétés synthétiques de Kotlin. C'était la question que je me suis posée et ma conclusion est que oui, la liaison de données vaut toujours la peine d'être utilisée.
À partir de la documentation officielle:
La bibliothèque de liaison de données crée un champ immuable dans la classe de liaison pour chaque vue ayant un ID dans la mise en page... La bibliothèque extrait les vues incluant les IDs de la hiérarchie des vues en une seule passe. Ce mécanisme peut être plus rapide que d'appeler la méthode findViewById() pour chaque vue dans la mise en page.
Ainsi, la liaison de données ne fait pas appel à findViewById sur les vues une par une. Les classes synthétiques de Kotlin, d'autre part, appellent toujours findViewById sur les vues en interne, mais ne le font qu'une seule fois pour chaque vue et mettent en cache la référence de la vue pour les appels suivants. (Voici un article à ce sujet)
En outre, la liaison de données offre bien plus que simplement la mise en cache des vues. Vous pouvez utiliser des balises de données pour transmettre des données à la mise en œuvre de liaison et les déclarer dans votre XML, au lieu de les définir de manière programmatique. De cette manière, vous pouvez vous débarrasser du code redondant que vous utilisez pour peupler les données, comme les "setText", "setImageResource", etc. Vous pouvez définir des écouteurs d'événements depuis le XML en utilisant la liaison de données. Vous pouvez également créer vos propres attributs en utilisant des adaptateurs de liaison personnalisés. Lorsqu'elle est utilisée à sa pleine puissance, elle peut réduire significativement votre code Java/Kotlin.
Édition: Il semble que l'équipe Google Android déconseille l'utilisation des propriétés synthétiques de Kotlin. Cet article résume la discussion autour de ce problème. Et vous pouvez voir dans le nouveau cours Udacity préparé par Google qu'ils utilisent la liaison de données comme pratique recommandée.
Édition2: Si vous n'aimez pas l'idée de "mettre la logique métier dans votre XML", si vous n'êtes pas intéressé par le paramétrage ou la récupération de données à partir du XML, si vous souhaitez simplement éviter l'utilisation de findViewById de manière sûre et efficace, alors vous pouvez utiliser la bibliothèque ViewDataBinding à la place. C'est une version simplifiée de la bibliothèque de liaison de données. Elle ne vous permet pas de définir des données à partir de votre XML, mais lie vos vues de manière sûre et efficace.
0 votes
Vraiment bon article à ce sujet : medium.com/google-developer-experts/…