Je vais d'abord commenter vos arguments, puis je donnerai mon avis :
1. supprimer le code passe-partout - il en supprimera une partie, il en déplacera simplement une autre dans le système. xml
ou cela nécessitera des classes supplémentaires. Vous devez donc être prudent et équilibrer l'utilisation de la liaison de données.
2. une meilleure lisibilité - si vous êtes un nouveau développeur, vous pouvez l'apprendre facilement, mais si vous avez déjà travaillé sur Android, vous aurez besoin de plus de temps pour l'apprendre.
3. puissant - le code a plus de pouvoir, vous pouvez implémenter tout ce que vous voulez dans le code. Pensez-y de cette façon, tout ce que vous implémentez en utilisant la liaison de données a un équivalent en code (cela peut être plus long et plus de code à écrire), mais l'inverse n'est pas valable.
4. encore plus rapide que findViewById
- comparer la vitesse entre ces deux-là, à mon avis est inutile, vous ne remarquerez jamais la différence, si vous voyez une différence, alors l'une des implémentations est mauvaise.
Classe générée automatiquement - il est vrai que cela augmente la taille de l'application, mais encore une fois, cela n'a d'importance que si vous en avez des tonnes. Il est vrai que sur le site web d'Android dev, ils déclarent qu'il est plutôt mauvais d'utiliser des bibliothèques qui créent du code autogénéré ou de la annotations
qui générera du code supplémentaire.
6. difficile à déboguer - cela dépend, comme la lisibilité, de ce à quoi vous êtes habitué, mais le débogage est difficile dans tous les cas pour certains problèmes, et vous vous améliorerez en déboguant et non en utilisant une autre bibliothèque.
J'ai développé de nombreuses applications en utilisant différentes bibliothèques et différentes approches, et elles avaient toutes des avantages et des inconvénients, mais ce que j'ai appris : équilibrez tout, n'utilisez pas des tonnes de bibliothèques, ne perdez pas de temps à implémenter des choses qui sont déjà implémentées et qui fonctionnent bien, ne "découplez pas tout", ne "couplez pas" tout, n'utilisez pas uniquement du code, n'essayez pas de tout "générer".
Je pense que c'est une erreur, et que vous pouvez vous faire une idée fausse, si vous demandez le "pour et le contre" d'une bibliothèque ou d'une implémentation, parce qu'en général, ce ne sera pas impartial, vous obtiendrez beaucoup de "pour" de la part de quelqu'un qui a utilisé la bibliothèque d'une manière spécifique et qui a fonctionné, et d'autres vous donneront des "contre" parce qu'ils ont utilisé une autre bibliothèque et que cela n'a pas fonctionné.
En conclusion, je pense que vous devriez vérifier ce que la bibliothèque peut faire pour vous et ce qu'elle ne peut pas faire pour vous et décider si elle convient à votre situation. En d'autres termes, c'est à vous de décider si une bibliothèque est bonne pour vous, pas aux autres ;).
Mise à jour - 8 août 2018
Tout d'abord, je reste sur ma conclusion initiale, l'équilibre est la clé dans ce genre de situations, mais dans mon cas, le data-binding a accéléré un peu le processus de développement et l'a également amélioré. Voici quelques nouveaux points auxquels vous devriez tous réfléchir.
-
Tester l'interface utilisateur - avec la liaison de données, il est beaucoup plus facile de tester l'interface utilisateur, mais la liaison de données n'est pas suffisante pour cela, vous avez également besoin d'une bonne architecture et l'utilisation de l'architecture suggérée par Google montrera la puissance réelle de la liaison de données.
-
Les changements les plus visibles ont été apportés aux points 2 et 5 de ma réponse initiale. C'était en quelque sorte plus facile de lire le code après que nous ayons décidé d'utiliser la liaison de données, et la chose la plus importante ici est que nous avons décidé, en tant qu'équipe, d'utiliser la liaison de données et qu'après cela, nous nous attendions à avoir la plupart des configurations triviales et de base de l'interface utilisateur dans le fichier XML.
Pour la partie débogage, c'est un peu délicat, Android Studio a beaucoup à améliorer sur les erreurs et l'autocomplétion pour la liaison de données, mais les erreurs les plus courantes, vous les aurez après les 2-3 premières occurrences. J'ai aussi appris qu'une forme de "projet propre" de temps en temps, aide BEAUCOUP.
- Un autre point que vous devrez prendre en considération est la configuration du projet pour utiliser la liaison de données, actuellement AS (3.1) supporte par défaut la liaison de données (il suffit de mettre un drapeau dans graddle) pour Java, mais j'ai eu quelques problèmes avec Kotlin, après un peu de recherche ici sur SO, j'ai réussi à tout régler.
Comme deuxième conclusion (de mon post original), si vous pouvez et si le délai/les exigences/etc du projet vous permettent d'essayer le data-binding, allez-y, ça vaudra le coup (à moins que vous ne fassiez des choses vraiment stupides :)) ).
4 votes
J'ai trouvé ce genre de discussions vraiment agréable à apprendre, comment se fait-il qu'il n'ait pas été étiqueté comme une discussion qui exprime une opinion, donc qui n'est pas digne de SO ? Une bonne occasion d'apprendre ce poste en effet
1 votes
Veuillez lire cet article qui explique les inconvénients de l'utilisation de la bibliothèque databinding. Il faut faire attention à la quantité de logique que l'on veut mettre dans le fichier xml. Lien vers l'article medium.com/@hellotimmutton/
0 votes
Bonne question en effet.