Search for:

Einführung in Jetpack DataStore von Simona Stojanovic Android-Entwickler Januar 2022

Simona Stojanovic

Datenspeicher ist eine Jetpack-Datenspeicherbibliothek, die eine sichere und konsistente Möglichkeit bietet, kleine Datenmengen wie Einstellungen oder Anwendungsstatus zu speichern. Es basiert auf Kotlin Korutine und Flow die eine asynchrone Datenspeicherung ermöglichen. Es zielt darauf ab, zu ersetzen SharedPreferences, weil es sicher ist und nicht blockiert. Es bietet zwei verschiedene Implementierungen: Proto-DataStoredas typisierte Objekte speichert (unterstützt von Protokollpuffer) ich DataStore-Einstellungen, die Schlüssel/Wert-Paare speichert. Machen wir weiter, wenn wir es einfach benutzen DataStoregilt dies für beide Implementierungen, sofern nicht anders angegeben.

Wir werden uns diesen Blogbeitrag genauer ansehen Datenspeicher – wie es funktioniert, welche Implementierungen es bietet und ihre individuellen Anwendungsfälle. Wir werden uns auch ansehen, welche Vorteile und Verbesserungen es bringt SharedPreferences und warum sich der DataStore dadurch lohnt.

Schauen wir uns einen direkten Vergleich zwischen an SharedPreferences und Datenspeicher:

Vergleich von DataStore-Implementierungen mit SharedPreferences

Asynchrone API

Synchronbetrieb

Es ist jedoch möglich, DataStore und synchronen Betrieb mit ein wenig Hilfe des Corutin-Builders zu kombinieren, wie wir später sehen werden.

Fehlerbehandlung

Sicherheitsstufe

Datenkonsistenz

Migrationsunterstützung

Einstellungen Datenspeicher liest und schreibt datenbasiert Schlüssel/Wert-Paare, ohne vorherige Definition der Regelung. Auch wenn das vielleicht ähnlich klingt SharedPreferences, denken Sie an alle oben genannten Verbesserungen, die der DataStore mit sich bringt. Lassen Sie sich nicht von ihrem Teilen täuschen.”Einstellungen„Bei der Benennung – sie haben nichts gemeinsam und kommen von zwei völlig getrennten APIs.

Proto Datenspeicher Geschäfte getippte Objektemit Unterstützung Protocol Buffers, bietet Typsicherheit und eliminiert die Notwendigkeit von Schlüsseln. Protobuffs sind schneller, kleiner, einfacher und weniger mehrdeutig als XML und andere ähnliche Datenformate. Wenn Sie sie noch nie benutzt haben, haben Sie keine Angst! Dies ist sehr einfach zu lernen. Obwohl der Proto DataStore erfordert, dass Sie einen neuen Serialisierungsmechanismus erlernen, sind wir von seinen Vorteilen besonders überzeugt Typ Sicherheites ist es wert.

Vergleich von DataStore-Implementierungen

Bei der Wahl zwischen den beiden müssen Sie Folgendes berücksichtigen:

  • Wenn Sie mit arbeiten Schlüssel/Wert-Paare zum Lesen und Schreiben von Daten, die Sie möchten schnell migrieren von SharedPreferences mit minimalen Änderungen, während Sie immer noch die Vorteile von DataStore-Verbesserungen nutzen und sich ohne Typsicherheitsprüfungen sicher genug fühlen, können Sie mit gehen DataStore-Einstellungen
  • Wenn Sie Protokollpuffer für den zusätzlichen Vorteil einer verbesserten Lesbarkeit lernen möchten, wenn Ihre Daten Arbeit erfordern komplexere Klassenwie Aufzählungen oder Listen, und die Sie haben möchten vollständige Sicherheit unterstützen, während Sie dies tun, können Sie versuchen Proto-DataStore

Wenn Sie mit arbeiten müssen komplexe Datensätze größer als ein paar 10 KB ist, ist es sehr wahrscheinlich, dass Sie es brauchen werden Teilaktualisierungen oder Referenzintegrität zwischen verschiedenen Datentabellen. In diesem Fall sollte der Einsatz erwogen werden Zimmer.

Wenn Sie jedoch mit arbeiten kleiner und einfacher Datensätzewie z. B. Anwendungseinstellungen oder Status, und daher keine Teilaktualisierungen oder Referenzintegrität erfordern, sollten Sie auswählen Datenspeicher.

So wählen Sie zwischen DataStore und Room

Vereinfachen Sie Drag-and-Drop. Heute präsentieren wir DropHelper in… | von Paul Lammertsma Android-Entwickler Dezember 2021

Paul Lammertsma

Auf der grundlegendsten Ebene, ziehen und ablegen ist eine Bewegung, bei der der Benutzer ein Bild, eine Textzeichenfolge oder ein anderes Datenelement berühren und halten, es dann in eine andere Anwendung (oder an eine andere Stelle in derselben Anwendung) ziehen und loslassen kann, wo die Daten an einer neuen Stelle eingebettet werden. Diese Bewegung ist normalerweise ein langes Drücken auf den Touch- oder Klickbildschirmen und Ziehen und Ablegen bei Verwendung der Maus.

Einfaches Drag & Drop-Muster.

Obwohl Android Drag & Drop seit langem unterstützt (DragEvent wurde in Android 3.0, API-Level 11 eingeführt), erwies sich die Integration der vollständigen Unterstützung für die Handhabung von Gesten, Ereignissen, Berechtigungen und Rückrufen als komplex.

Wischen und Ablegen wird für die Formfaktoren großer Bildschirme immer relevanter: Tablets und Laptops, aber insbesondere zusammenklappbare, bei denen ein geteilter Bildschirm verwendet wird 7 mal öfter als bei herkömmlichen Telefonen. Die Möglichkeit, Daten von einer Anwendung in eine andere zu ziehen, ist eine natürliche Erfahrung für Benutzer, da sie mit ihren Anwendungen mehrere Aufgaben effizienter ausführen können geteilter Bildschirm oder Fenstermodus.

Beim Ziehen von Text aus EditTexts ursprünglich von der Plattform unterstützt wird, empfehlen wir dringend, dass Sie Benutzern erlauben, Bilder, Dateien oder Text aus anderen Komponenten Ihrer Anwendung zu ziehen. Ebenso wichtig ist, dass wir Sie ermutigen, Benutzern auch das Einfügen von Daten in Ihre Anwendungen zu erlauben.

Ziehen Sie von einer App in eine andere.

DropHelperkombiniert mit DragStartHelpererleichtert die Pflege von Bewegungsunterstützung, Rückrufen, Stil und perfekter Pixelausrichtung erheblich.

DragStartHelper

DragStartHelper ist eine Dienstprogrammklasse im Jetpack-Kern, die Bewegungen erkennt, die häufig zum Starten eines Ziehens verwendet werden, z. B. langes Drücken oder Klicken und Ziehen.

DropHelper

Neu DropHelper ist eine Serviceklasse, die sich um Zuhörer kümmert und Ziele ablehnt. Unbedingt verwenden addInnerEditTexts() während der Konstruktion DropHelper.Options um sicherzustellen, dass alle verschachtelt EditTexts innerhalb Ihres Zielsturzes gewinnen Sie stattdessen nicht den Fokus.

Mehr erfahren

Lesen Sie mehr in Ziehen Sie den Leitfaden per Drag-and-Drop zu Android-Entwicklerneintauchen großer Beispielbildschirm um zu sehen DropHelper in der Praxis, dann versuchen Sie es jetzt in der Alpha-Version Geben Sie uns eine Rückmeldung.

Danke für Florina, Ben ich Nick!!