Zu Ihrer Information: Für die Ansichtssuche wird eine Datenbindung gegenüber einer synthetischen empfohlen.
Kommentar von einem DA für Android von Google auf Reddit
Hallo! Entwickleranwalt für Android bei Google hier!
Ich wollte hier ein bisschen Hintergrund hinzufügen. Kotlin-Erweiterungen mit synthetischen Ansichten wurden nie absichtlich "empfohlen", obwohl dies nicht als Empfehlung verstanden werden sollte, sie nicht zu verwenden. Wenn sie für Sie arbeiten, können Sie sie weiterhin in Ihrer App verwenden!
Wir haben uns von ihnen entfernt (z. B. unterrichten wir sie nicht im Udacity-Kurs), weil sie einen globalen Namespace von IDs verfügbar machen, der nicht mit dem Layout zusammenhängt, das tatsächlich aufgeblasen ist, ohne dass gegen ungültige Suchvorgänge geprüft wird, sondern nur Kotlin und Don Die Nullfähigkeit wird nicht angezeigt, wenn Ansichten nur in einer bestimmten Konfiguration vorhanden sind. Insgesamt führen diese Probleme dazu, dass die API die Anzahl der Abstürze für Android-Apps erhöht.
Auf der anderen Seite bieten sie eine kompakte API, die die Suche nach Ansichten vereinfachen kann. In diesem Bereich lohnt es sich auch, einen Blick auf die Datenbindung zu werfen, die auch automatische Ansichtssuchen durchführt und in LiveData integriert ist, um Ihre Ansichten automatisch zu aktualisieren, wenn sich Daten ändern.
Heute gibt es in diesem Bereich einige Optionen, die funktionieren:
Die Datenbindung ist die Empfehlung für die Ansichtssuche und -bindung, erhöht jedoch im Vergleich zu Android Kotlin Extensions den Aufwand. Es lohnt sich, einen Blick darauf zu werfen, ob dies gut zu Ihrer App passt. Mit der Datenbindung können Sie auch LiveData beobachten, um Ansichten automatisch zu binden, wenn sich Daten ändern. Im Vergleich zu Kotlin-Erweiterungen wird die Überprüfung der Kompilierungszeit von Ansichtssuchen und Typensicherheit hinzugefügt. Android Kotlin Extensions wird nicht offiziell empfohlen (was nicht mit der Empfehlung gegen identisch ist). Es kommt mit den oben genannten Problemen, so dass wir sie für unseren Code nicht verwenden. Butter Knife ist eine weitere äußerst beliebte Lösung, die sowohl für Kotlin als auch für die Java-Programmiersprache funktioniert. Lesen Sie die Kommentare hier dort durch ' Viele Entwickler, die viel Glück mit Kotlin Extensions haben. Das ist großartig - und etwas, das wir berücksichtigen werden, wenn wir nach Möglichkeiten suchen, unsere APIs weiter zu verbessern. Wenn Sie sich Data Binding noch nicht angesehen haben, probieren Sie es auf jeden Fall aus.
Abgesehen davon ist unser interner Code-Styleguide nicht dazu gedacht, direkt außerhalb unserer Codebasis angewendet zu werden. Zum Beispiel verwenden wir mPrefixVariables, aber es gibt keinen Grund, warum jede App diesem Stil folgen sollte.