Apps-Grundlage

Interaktive Oberflächen mit Remote Compose unterstützen

Lautsprecher

Info

Über den Vortrag

Mit Remote Compose wird eine neue Möglichkeit eingeführt, ausdrucksstarke und interaktive Benutzeroberflächen auf Remote-Oberflächen wie Widgets zu projizieren. Durch die Serialisierung von Layouts in kompakte binäre Nutzlasten entkoppelt RemoteCompose die Benutzeroberfläche von der Hostausführung und bietet so erhebliche Vorteile.

Zu den wichtigsten Vorteilen gehören die Interaktivität am Edge, die ein leistungsstarkes Rendering durch lokale Ausführung auf dem Remote-Gerät ermöglicht, die fluide Skalierung, die es ermöglicht, dass Benutzeroberflächen über verschiedene Formfaktoren hinweg durch Remote-Komponentenbewertungen neu angeordnet werden, und ein einheitlicher Entwickler-Workflow, der die Notwendigkeit plattformspezifischer Remote-UI-Frameworks durch vertraute Jetpack Compose APIs überflüssig macht.

In dieser Session werden diese Vorteile erläutert und es werden Beispiele aus der Praxis gezeigt, darunter moderne Wear OS-Widgets und der Wear-Workout-Tracker in Runkeeper, der auf einen Blick alle wichtigen Informationen liefert.

Zusammenfassung

  • Remote Compose verpackt die Benutzeroberfläche in ein kompaktes binäres Dokument, anstatt eine App- oder Bildschirmkopie über Prozessgrenzen hinweg zu senden.
  • Entwickler erstellen Dokumente mit Compose APIs oder JSON. Android Studio bietet Live-Vorschauen beim Schreiben von Composables.
  • Geladene Dokumente werden direkt im Player ausgeführt. Sie verarbeiten Ereignisse wie Größenänderungen und Berührungen, ohne dass Hin- und Rückflüge zu seinem Ersteller erforderlich sind.
  • Integrierte Optimierungen wie Komponentenvorlagen und Dokumentkomprimierung reduzieren die Nutzlast auf wenige Kilobyte.
  • Jetpack Glance gibt Remote Compose-Dokumente für Launcher-Widgets und Wear OS-Widgets aus. Dadurch wird die Benutzeroberfläche von der App-Ausführung entkoppelt, um den Akku zu schonen.

Ressourcen

Gemini Notebook

Themen

  • remote-compose
  • jetpack-compose
  • android-widgets
  • wear-os
  • ui-framework

Transkript

Einführung und Übersicht zu Remote-Oberflächen

  • Hallo zusammen!

  • Mein Name ist Nicolas Roard und ich bin der Tech Lead des Remote Compose-Projekts.

  • Ich bin John Hoford.

  • Ich bin Entwickler für Remote Compose.

  • Und ich bin John Zoeller und arbeite im Bereich Developer Relations für Wear OS.

  • Dann legen wir mal los.

  • Zuerst gebe ich Ihnen einen kurzen Überblick darüber, welche Art von Problem wir mit Remote Compose lösen möchten.

  • Wenn Sie an die Benutzeroberfläche von Android denken, denken Sie wahrscheinlich an die Benutzeroberfläche als Teil Ihrer Anwendung und Ihres Anwendungsprozesses, oder?

  • Es gibt viele verschiedene Orte, an die Sie Ihre Benutzeroberfläche manchmal senden möchten, z. B. an eine Remote-Oberfläche.

  • Mit Remote-Oberfläche meinen wir also so etwas wie diese Beispiele, wie Zifferblattstile, Widgets, sogar Ihre eigene App oder eine andere App.

  • Das sind alles Beispiele für Remote-Oberflächen.

  • Irgendwo anders, z. B. in Ihrer App oder auf einem Server, wird also festgelegt, was an diese Remote-Oberfläche gesendet werden soll.

  • Und…

  • Was ist mit meinem Lautsprecher?

  • Zwischen diesen beiden besteht im Wesentlichen ein Abstand.

  • Diese Entfernung kann buchstäblich eine tatsächliche Entfernung sein, aber auch eine Netzwerkverbindung.

  • Es könnte auch nur eine Prozessgrenze sein.

  • Sie könnten dasselbe Gerät verwenden.

  • Aber was auch immer es ist, es hat seinen Preis.

  • Die einfachste Möglichkeit, diese Benutzeroberfläche zu senden, besteht darin, einen Screenshot zu erstellen und diesen zu senden.

  • Das Problem ist, dass das nicht besonders schnell geht.

  • Bei Remote Compose senden wir stattdessen ein Dokument, das diese Benutzeroberfläche darstellt.

  • Denken Sie daran, dass es viele Vorteile hat, klein zu sein.

  • Das ist wichtig.

  • Wir haben das auf dem ersten Pixel gesehen, das Sie gesendet haben, aber das gilt eigentlich für alle Arten von Updates, die Sie auf dieser Oberfläche vornehmen möchten, oder?

  • Du hast die Hin- und Rückfahrt.

  • Sie erhalten also etwas auf dieser Remote-Oberfläche, z. B. ein Ereignis, einen Klick oder eine Berührung.

  • Sie müssen sich an den Ersteller wenden, um eine neue Version zu erhalten.

  • Und das ist nicht gut.

  • Das ist also in vielerlei Hinsicht das, was wir mit Remote Compose lösen möchten.

Remote Compose-Architektur und Dokumentstruktur

  • Wir haben gesehen, dass das Dokument gesendet wurde.

  • Neben dem Dokument gibt es noch ein paar andere Bereiche, die sehr wichtig sind.

  • Eine ist, wie Sie das Dokument erstellen.

  • Und der zweite ist, wie Sie es spielen.

  • Ich habe erwähnt, dass wir ein Dokument erstellen.

  • Wir senden keine Bildschirmkopie und auch keine Anwendung.

  • Wir haben drei verschiedene Möglichkeiten, wie Sie dieses Dokument erstellen können.

  • Erstens eine Compose API, zweitens eine prozedurale Kotlin API, KMP, und drittens ein JSON-Format.

  • Sie geben alle dieselben Byte aus.

  • Wir stellen also eine Reihe von Tools zum Erstellen dieser Dokumente bereit. Mit der Compose API können wir die vorhandenen Tools in Android Studio nutzen.

  • Sie können sich beispielsweise in der Vorschau direkt in der IDE live ansehen, was Sie entwickeln.

  • Wir arbeiten aber auch an neuen leistungsstarken Tools wie einer Dokumentprüfung.

  • Sehen wir uns das Dokument einmal genauer an.

  • Im Grunde ist es eine Liste von Vorgängen, die in einer kompakten binären Darstellung codiert sind. Diese Vorgänge beschreiben eine eigenständige Benutzeroberfläche, die an diese Remote-Oberfläche gesendet werden kann.

  • Ein sehr wichtiges Merkmal dieser Dokumente ist also, dass sie klein sind.

  • Und wie wir gesehen haben, ist klein gut.

  • Normalerweise sprechen wir also von ein paar Kilobyte, oder?

  • Aber selbst bei komplexeren Benutzeroberflächen mit einem sehr anpassungsfähigen Layout sprechen wir immer noch von ein paar Dutzend Kilobyte, oder?

  • Und wir packen alle Assets in dieses Dokument.

  • Wenn Sie also darüber nachdenken, ist das Einzige, was wirklich Platz im Dokument einnehmen kann, das Verpacken von Bitmaps.

  • Das sollten Sie bedenken.

  • Das ist schließlich der Grund, warum wir ein Dokument und keine Bildschirmkopie senden.

  • Wenn wir darüber sprechen, dass es wichtig ist, klein zu sein, geht es nicht nur um die Kommunikation.

  • Das ist ein zentraler Grenzfall der Philosophie hinter Remote Compose.

  • Wie wir gesehen haben, hat dies offensichtlich Auswirkungen auf die Zeit, die benötigt wird, um das erste Pixel auf dem Bildschirm anzuzeigen, aber hoppla, tut mir leid.

  • Das bedeutet auch, dass wir bei gleicher Kapazität der Oberfläche mehr Dokumente als sonst verwenden können, während wir gleichzeitig effizient bleiben.

  • Das ist etwas, das wir bei der Unterstützung von Widgets nutzen werden.

  • Die Player selbst sind in der Regel auch ziemlich klein und haben nur sehr wenige Abhängigkeiten.

  • Und da sie klein sind und nur wenige Abhängigkeiten haben, können wir die Reichweite erhöhen, sodass Remote Compose-Dokumente tatsächlich überall wiedergegeben werden können.

  • Das ist besonders wichtig für Plattformen mit eingeschränkten Ressourcen, wie Sie sehen werden.

  • Ich habe viel über den Transport und die Entfernung gesprochen, aber Remote Compose selbst befasst sich nicht wirklich mit dem Transport.

  • Das liegt ganz bei dir.

  • Wir verpacken all das in einen Byte-Zwischenspeicher, den Sie dann mit der entsprechenden Methode an die Remote-Oberfläche senden können.

  • Für Widgets stellen wir Ihnen einen Connector zur Verfügung.

  • Generell ist es aber nützlich, sich zu merken, dass Sie für den Transport verantwortlich sind.

  • Sobald ein Player dieses Dokument empfängt, kann er die Liste der Vorgänge extrahieren und in Zeichenbefehle, Layoutbäume und Ausdrücke umwandeln. All das zusammen kann eine wirklich reichhaltige Nutzererfahrung schaffen.

  • Sie können also selbst entscheiden, wie Sie das Dokument übertragen möchten. Das bedeutet, dass Sie Remote Compose in vielen Szenarien als Tool wiederverwenden können, an die wir vielleicht gar nicht denken, oder?

  • Sobald das Dokument von einem Player geladen wurde, wird es automatisch ausgeführt.

  • Und das ist im Grunde die ganze Idee.

  • Wir möchten, dass das Dokument eine Benutzeroberfläche erstellt, die einigermaßen autonom ist und nicht auf den Ersteller zurückgreifen muss, oder?

  • Und all das zusammen kann unterstützt werden, z. B. Größenänderung, Scrollen, Touch-Events, Entscheidung, Komponenten ein- oder auszublenden, Animationen, einige Touch-Events und einige Touch-Handlings. All das kann im Dokument erledigt werden, ohne dass man zum Player zurückkehren muss.

  • Und wenn Sie zurückgehen müssen, tut mir leid, zur Erstellung, können Sie tatsächlich eine Aktion anfordern, um zu sagen: „Bitte geben Sie mir ein neues Dokument.“

  • Wir bieten drei offizielle Player, die hauptsächlich über die AndroidX-Bibliotheken in Remote Compose verfügbar sind.

  • Einer ist ein Compose-Player, den Sie in Ihrer Compose-Anwendung verwenden können.

  • Wir haben auch einen View-Player, falls Sie noch View verwenden.

  • Außerdem gibt es eine RemoteViews-Implementierung, die seit API 36 auf der Android-Plattform verfügbar ist. Damit können Sie Android-Widgets erstellen, die mit Remote Compose im Launcher ausgeführt werden.

  • Wir haben auch einige experimentelle Player, falls Sie interessiert sind, einige C++-Player, die auf Skia, TypeScript und sogar Compose Multiplatform laufen.

  • Die Idee ist also, dass dieselbe Technologie, die Sie verwenden, im Wesentlichen zum Rendern auf vielen verschiedenen Oberflächen und Plattformen verwendet werden kann.

  • Zusammenfassend lässt sich sagen, dass die Entfernung, von der ich gesprochen habe, immer noch vorhanden ist, wir aber versuchen, sie nur dann zu berücksichtigen, wenn es wirklich darauf ankommt.

  • Ja.

Rendering-Funktionen, Komponenten und Interaktion

  • Sehen wir uns also die Funktionen an, die Sie in einem Remote Compose-Dokument erhalten.

  • Die Grundlage ist ein Canvas, der alle Funktionen eines Android-Canvas bietet.

  • Aber mit ein paar zusätzlichen APIs.

  • Eine Besonderheit ist, dass alle Gleitkommazahlen, die Sie in diesem Android-Canvas haben, durch Ausdrücke ersetzt werden können.

  • So können Sie Animationen erstellen, wie Sie hier sehen, dynamische Skalierung und flexible Layouts.

  • Es gibt viele verschiedene Möglichkeiten, sie zu nutzen.

  • Weitere Informationen zu Ausdrücken

  • Sie haben eine Vielzahl von Operatoren aus der normalen Mathematik, Trigonometrie, Array-Zugriff und Spline-Interpolation.

  • Und das Tolle ist, dass jeder Wert, der sich ändert, animiert werden kann. Sie können also die Änderung des Zustands eines beliebigen Werts animieren.

  • In dieser Zeichnung wählt jedes Pendel eine andere Art von Animation aus. Alle diese Animationen sind in Remote Compose verfügbar.

  • Darüber hinaus gibt es die grundlegenden Komponenten, Compose-Elemente, die Sie kennen.

  • Es wird eine sehr vertraute API erzeugt, mit Box, Zeile, Spalte und so weiter.

  • Darüber hinaus gibt es adaptive Komponenten.

  • Ein Vorteil ist, dass Sie zu diesem Zeitpunkt keine Kontrolle über Ihr Dokument haben. Diese können also Objekte verarbeiten, die verschwinden, erscheinen, verschwinden und wieder auftauchen, weil die Größe geändert wird usw., ohne dass Sie zur Quelle des Dokuments zurückkehren müssen.

  • Und dann gibt es noch die Komponentenanimation.

  • Alle Änderungen können animiert werden. Wenn also etwas verschwindet, können Sie es animieren.

  • Sie können auch eigene benutzerdefinierte Animationen erstellen.

  • In diesem Fall sehen Sie, dass einige von ihnen Shader und alle möglichen anderen Dinge verwenden.

  • Wir können auch mit den Bildern interagieren, es sind also nicht nur schöne Bilder.

  • Sie können auf Elemente klicken, Touch-Events auslösen, scrollen usw.

  • Auch die Barrierefreiheit ist wichtig. Deshalb sind alle Accessibility APIs vorhanden.

  • Hier seht ihr, dass ich eine komplette Stoppuhr mit interessanten Benutzeroberflächen erstelle. All das passiert auf der Spielerseite.

  • Alles ist im Dokument enthalten.

  • Alles, was Sie sehen, wird nicht an den Server zurückgegeben.

  • Wenn Sie es in einer Anwendung erstellt haben, sind die blauen Teile in diesem Fall eine Anwendung und die schwarzen Teile ein Remote Compose-Dokument.

  • Sie können sogar zwischen den beiden interagieren.

  • Hier erhöhe ich die Werte und Sie sehen, dass sie von der Anwendung, die wir als Host bezeichnen, empfangen werden. Ich kann auch einen Schieberegler bewegen, um die Werte im Dokument zu ändern.

  • Ich kann also beide Richtungen einschlagen.

Benutzeroberfläche mit Compose APIs und Ausdrücken erstellen

  • Sehen wir uns also an, wie Sie ein solches Dokument erstellen.

  • Es gibt drei APIs: Compose, Kotlin und JSON.

  • Die Compose API kennen Sie ja bereits.

  • Es gibt ein paar Besonderheiten, die wir uns im Detail ansehen werden.

  • Die Kotlin API ist sehr prozedural.

  • Sie haben einen Befehl im Dokument, also ist es eine Eins-zu-eins-Beziehung.

  • Das JSON-Format ist eine JSON-Syntax, die Sie mit unseren Konvertern in Remote Compose umwandeln können.

  • Es ist auch nützlich, wenn Sie mit einem LLM arbeiten, da es die Dokumente lesen und schreiben kann.

  • Sehen wir uns also Compose an und erstellen etwas.

  • In diesem Fall sehen Sie, dass es sich um ein Composable und ein Remote-Composable handelt.

  • Wir haben eine Leinwand – keine Leinwand, sondern eine Remote-Leinwand und Remote-Modifikatoren, aber die Modifikatoren selbst sind irgendwie die gleichen, die Sie kennen und lieben.

  • Alle Befehle darin generieren Remote-Befehle für das Remote-Compose-Dokument.

  • In diesem Fall zeichnen wir einen Kreis und fügen dann einige Gleitkommazahlen und Ausdrücke hinzu, die die Zeit verwenden.

  • Wenn ich die Animation aktiviere, sehen Sie eine Live-Vorschau aus Android Studio, die tatsächlich live ausgeführt wird.

  • Sie sehen diese Ausdrücke dort.

  • Sehen wir uns an, was es damit auf sich hat und wie es funktioniert.

  • Links sehen Sie eine Art Tabelle.

  • Es ist eine Tabelle mit den Werten in Gleitkommazahlen.

  • Außerdem gibt es einen Abhängigkeitsbaum, damit Sie wissen, wie die einzelnen Elemente miteinander verbunden sind.

  • Wenn sich etwas ändert, werden die abhängigen Elemente als „dirty“ markiert, um bereinigt und angepasst zu werden.

  • Während der Ausführung werden alle Abhängigkeiten bereinigt und nur die geändert, die sich geändert haben.

  • Das ist also sehr effizient. Wenn sich beispielsweise die Größe eines Objekts ändert, ändert sich auch diese Abhängigkeit und das muss berücksichtigt werden.

  • Das macht es zu einer sehr, sehr effizienten Art der Berechnung, weil Sie nicht von oben nach unten gehen und sehr effizient vorgehen.

  • Lassen Sie uns die Uhr ein wenig erweitern, um zu zeigen, dass wir echte Dinge bauen können, zumindest ein wenig.

  • In diesem Fall fügen wir an den Rändern einige Häkchen hinzu. Sie sehen einige for-Schleifen, sodass Sie die Schleife lokal und rechts ausführen können.

  • Dann fügen wir ein paar Stunden- und Minutenzeiger hinzu und machen dann mit den Sek-- fügen Sekunden hinzu und runden das Ganze mit ein paar verschiedenen Knöpfen ab, um es fertigzustellen, und wir haben eine Live-Uhr.

  • Es zeigt tatsächlich die Zeit an.

  • Interessant ist auch, dass Sie dasselbe in JSON schreiben können. Wenn es in JSON wäre, könnten Sie ganz einfach mit einem LLM interagieren und sagen: „Ändere den Minutenzeiger in Grün.“ Das LLM würde dann herausfinden, was Sie meinen.

  • Das ist also sehr praktisch.

  • Okay.

Entwicklertools und Dokumentoptimierung

  • Genau.

  • Hoffentlich haben Sie jetzt einen Eindruck von den Möglichkeiten von Remote Compose.

  • Ich möchte kurz auf den Entwicklersupport eingehen, den wir für Sie anbieten.

  • Ich habe erwähnt, dass es sich hauptsächlich um AndroidX-Bibliotheken handelt. Sie wissen also, wo Sie alles finden, was auf DAC ist.

  • Sie erhalten die neuesten Releases, die Dokumentation und alles andere.

  • Wie üblich hat John uns gezeigt, was wir in Android Studio tun können.

  • Das Coolste ist für mich die Livevorschau, die die Entwicklungszeit wirklich verkürzt.

  • Wir arbeiten auch an einer öffentlichen, offenen Spezifikation für das Format.

  • Wir versuchen nicht, etwas komplett zu verstecken, es ist da draußen.

  • Sie können sich ansehen, wie es funktioniert, wie es aufgebaut und codiert ist.

  • Eine der häufigsten Anwendungen sind animierte Vektor-Drawables, die natürlich sehr praktisch sind.

  • Und denken Sie daran, was ich über Bitmaps gesagt habe.

  • Wir sind sehr daran interessiert, dass Sie Vektoren und keine Bitmaps senden, richtig?

  • Wir entwickeln daher einige Tools, mit denen Sie beispielsweise eine Lottie-Datei oder ein anderes Format in eine RemoteCompose-Komponente konvertieren können, die Sie in Ihrer RemoteCompose-Datei verwenden können.

  • Ich habe bereits erwähnt, dass wir auch an zusätzlichen Tools arbeiten, insbesondere an einem Live-Inspector für die Dokumente. Es ist eine Sache, die Entwicklererfahrung zum Erstellen zu haben, aber eine andere, das Ergebnis dieser Erstellung prüfen zu können.

  • In unserem Fall ist das ein Dokument.

  • Hier ist eine kurze Vorschau auf das Tool, an dem wir gerade arbeiten.

  • Es ist ein RemoteCompose-Dokumentenprüfer, mit dem Sie Dokumente prüfen und verschiedene nützliche Tools und Visualisierungen darauf anwenden können.

  • Ein gutes Beispiel ist, dass Sie ein Dokument öffnen und die verschiedenen Vorgänge im Dokument Schritt für Schritt ausführen können, um besser zu verstehen, wie alles zusammenhängt.

  • Wir haben aber zusätzliche Tools.

  • Mir gefällt zum Beispiel dieses hier, das Ihr Dokument sofort in verschiedenen Dichten und Größen visualisiert. So können Sie sehr schnell sehen, ob sich das, was Sie erstellen, gut an die verschiedenen Größenänderungen anpasst.

  • Eines der neuesten Dinge, an denen wir arbeiten, ist ein vollwertiger Layout Inspector. Das sind die Arten von Layout-Inspektionsfunktionen, die Sie aus Android Studio kennen, aber hier auf die Vorgänge und die Dokumente angewendet, richtig?

  • Und wir können in Sachen 3D sogar noch einen Schritt weiter gehen.

  • Ich habe es bereits erwähnt und hoffentlich konnte ich Sie inzwischen davon überzeugen, dass „klein“ ein Feature ist.

  • Das ist wichtig.

  • Wir möchten wirklich kleine Dokumente.

  • Das hilft allen.

  • Bitte tun Sie das.

  • Was können wir also tun?

  • Sehen wir uns ein gängiges Beispiel für eine Benutzeroberfläche an.

  • Etwas, das viele Zeilen hat.

  • Die Zeilen selbst enthalten einen Namen, ein kleines Diagramm und vielleicht eine Schaltfläche.

  • Ziemlich typisch.

  • Die Benutzeroberfläche ist bereits ziemlich klein.

  • Wir sprechen hier von etwa 25 kB, aber wir haben verschiedene Funktionen in RemoteCompose, mit denen Sie die Größe noch weiter reduzieren können.

  • Sehen wir uns die einzelnen Schritte an.

  • Als Erstes – und das ist kostenlos – prüfen wir, ob Sie dieselben Strings senden.

  • Wir können einige Byte einsparen, indem wir auf denselben String verweisen.

  • Wir bieten aber noch mehr, z. B. Schleifen.

  • Hier habe ich diesen Schleifenvorgang verwendet, um mein kleines Diagramm zu zeichnen.

  • Und das spart noch ein paar Byte.

  • Wir haben auch Funktionen.

  • Sie können also eine Funktion erstellen, wie ich es hier für den Graphen tue, und diesen Graphen dann einfach mehrmals aufrufen.

  • Auch das spart wieder einige Byte.

  • Und für die Komponente haben wir Vorlagen, richtig?

  • Ähnliche Ideen wie für die Funktionen, aber mehr für die Komponente, oder?

  • Ich kann also alle diese verschiedenen Komponenten und Zeilen ersetzen, indem ich einfach diese Vorlage mit den richtigen Parametern aufrufe. Das spart eine Menge Platz im Dokument.

  • Und schließlich unterstützen wir auch die Komprimierung des Dokuments.

  • Im Allgemeinen können Sie so etwa die Hälfte der Dokumentgröße einsparen.

  • Interessant ist, dass der Header des Dokuments etwas Besonderes ist.

  • Wir komprimieren sie nicht.

  • Das ist sehr praktisch, wenn Sie schnell eine große Anzahl von Dokumenten durchsuchen möchten, ohne sie dekomprimieren zu müssen.

  • Zusammenfassend lässt sich sagen, dass Dokumente standardmäßig klein sind, aber noch viel kleiner gemacht werden können.

  • An diesem kleinen Beispiel sehen Sie, wie einfach es ist, die Größe um eine Größenordnung zu reduzieren, da ein Feature klein ist.

Remote Compose in Widgets und Wear OS

  • Ich habe über Widgets und insbesondere Launcher-Widgets auf der Android-Plattform gesprochen.

  • Sehen wir uns also an, was wir tun und was es bereits gibt.

  • Als Erstes können wir ein vorhandenes Widget wie die Uhr nur in RemoteCompose replizieren. Es würde sich im Wesentlichen genauso verhalten, nur eben in RemoteCompose.

  • Aber da geht noch mehr, oder?

  • Wenn Sie also eine adaptivere Benutzeroberfläche mit Widgets erstellen möchten, deren Größe sich anpassen lässt und die korrekt animiert werden, ist das jetzt möglich.

  • Denn wir haben die richtigen Primitiven dafür, im Gegensatz zu dem, was mit Remote-Ansichten möglich ist.

  • Wir bieten Ihnen im Grunde viel mehr Flexibilität und Leistung.

  • Und wo wir gerade von Leistung sprechen, hier ist ein kurzes Beispiel für verrückte Dinge, die Sie tun könnten, oder?

  • Hier wird ein vollständiges Spiel in einem Widget angezeigt.

  • Und ich würde auf die tatsächliche Größe dieses Widgets verweisen.

  • Wir sprechen hier von 4 KB.

  • Ich habe erwähnt, dass wir uns in Remote Compose nicht direkt mit dem Transport befassen.

  • Speziell für Widgets bieten wir jedoch eine RemoteCompose-Widget-Connector-Klasse an, mit der Sie ein Dokument ganz einfach an den Launcher senden können.

  • Wenn Sie jedoch bereits Widgets haben, empfehlen wir Ihnen, Glance weiterhin zu verwenden, da die neueste Version von Glance automatisch ein Backend zum Ausgeben von Remote Compose auf der Plattform bereitstellt.

  • Kommen wir nun zu Wear OS.

  • Danke, Nico.

  • Hallo zusammen!

  • Ich bin John Zoeller.

  • Heute geht es um Wear OS.

  • Ich habe etwa 30 Witze für diese Präsentation geschrieben, aber ich habe sie alle meiner Mutter erzählt und sie meinte, ich würde gefeuert werden, wenn ich einen davon erzähle.

  • Ich überspringe das also und mache stattdessen einfach die Präsentation.

  • Sehen wir uns also Remote Compose und einige der Vorteile dieser Funktion unter Wear OS an.

  • Als Erstes sprechen wir über den neuen Wear OS-Workout-Tracker.

  • Wir haben Remote Compose verwendet, um diese App zu erstellen, und wir wissen, dass es wirklich schwierig ist, einen funktionsreichen, hochwertigen Workout-Tracker für Wear zu entwickeln.

  • Das dauert etwas.

  • Wir haben das also für dich erledigt und einige wirklich tolle neue, moderne Trainingsfunktionen hinzugefügt, wie z. B. Live-Messwerte und die Möglichkeit, Medien zu steuern.

  • Und dank Remote Compose konnten wir die Benutzeroberfläche von der Ausführung entkoppeln, sodass sie sehr effizient ausgeführt werden kann und die Akkus der Nutzer nicht so schnell entladen werden.

  • Ohne Remote Compose, also nur mit normalem Compose, könnten wir keine Live-Messwerte auf dem Bildschirm anzeigen, die sich sekündlich aktualisieren.

  • Es würde tatsächlich eine Minute dauern, da du die Smartwatch im Inaktivmodus aktivieren müsstest, nur um einen Messwert anzuzeigen.

  • Das ist ein großer Vorteil.

  • Und ob Sie es glauben oder nicht, das ist ein GIF.

  • Dies ist kein Bild.

  • Ich weiß, dass sie sich noch nicht bewegt hat. Das wird in etwa 45 Sekunden passieren, wenn die nächste Messwertaktualisierung erfolgt.

  • Aber das ist der Vorteil von Remote Compose.

  • Und wisst ihr was?

  • Wear Workout Tracker ist tatsächlich verfügbar.

  • Die ASICS Runkeeper App wurde damit entwickelt. Sie können sie noch heute ausprobieren, indem Sie diesem Link folgen und am offenen Betatest teilnehmen.

  • Als Nächstes kommen wir zu den Wear OS-Widgets.

  • Dies ist ein weiteres gutes Beispiel für Remote Compose in Aktion.

  • Diese ersetzen die alte ProtoLayout Tiles-Bibliothek, sodass du nicht mehr zwei verschiedene Arten von UI-Frameworks für unterschiedliche Geräte unterstützen musst.

  • Mit Remote Compose ist das alles möglich.

  • Da sie Teil von Jetpack Glance sind, gehören Widgets auf Wear OS zum einheitlichen Android-Ökosystem von Widgets.

  • Als Teil dieses Ökosystems ist die Benutzeroberfläche von RemoteCompose-Widgets vollständig von bestimmten App-Prozessen entkoppelt. Sie können also sicher serialisiert und auf Wear OS-Geräten mit derselben Technologie wie der Rest des Android-Stacks gerendert werden.

  • Und Remote Compose bringt auch moderne Grafiken und responsive Layouts in Widgets, und das alles bei hoher Effizienz und Akkuschonung.

  • Und mit Wear OS 7 setzen Hardwarehersteller bereits auf vertikal scrollbare Bereiche.

  • Das ist die Samsung Galaxy Watch. Hier sehen Sie, wie Widgets vertikal durch die Trays scrollen.

  • Weitere Informationen zur Migration deiner Kachel zu einem Widget findest du unter diesem Link.

  • Auf älteren Geräten, auf denen Kacheln in horizontalen Karussells angezeigt werden, werden Widgets automatisch als Vollbildkachel angezeigt.

  • Außerdem sind sie vollständig abwärtskompatibel mit Wear OS 4.

  • Unter diesem Link finden Sie weitere Informationen zur Abwärtskompatibilität.

  • Und wir haben einige andere Partner, die ebenfalls bereits Widgets eingeführt haben.

  • Sie können sich das ansehen.

  • Das war's von mir.

  • Ja, zurück zu dir, Nico.

  • Vielen Dank.

Nächste Schritte und Zusammenfassung

  • Okay.

  • Das war's auch schon.

  • Wir haben uns einige der Funktionen von Remote Compose angesehen.

  • Es gibt noch ein paar weitere, über die wir nicht gesprochen haben.

  • Es ist ein sehr umfangreiches Framework.

  • Ich empfehle Ihnen, sich die verfügbare und die kommende Dokumentation anzusehen.

  • Unser Ziel ist es, eine Zukunft zu schaffen, in der Sie Remote Compose für alle diese verschiedenen Remote-Oberflächen verwenden können.

  • Einige davon haben Sie ja schon gesehen, z. B. die Wear-Widgets.

  • Aber es gibt noch viel mehr zu tun.

  • Ich würde auch sagen, dass es sich um ein fortlaufendes Projekt handelt.

  • Es befindet sich in der aktiven Entwicklung.

  • Wir entwickeln das alles öffentlich.

  • Sie können sehen, was wir tun.

  • Aber ich würde sagen, wir wollen wirklich von Entwicklern hören, oder?

  • Wir entwickeln das für Sie.

  • Wenn Sie also weitere Ideen haben oder Ihnen etwas fehlt, sprechen Sie uns an.

  • Wir freuen uns, von Ihnen zu hören.

  • Zum Schluss möchte ich noch erwähnen, dass die gesamte Präsentation, die Sie gerade gesehen haben, einschließlich der Animationen, in Remote Compose erstellt wurde.