Ich werde zuerst Ihre Argumente kommentieren und dann meine Meinung äußern:
1.Entfernen Sie den Boilerplate-Code - er entfernt einige, er verschiebt nur einige in der xml
oder es werden zusätzliche Klassen benötigt. Sie müssen also vorsichtig sein und die Verwendung der Datenbindung ausbalancieren.
2. Stärkere Lesbarkeit - hängt davon ab, ob Sie ein neuer Entwickler sind, dann fällt es Ihnen vielleicht leicht, es zu lernen, aber wenn Sie zuvor an Android gearbeitet haben, benötigen Sie zusätzliche Zeit, um es zu lernen.
3. Leistungsstark - Der Code hat mehr Leistung. Sie können alles, was Sie möchten, in Code implementieren. Stellen Sie sich das so vor: Alles, was Sie mithilfe der Datenbindung implementieren, hat ein Code-Äquivalent (es kann länger und mehr Code zum Schreiben sein), aber die Umkehrung ist ungültig.
4.Selbst schneller als findViewById
- ein Vergleich der Geschwindigkeit zwischen diesen beiden ist meiner Meinung nach nutzlos. Sie werden den Unterschied nie bemerken. Wenn Sie einen Unterschied feststellen, ist eine der Implementierungen falsch.
5.Auto generierte Klasse - es ist wahr, es wird die App-Größe erhöhen, aber wieder nur, wenn Sie Tonnen davon haben, wird es wichtig sein. Es ist wahr, dass auf der Android Dev-Website angegeben wird, dass es schlecht ist, Bibliotheken zu verwenden, die automatisch annotations
generierten Code erstellen oder zusätzlichen Code generieren.
6. Schwer zu debuggen - hängt, wie die Lesbarkeit, davon ab, was Sie gewohnt sind. Das Debuggen ist bei einigen Problemen in beiden Fällen schwierig, und Sie werden besser, wenn Sie debuggen und keine andere Bibliothek verwenden.
Das ist also meiner Meinung nach rein. Ich habe viele Apps mit unterschiedlichen Bibliotheken und Ansätzen entwickelt, und alle hatten Vor- und Nachteile, aber was ich gelernt habe: Alles ausbalancieren, nicht Tonnen von Bibliotheken verwenden, nicht verschwenden Zeit, Dinge zu implementieren, die bereits implementiert sind und gut funktionieren, nicht "alles entkoppeln", nicht alles "koppeln", nicht nur Code verwenden, nicht versuchen, alles "zu generieren".
Ich denke, es ist völlig falsch, und Sie können eine falsche Vorstellung bekommen, wenn Sie nach Vor- und Nachteilen für eine Bibliothek / Implementierung fragen, weil es normalerweise nicht unparteiisch ist, werden Sie viele Vorteile von jemandem bekommen, der das verwendet Bibliothek auf eine bestimmte Art und Weise und es hat funktioniert und andere werden Ihnen Nachteile geben, weil sie anders verwendet haben und es nicht funktioniert hat.
Abschließend denke ich, Sie sollten überprüfen, was die Bibliothek für Sie tun kann und was nicht, und entscheiden, ob es für Ihr Setup gut ist. Mit anderen Worten, Sie sollten entscheiden, ob eine Bibliothek für Sie gut ist, nicht für andere Personen;).
Update - 8. August 2018
Zunächst stehe ich immer noch zu meiner anfänglichen Schlussfolgerung: Ausgewogenheit ist der Schlüssel in solchen Situationen, aber in meinem Fall beschleunigt die Datenbindung den Entwicklungsprozess ein wenig und verbessert ihn auch. Hier sind einige neue Punkte, über die Sie alle nachdenken sollten.
Testen der Benutzeroberfläche - Mit der Datenbindung ist es viel einfacher, die Benutzeroberfläche zu testen, aber die Datenbindung reicht dafür nicht aus. Sie benötigen auch eine gute Architektur. Die Verwendung der von Google vorgeschlagenen Architektur zeigt die tatsächliche Leistungsfähigkeit der Datenbindung.
Die sichtbarsten Änderungen wurden für die Punkte 2 und 5 gegenüber meiner ursprünglichen Antwort bereitgestellt. Es war einfacher, den Code zu lesen, nachdem wir uns für die Datenbindung entschieden hatten , und das Wichtigste dabei ist: Wir als Team haben beschlossen, die Datenbindung zu verwenden, und danach haben wir erwartet, dass wir den größten Teil davon haben das triviale und grundlegende UI-Setup in der XML-Datei.
Für den Debugging-Teil, der hier etwas knifflig ist, muss Android Studio die Fehler erheblich verbessern und die Datenbindung automatisch vervollständigen. Die häufigsten Fehler treten jedoch nach den ersten 2-3 Vorkommen auf. Außerdem habe ich gelernt, dass ein "sauberes Projekt" von Zeit zu Zeit VIEL hilft.
- Ein weiterer Punkt, den Sie berücksichtigen müssen, ist die Projektkonfiguration für die Verwendung der Datenbindung. Derzeit unterstützt AS (3.1) standardmäßig die Datenbindung (setzen Sie einfach ein Flag in Grad) für Java, aber ich hatte einige Probleme mit Kotlin, nach ein bisschen Suche hier auf SO habe ich es geschafft, alles zu reparieren.
Als zweite Schlussfolgerung (aus meinem ursprünglichen Beitrag), wenn Sie können und die Projektfrist / Anforderungen / etc es Ihnen ermöglicht, Datenbindung zu versuchen, wird es sich lohnen (es sei denn, Sie machen einige wirklich dumme Sachen :)).