Developer Relations Engineer
Mit der Einführung von Googlebook eröffnen sich neue Möglichkeiten für High-Fidelity-Anwendungen auf Desktop-Niveau. In dieser Session blicken wir hinter die Kulissen und sprechen mit zwei Partnern, die von Anfang an für diese Plattform entwickelt haben.
Notability berichtet über die Entwicklung einer Android-App auf Desktop-Niveau mit Jetpack Compose. Erfahren Sie mehr über den Wechsel von anderen App-Plattformen mit Fokus auf Desktop. Als Nächstes geht Logitech auf die Hardware ein und erläutert, wie Peripheriegeräte entwickelt und angepasst werden, um sie nahtlos in Googlebook zu integrieren. In dieser Session erhalten Sie praktische Einblicke in die Optimierung von Eingaben, die Nutzung von APIs für große Bildschirme und die Bereitstellung einer erstklassigen, einheitlichen Nutzererfahrung über Hardware und Software hinweg.
Transkript
Hallo, ich bin Emilie Roberts, Developer Advocate. Ich arbeite seit etwa neun Jahren mit Android-Apps auf Laptops.
Und dann kam die Markteinführung des Googlebook.
Super!
Ich finde es toll, welche Innovationen wir im Laptop-Bereich einführen.
Ich freue mich sehr, hier mit zwei Entwicklern auf der Bühne zu stehen, die viel Zeit und Mühe investiert haben, damit ihre Apps auf dem Googlebook gut aussehen.
Hallo,
Ich bin Ryan von Notability.
Ich bin der Android-Manager und es ist eine digitale Notizbuch-App, die wir gerade für Android eingeführt haben.
Sie ist auch auf iOS, Computern und jetzt auch auf Google Books verfügbar.
Hallo.
Ich bin Joe von Logitech. Wir sind für unsere hervorragende Hardware und Peripheriegeräte bekannt.
Und ich werde darüber sprechen, wie wir sie auf die neuen Plattformen gebracht haben.
Ich werde sie umwerfen.
Und so sind Googlebooks entstanden.
Super!
Super!
Super!
Ich hoffe, Sie hatten Gelegenheit, sie auszuprobieren, entweder selbst oder am Demostand ein Stockwerk höher oder tiefer.
Und natürlich sollten Sie auch prüfen, wie Ihre App auf diesen Geräten aussieht.
Ich werde meinen Standardvortrag halten, nämlich dass das Android-Ökosystem wächst.
Das sage ich schon seit neun Jahren und es stimmt immer noch.
Und Apps müssen sich weiterentwickeln, damit Sie die Anforderungen Ihrer Nutzer auf allen Bildschirmgrößen und Geräten erfüllen können.
Ein App-Layout, das gut funktioniert und sich gut verhält, ist mittlerweile Standard.
Am besten geht das mit Jetpack Compose und Navigation 3.
Und bei der Eingabe ist es dasselbe.
Es sollte einfach funktionieren.
Und natürlich sind die Architektur und die Statusverwaltung Ihrer Apps Teil des Layouts und der Eingaben.
Auf dem ADS gibt es eine Reihe von Vorträgen dazu, wie Sie das mit den neuesten Tools und Best Practices umsetzen können.
Heute möchten wir jedoch die Gelegenheit nutzen, Entwicklern, die von Anfang an für Googlebook entwickelt haben, ein wenig Raum zu geben und ihre Geschichte zu hören.
Notability ist eine leistungsstarke Notiz-App, die speziell für Googlebooks entwickelt wurde.
Logitech hat nicht nur dafür gesorgt, dass die Tastaturen, Mäuse und anderen Peripheriegeräte funktionieren, sondern auch, dass sie auf Googlebooks besonders gut funktionieren, einschließlich der Anpassung durch den Nutzer.
Tut mir leid, dass ich dir die Show stehle, Joe, aber wir werden uns die Details ansehen.
Das reicht mir.
Diesmal gibt es leider keinen Rap.
Und definitiv kein Freestyling mehr.
Wir freuen uns jedenfalls sehr, dass Notability auf Googlebooks verfügbar ist. Ich übergebe jetzt an Ryan.
Vielen Dank.
Super.
Vielen Dank, Em.
Wir freuen uns sehr, dass wir auf Google Books vertreten sind.
Notability ist die App, mit der Millionen von Schülern und Studenten lernen und Berufstätige Notizen machen.
Wie bereits erwähnt, ist es jetzt für Android verfügbar. Ich möchte Ihnen kurz erläutern, wie wir es entwickelt haben und wie die Entwicklung für Android von Anfang an fast optimal für Googlebooks ist.
Als wir vor etwa zwei Jahren mit diesem Projekt begannen, wollten wir nicht einfach nur unsere iOS-App portieren, sie den Nutzern zur Verfügung stellen und es dabei belassen.
Wir wollten etwas, das sich für die Nutzer wirklich nativ anfühlt, aber dennoch alle Funktionen bietet.
Dazu haben wir Material Design und Komponenten verwendet, um alle Bildschirme von Grund auf anzupassen.
Außerdem haben wir dafür gesorgt, dass wir Jetpack Compose optimal nutzen.
Da es sich um eine native Android-App handelt, die vollständig auf Jetpack Compose basiert, können wir eine breite Palette von Hardware unterstützen – nicht nur kleine Smartphones und Low-End-Geräte, sondern auch leistungsstarke High-End-Tablets mit großen Bildschirmen, Computer, XR, Autos und alles dazwischen.
Mit Jetpack Compose lassen sich diese nativ unterstützen, ohne dass viele zusätzliche Funktionen in Benutzeroberflächen erstellt werden müssen.
Kommen wir zu Notability.
Alles in Notability basiert auf Jetpack Compose.
Die Benutzeroberfläche ist auf der gesamten Plattform einheitlich und wird im Grunde nur einmal erstellt, ohne dass es nennenswerte Unterschiede zwischen der Darstellung auf einem Smartphone und der Darstellung auf größeren Geräten wie Tablets und Googlebooks gibt.
Navigation 3 ist dafür ein wichtiger Meilenstein.
Die Navigation 3 in Google, die in Notability integriert ist, funktioniert so, dass wir das Layout basierend auf der Bildschirmgröße anpassen können, ohne dass sich die Funktion darum kümmern muss, wie es dargestellt wird.
In dieser Demo sehen Sie, dass sich die Seitenleiste öffnet, wenn dafür Platz ist.
Andernfalls wird sie als Ansicht am unteren Rand angezeigt.
Wie sieht das im Code aus?
Im Code, den wir hier haben, sehen Sie, dass es einen Einstiegspunkt für das Zusammenfassungsfeld auf der Seite gibt, den wir dem Back Stack hinzufügen.
Anschließend wird über unsere benutzerdefinierte Szenenstrategie ein Layout für diese Seitenleiste ausgewählt, je nachdem, ob Platz vorhanden ist oder nicht.
Auf einem Tablet oder einem Googlebook-Gerät wird also nach verfügbarem Platz gesucht und der Bereich wird von rechts eingeblendet.
Auf einem Smartphone oder Foldable ist jedoch möglicherweise nicht genügend Platz, um diese Seitenleiste richtig anzuzeigen. Daher wird sie stattdessen als Ansicht am unteren Rand eingeblendet.
Notability passt sich der Fenstergröße an, unabhängig davon, ob es sich um ein Smartphone, ein Googlebook, ein Tablet oder ein Foldable handelt. Unsere Benutzeroberfläche kann sich also ganz einfach automatisch an die Anforderungen der Nutzer anpassen.
Auf einem Smartphone werden alle Schaltflächen und Tools so positioniert, dass sie mit dem Daumen leicht zu erreichen sind.
Auf einem Tablet werden die Navigationsbereiche neben den Hauptinhalten angezeigt, da mehr Platz vorhanden ist und die Bildschirme einfacher zu bedienen sind.
Bei faltbaren Geräten nutzen wir das Scharnier, um einzigartige Layouts und Benutzeroberflächen anzubieten, z. B. für unser Lernquiz, bei dem Nutzer ihre Antworten in der unteren Hälfte und den eigentlichen Quizfortschritt in der oberen Hälfte sehen können.
Und schließlich haben wir bei Google Books eine flüssige Größenanpassung des Fensters.
Wie bei jeder anderen normalen Fensteranwendung auf einem Desktop passt sich Notability an, wenn Sie die Größe des Fensters für Ihre Anforderungen an die Nebeneinander-Anzeige ändern.
Wir haben die adaptive Benutzeroberfläche entwickelt, die auf Googlebooks fast die gesamte Desktop-Nutzung ermöglicht.
Damit kommen Sie dem Ziel schon sehr nahe.
Wenn du aber ein Erlebnis wie auf einem Desktop-PC haben möchtest, das wirklich außergewöhnlich ist, empfehlen wir dir ein paar Dinge.
Erstens: Tastatur zuerst.
Nutzer sind nicht so berührungsempfindlich wie auf einem normalen Tablet oder Smartphone. Daher sind Tastenkombinationen und eine einfache Möglichkeit, die Liste der Android-Tastenkombinationen aufzurufen, sehr wichtig.
Als Nächstes können Sie Ihre Funktionen manchmal so gestalten, dass sie je nach Gerätetyp und verfügbaren Eingabegeräten unterschiedlich angeordnet sind.
Wenn wir ein Gerät wie einen Laptop mit angeschlossener Tastatur oder Maus erkennen, bieten wir auf dem Startbildschirm eine etwas andere Benutzeroberfläche an. So werden Nutzer zu Tools weitergeleitet, die wir für diese Art von Nutzern für besser geeignet halten als für Nutzer, die ein Tablet verwenden, bei dem ein Eingabestift und automatische handschriftliche Notizen die primäre Option sind.
Außerdem solltest du dir Gedanken darüber machen, wie mehrere verschiedene Geräte miteinander interagieren.
„Weiter auf“ ist eine neue Funktion in Android 17, mit der Sie Ihre App nahtlos von einem Gerät auf ein anderes übertragen können.
In diesem Beispiel wird eine Notiz von einem Smartphone an ein Desktop-Gerät übergeben.
Das lässt sich ganz einfach durch eine kurze Synchronisierung der Notiz-ID und einen schnellen Abgleich des Fortschritts auf unserer Seite erledigen.
Wir können also ganz einfach einen kurzen App-Intent an das Googlebook-Gerät senden und dann genau dort weitermachen, wo wir aufgehört haben.
Ein weiterer wichtiger Aspekt bei Geräten der Desktop-Klasse sind die Modelle zur Unterstützung mehrerer Eingaben.
Sie haben also nicht nur die bereits erwähnten Tastenkombinationen, sondern auch Trackpads mit anderen Zoom- und Scrollfunktionen als bisher.
Außerdem gibt es Kontextmenüs, die möglicherweise für Nutzer verfügbar gemacht werden müssen, die vorher nicht da waren.
Da viele Googlebook-Geräte Touchscreens haben, sollten Sie außerdem darauf achten, dass bei der Interaktion mit dem Gerät nicht nur der Eingabestift und der Finger, sondern auch der Trackpad-Cursor unterschiedlich erkannt werden, da alle drei unterschiedlich behandelt werden sollten.
Wenn Sie wie Notability an Freihand- und Notizfunktionen interessiert sind, empfehlen wir die Verwendung von Jetpack Ink.
Damit können wir ein Build-System mit niedriger Latenz für unsere Tinte bereitstellen, ohne dass wir einen umfangreichen, komplizierten Stack aus Threads, Rendering, Pufferlesern und anderen Dingen verwalten müssen, die ich Ihnen später noch zeigen werde.
Aber wenn es jetzt funktioniert, kann ich euch dank Logitech eine Live-Demo der Notability App zeigen.
Ja, perfekt.
Also, hoppla, komm schon.
So, perfekt.
Hier ist also mein Test von vorhin.
Aber wie ihr seht, verwende ich meinen Finger, und die Eingabe wird immer noch erkannt, was toll ist.
Ich könnte auch die Maus verwenden, wenn ich wollte.
Wir konnten aber einige benutzerdefinierte, Android-exklusive Pinsel erstellen.
Hier habe ich den Regenbogen- und Glitzereffekt ausgewählt, sodass unsere Eingabe- oder Tinteneffekte von der Jetpack Ink-Bibliothek beeinflusst werden.
Ich schreibe meine Nachricht also noch einmal.
Hallo.
Und für den letzten Teil wählen wir Android-Grün.
Es ist schwierig, die richtigen Stellen zu berühren.
Und da ist es: Android-Grün.
Die tatsächlichen Farben ändern sich je nachdem, welche Farbe Sie hier als Basismodell ausgewählt haben.
Perfekt.
In der Vergangenheit hat es Monate gedauert, solche Pinsel zu erstellen, weil wir alle benutzerdefinierten Shader, die Benutzeroberfläche und alles andere richtig einstellen und gut aussehen lassen mussten.
Dank Jetpack Ink, KI und dem benutzerdefinierten Pinsel-Builder kann das jetzt tatsächlich in weniger als einer Woche erledigt werden.
Wenn ihr also auf der Suche nach einer Tätowierung seid, lasst es sie wissen.
Es ist eine großartige API, die uns viel Zeit gespart hat.
Perfekt.
Wie bereits erwähnt, sieht das in etwa so aus.
Wir haben also eine sogenannte „Wet Ink“-Ebene.
Das ist unsere Tinte, die gerade gezeichnet wird. Sie muss im Vergleich zu einer trockenen Tintenschicht extrem schnell reagieren.
Das ergibt Sinn, wenn man sich ein physisches Objekt vorstellt.
Das ist die gespeicherte Tinte, die bereits fertig ist.
Früher lag die Übergabe also vollständig bei uns.
Wir mussten also dieses Threading durchführen, neu zeichnen und bereinigen, es an eine trockene Schicht übergeben und dafür sorgen, dass diese synchronisiert wurden und nicht flackerten. Es gab also alle möglichen Komplikationen.
Und ganz am Ende mussten wir das einbringen, was Notability so einzigartig macht, oder?
Wir haben unsere eigenen Kurvenanpassungsmodelle und Möglichkeiten, mit denen sich Ihre Handschrift wirklich hervorheben lässt.
Das war also das alte Modell.
Dank Jetpack Ink müssen wir nur unsere Kurvenanpassung in die benutzerdefinierte Ansicht für Fortschrittsformen einspeisen und schon funktioniert alles wie von Zauberhand auf Android.
Ein weiterer Aspekt, den wir bei der Diskussion von Jetpack Ink und anderen Google-Bibliotheken berücksichtigen, ist KMP.
Wir haben uns zuerst den iOS-Code angesehen, der bereits erstellt war, und uns gedacht: „Okay, wir möchten einen Teil der Logik zwischen Android und iOS teilen.
Wir haben Modelle, Änderungen und komplizierte Mathematik.
Es ist sinnvoll, sie zu teilen.“
Wir dachten: „Hey, C++, du weißt schon, Objective-C von Apple, lass uns diesen Weg gehen.“
Es stellte sich heraus, dass Kotlin Multiplatform für unsere iOS-Entwickler nicht nur einfacher zu implementieren, sondern auch schneller war.
Wir haben also nicht nur eine bessere Leistung durch die Verwendung von Kotlin erzielt und konnten einen Großteil des Android-Codes kopieren, sondern es war langfristig auch einfacher für iOS.
Wenn Sie also Code teilen möchten, empfehle ich Ihnen, sich Kotlin Multiplatform anzusehen.
Wir sind derzeit noch dabei, die Funktion zu prüfen.
Es wird noch nicht zu 100 % unterstützt, da es mit verschiedenen KI-Modellen jetzt etwas einfacher ist, zu schummeln, wenn Code an mehreren Stellen vorhanden ist. Wir untersuchen das aber immer noch aktiv und ich halte es für eine sehr gute Idee.
Okay, jetzt zu den besonderen Funktionen von Notability.
Wenn Sie jemals versucht haben, einen funktionierenden Texteditor für Android zu entwickeln, ist Ihnen vielleicht aufgefallen, dass es derzeit keine gute Möglichkeit gibt, einen Texteditor für große Dokumente zu entwickeln.
Bei den grundlegenden Android-Eingabefeldern geht es um kleinere Benutzeroberflächen, kleine EditText-Elemente und kurze Formulare.
Wir mussten ein sehr kompliziertes System entwickeln, das im Grunde auf den bestehenden Android-APIs aufbaut, aber dann in der Lage ist, viel, viel größere Dokumente zu verarbeiten, also Tausende von Textseiten, die alle gleichzeitig bearbeitet werden können. So kann ein Nutzer an einer anderen Stelle 500 Seiten von Ihnen entfernt Änderungen vornehmen, die sich auf Ihre Arbeit auswirken, während Sie daran arbeiten.
Wir haben herausgefunden, dass unsere Tastenanschläge im Grunde zwei Wege nehmen.
Der erste Weg ist also: „Hey, wir haben unser Bestes gegeben, dieser Schlüssel sollte hier erscheinen.“
Wir halten das für gut, basierend auf allem, was wir im Moment über die darunter liegenden Strukturen sagen können.
Und dann machen wir eine kurze Synchronisierung, richtig?
Wir gehen ins Backend, prüfen unsere Partner und fragen: „Hey, ist alles in Ordnung?
Ist das verständlich?
Sind wir uns einig?“
Und wenn sich etwas ändern muss, wird es an diesem Punkt angepasst.
Wenn zwei Nutzer gleichzeitig auf derselben Zeile tippen, kann es zu einem Durcheinander kommen.
Aber im Großen und Ganzen funktioniert das wirklich gut.
Ich erwähne es hier, weil wir sehr viel Arbeit hineingesteckt haben und überlegen, es als Open Source zur Verfügung zu stellen.
Wenn also jemand hier auf der Konferenz oder online in Zukunft daran mitarbeiten möchte und das für eine gute Idee hält, lassen Sie es uns wissen.
Wir überlegen, ob es sich wirklich lohnt, in die Funktion zu investieren. Es war ein riesiges Projekt für uns und wir sind ziemlich stolz auf die Ergebnisse.
Okay, und so funktioniert die Tinte.
In Bezug auf das Zusammenarbeitsmodell ist dies also ein etwas direkterer Einblick in die Funktionsweise auf unserer Seite.
Hier sehen Sie drei Schritte.
Es gibt den Touchdown, bei dem wir allen verbundenen Geräten mitteilen, dass wir ein Freihandereignis starten. In diesem Fall ist es ein iPad.
Dann gibt es die eigentliche Zeichnung. Je nachdem, wie lange der Nutzer den Stift auf dem Gerät bewegt, kann es eine bis Millionen davon geben.
Hoffentlich nicht zu lange.
Ich denke, dass es irgendwann eine Grenze gibt, aber für normale Anwendungsfälle ist es ziemlich gut.
Und dann gibt es ein Lift-up-Ereignis.
Dazu verwenden wir ein temporäres Objekt, das wir in unserem Modell speichern.
Auf dem iPad sagen wir also: „Okay, es kommt ein Schlag, aber er ist noch nicht da.
Wir können nicht mit ihm interagieren.
Sie sind vergänglich.“
Erst wenn dieses Ereignis ausgelöst wird, sagen wir: „Okay, cool.
Jetzt ersetzen wir das Ganze durch ein Objekt, das iOS oder andere Clients einfach abrufen und mit dem sie interagieren können.“
Wir überlegen auch, ob wir das als Open Source anbieten.
Das ist nicht unsere direkte Eingabe, sondern einige der temporären Elemente, insbesondere in der Textebene.
Sehr gut.
Und dann, ja.
Hier sind einige weitere Dinge, die wir empfehlen.
On-Device-KI ist großartig.
Wir verwenden es zum Scannen von Dokumenten, damit Sie Dokumente scannen, PDF-Texte analysieren und Handschrifterkennung nutzen können.
Wir verwenden auch offene Cloud-KI-Modelle wie Gemini, um unsere Smart Notes zu generieren. Dabei werden die Notizen der Nutzer kategorisiert, zusammengefasst und dann auf eine Weise zurückgegeben, die für das Lernmodell besser und interaktiver ist.
All das zusammen sorgt dafür, dass sich Notability wie eine Laptop-Anwendung anfühlt, oder?
Das ist das Ziel.
Wir haben all diese interessanten Modelle, verschiedene Dinge, Texteingaben, aber die große Frage ist: Fühlt sich das wie eine Laptop-Anwendung an oder eher so, als hätte man eine Smartphone-App auf einem großen Bildschirm geöffnet und würde damit herumspielen?
Die Tastatur, das Trackpad, der Eingabestift, die Größenanpassung von Fenstern – all diese Funktionen müssen richtig funktionieren, damit sich die Nutzer wohlfühlen.
Aber wie ich schon erwähnt habe, wird das alles von Jetpack Compose, Navigation 3 und Material Design abgedeckt.
Wenn Sie alles richtig machen, ist das also gar nicht so viel Aufwand.
Es ist ziemlich einfach, hierher zu kommen.
Also.
Das sind die wichtigsten Erkenntnisse.
Wenn wir über die Zukunft von Android nachdenken, sollten wir nicht mehr an Geräte denken.
Ich würde nicht darüber nachdenken, ob es sich um ein Smartphone, ein faltbares Gerät, ein XR-Gerät, einen Desktop-Computer, einen Laptop, ein Tablet, ein Auto oder einen Fernseher handelt.
Stattdessen geht es darum, welche Bildschirmgröße verfügbar ist und welche Eingabemodi die Nutzer haben.
Und wir möchten denjenigen, die sich für die Zukunft entscheiden, die bestmögliche Erfahrung bieten.
Wie ich bereits auf der letzten Folie erwähnt habe, ist es mit Compose und Nav 3 wirklich einfach, all das zu unterstützen.
Und Google bringt jeden Tag neue, wirklich leistungsstarke APIs heraus, wie Jetpack Ink oder Gemini On-Device oder alle möglichen Dinge, die es euch leicht machen, eure Kernfunktionen zu entwickeln und euch dann auf das gewisse Etwas zu konzentrieren, das euch einzigartig macht.
Okay.
Das war's.
Vielen Dank.
Das ist mein Vortrag.
Ich stehe später für Fragen zur Verfügung. Sie können sich aber auch an Notability wenden.
Die App ist seit etwa zwei Monaten auf Android verfügbar.
Die Betaversion ist endlich vorbei.
Probieren Sie es also ruhig aus.
Feedback geben
Sie sind auch auf den Googlebooks im Demobereich hinter Ihnen verfügbar.
Und jetzt übergebe ich an Joe von Logitech.
Vielen Dank.
Okay.
Vielen Dank, Ryan.
Heute, Okay, sorry.
Fügen wir die Folie ein.
Vielen Dank, Ryan.
Heute möchte ich Ihnen zeigen, wie wir Options+, eine App zur Anpassung von Peripheriegeräten, auf Chromebooks gebracht haben.
Und was bedeutet es, eine Peripherie-Erfahrung zu schaffen?
Ich werde darauf eingehen, was wir entwickelt haben, einige technische Highlights vorstellen und erläutern, was wir als Nächstes vorhaben.
Logitech-Geräte waren schon immer mit Android kompatibel und die meisten Nutzer fanden, dass die Peripheriegeräte die Barrierefreiheit verbessern, insbesondere bei Premium-Laptops und Smartphones, die an externe Monitore angeschlossen sind.
Apropos: Vorhin habe ich am Googlebook-Demostand gesehen, dass ein sequenzielles Logitech-Gaming-Getriebe am Tisch befestigt war, mit dem man zwischen verschiedenen Bildschirmen auf dem Tablet wechseln konnte.
Hier sind die Daten.
Das ist eine Möglichkeit, es zu verwenden.
Ach, übrigens, Ferrari musste für das sequenzielle Getriebe 50.000 Euro extra berechnen. Wie auch immer.
Ja.
Wie Ryan bereits ausführlich erwähnt hat, bietet das Googlebook viel mehr Platz zum Arbeiten.
Wie du siehst, kannst du die Größe der Bildschirme anpassen, im Querformat, im Hochformat oder im quadratischen Format, wenn du möchtest, und du hast viel mehr Platz, um zwischen Apps zu arbeiten.
Sie können weiterarbeiten, verschiedene Apps verwenden und den Kontext wechseln.
Das hat das App-Design natürlich verändert und die Layouts müssen während des gesamten Vorgangs nützlich bleiben.
Für uns bei Logitech ist das besonders interessant, weil wir ein Unternehmen mit viel Erfahrung im Bereich Peripheriegeräte sind.
Wir bringen eine sehr starke Grundlage in diese Arbeit ein.
In einer solchen Arbeitsumgebung interagieren Nutzer den ganzen Tag über mit einer Maus oder Tastatur.
Sie können sich ganz einfach in ihren Arbeitsablauf einarbeiten.
Und es ist nicht übertrieben, zu sagen, dass Logitech jahrzehntelange Erfahrung in diese Arbeit einbringt.
Anfang dieses Monats haben wir unser 45-jähriges Jubiläum gefeiert.
Und wir bauen Mäuse, glaube ich, seit Tag 2, Jahr 2 von Logitech.
Mit dieser Erfahrung sind wir sehr zuversichtlich, in diesen Bereich einzusteigen.
Und das Beste ist: Wir haben eine lange Geschichte mit ChromeOS.
Wir haben in der Vergangenheit eine erstklassige Kompatibilität mit ChromeOS garantiert.
Wir haben also sehr gute praktische Erfahrungen damit, die Grenzen zwischen Hardware, Software und der Plattform, dem Betriebssystem, Googlebooks, zu überwinden.
Ein einfaches Beispiel: Ein Nutzer drückt eine Taste und sieht ein vorhersehbares Ergebnis.
Es ist fast so, als ob ihr alle es für selbstverständlich haltet.
Sie erfordern jedoch eine nahtlose Kompatibilität der Komponenten.
Außerdem ist die Kompatibilität mit Peripheriegeräten ein wichtiger Faktor.
Zum Beispiel die Empfindlichkeit genau richtig einzustellen.
65 – nicht mehr und nicht weniger.
All diese Dinge erfordern also eine sehr gute, nahtlose Kompatibilität und Integration.
Mit der Einführung von Googlebooks bieten wir jetzt auch Options+ für Googlebooks an.
Derzeit unterstützen wir eine Reihe von Mäusen und Tastaturen, weitere werden folgen.
Hier können Nutzer auch ihre Geräte konfigurieren.
Und wie ich bereits erwähnt habe, Sensibilität und all diese Dinge.
Jetzt wird es interessant.
Wenn wir über Konfigurierbarkeit sprechen, meinen wir eigentlich zwei Seiten.
Eine Seite ist die Hardware- und Firmwareseite, auf der die Funktionen in unserer Firmware implementiert werden.
Die andere Seite ist der eigentliche Kern dieser Demo und dieser Präsentation: die Betriebssystemseite.
Ich denke, alle hier wissen, dass Android-Geräte und die meisten Apps in der Vergangenheit in einer eigenen Sandbox, also in einem eigenen Nutzerbereich, ausgeführt wurden.
Es gibt bestimmte Einschränkungen, was Sie tun können, und in vielen Fällen, was Sie nicht tun können und was Sie wollen.
Für uns ist das extrem wichtig.
Hier ist ein Screenshot. Später gibt es noch eine Demo, aber hier ist ein Screenshot.
Wir haben hier eine Maus, die MX Master 4, und wir haben hier viele Funktionen.
Und wer sich mit Peripheriegeräten auskennt, wird feststellen, dass bestimmte Funktionen sehr stark als Firmware- und Gerätefunktionen implementiert sind.
Und andere sicherlich nicht.
Wir versuchen, dem Nutzer die Möglichkeit zu geben, beide Seiten zu konfigurieren.
Unsere Aufgabe ist es, diese Optionen verständlich zu machen und den Nutzern alle Funktionen anzubieten. Außerdem konfigurieren wir diese Dinge korrekt für das Betriebssystem und die Firmware.
Sehen wir uns jetzt eine kurze Demo an.
Das war eine sehr beeindruckende Demo.
Aber nächstes Mal, Ryan, nimm die Maus.
Okay, los gehts.
Hier ist das Display meines Geräts.
Wie Sie sehen, habe ich eine MX Master 4-Maus hinzugefügt.
Legen wir also los.
Wir rufen direkt den Konfigurationsbildschirm auf, den Sie bereits gesehen haben. Hier passiert die Magie.
Legen wir zuerst „Circle to Search“ auf die Daumentaste.
Und dann legen wir den Magischen Pointer auf die Funktionstaste.
Los gehts.
Öffnen wir einen Browser.
Anreise
Hier drücke ich die Daumentaste, der ich gerade „Circle to Search“ zugewiesen habe.
Wie Sie sehen, kreise ich eine Tastatur ein.
Voila!
Google zeigt nur die Informationen zu dieser Tastatur an.
Das ist sehr praktisch und funktioniert reibungslos.
Probieren wir jetzt etwas anderes aus.
Oh, tut mir leid.
Ich gehe noch einmal zurück.
Probieren wir den Magischen Pointer aus.
Hier können wir das umschalten.
Ich kann die Funktionstaste drücken, das Gerät markieren und fragen: „Was ist das für ein Gerät?“
Das war es schon.
Google startet die Suche und zeigt die Ergebnisse an.
Das Schöne daran ist, dass Sie den gesamten Workflow in nur einen Handgriff integrieren.
Sie weisen Funktionen zu, drücken, kreisen ein, klicken und fertig.
Wir glauben, dass diese Art von Vorgang die Barrierefreiheit im Internet und die Arbeitsweise der Nutzer erheblich verbessern wird.
Kehren wir nun zu den Folien zurück.
Sie fragen sich vielleicht, was dazu geführt hat.
Denn viele Dinge, die früher einfach nicht von Apps erledigt werden konnten,
Hier ist sie: die Peripheral Customization API, die sowohl auf Chromebooks als auch auf Android-Geräten verfügbar ist.
Hier sind jedoch die Hinweise von Google.
Derzeit ist diese API nur für Kunden auf der Zulassungsliste verfügbar.
Die Veröffentlichung ist jedoch zusammen mit Android-Updates für das vierte Quartal 2026 geplant, also dieses Quartal.
Nach der Veröffentlichung können Entwickler auf der ganzen Welt sie nutzen.
Kommen wir nun zu den technischen Details.
Das Ganze besteht aus drei Hauptkomponenten: einem Gerät, einem Auslöser (z. B. einer Taste oder einem Button) und einer Aktion, die auf der Seite des Betriebssystems der App ausgeführt wird.
Sehen wir uns dieses Code-Snippet kurz an.
Ganz oben definieren wir ein Gerät anhand seiner Anbieter-ID und der Produkt-ID.
// Vendor and product Information
const val VENDOR_ID = 1234
val pid = 123
// Use the mouse Middle Button as the trigger
val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)
// Set Voice Assistant as the action
val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
val action = actionBuilder.build()
val im = context.getSystemService(INPUT_SERVICE) as InputManager
im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)Wir nennen sie normalerweise VID und PID.
Weiter unten definieren wir einen Trigger.
Wie Sie sehen, möchten wir hier die mittlere Taste als Auslöser verwenden.
Und hier möchten wir die mittlere Taste dem Sprachassistenten des Betriebssystems zuordnen.
Nicht wahr?
Wir haben hier und hier ein actionBuilder von AppCustomizationAction.
Weiter unten wird die Zuordnung zwischen Produkt, Gerät, Auslöser und Aktion registriert.
Der tatsächliche Code ist natürlich etwas komplizierter, aber das ist das allgemeine Konzept.
Sehr unkompliziert und einfach zu bedienen.
Hier ist eine weitere sehr coole und interessante Funktion.
Ich habe hier eine GIF-Datei eingefügt, damit sie für alle besser zu sehen ist.
Wenn ein kompatibles und unterstütztes Gerät, in diesem Fall eine Logitech Mobifold-Maus, angeschlossen wird, löst das Betriebssystem eine Standardbenachrichtigung aus, die Sie darauf hinweist, dass es eine App für dieses Gerät gibt.
Sag dem Nutzer: „Natürlich.“
Wenn du darauf klickst, wirst du direkt zum Google Play Store weitergeleitet und kannst die App dort installieren.
Das ist die Suche nach Geräten für die Funktion „Schnelles Pairing“.
Kommen wir nun zur Benutzeroberfläche.
Ryan hat viele, viele nette Dinge über das Googlebook und die Benutzeroberfläche gesagt, also werde ich hier ziemlich schnell vorgehen.
Wie Sie sehen, läuft Options+ auf verschiedenen Plattformen, in unserem Fall Windows, Mac und jetzt Googlebooks.
Wir haben also zwei Ziele: Zum einen soll es sich so anfühlen, als wäre es plattformspezifisch, aber gleichzeitig soll es sich auf allen Plattformen ähnlich anfühlen. Das bedeutet, dass Sie, wenn Sie mit Options+ auf einer Plattform vertraut sind, es auch auf einer anderen Plattform problemlos verwenden können.
Wir möchten also die Vorteile der jeweiligen Plattform nutzen, aber gleichzeitig dieselbe Designsprache verwenden.
Wie Sie sehen, ist die Designsprache also durchgängig einheitlich.
Wie bereits erwähnt, nutzen Googlebook-Nutzer ihr Gerät eher wie einen Laptop oder Desktop-Computer.
Unsere App selbst sieht also auch auf dem Googlebook wie eine Desktop-App aus.
Die App selbst verhält sich also möglicherweise wie eine Desktop-App und funktioniert gut bei verschiedenen Fenstergrößen und unterschiedlichen Berührungen. Natürlich können Sie auch Maus und Tastatur verwenden.
Das war eine kurze Geschichte über Logitech-Peripheriegeräte und Options+ auf dem Googlebook.
Und es funktioniert hervorragend.
Das ist aber erst der Anfang.
Wir haben einige Schritte geplant: Zum einen möchten wir diese Funktion auf mehr Geräten, mehr Tastaturen, Mäusen und anderen Peripheriegeräten verfügbar machen. Zum anderen möchten wir die App selbst anhand des Feedbacks von echten Nutzern weiter verbessern.
Und dann ist da natürlich noch der wichtigste Punkt: Wir werden auch in Zukunft mit Google zusammenarbeiten und unsere Produkte noch stärker in die neuen Plattformen integrieren.
Unser oberstes Ziel ist es also, die Anpassung von Peripheriegeräten zu einem ganz natürlichen Teil der Nutzung von Googlebooks zu machen und Menschen dabei zu helfen, so zu arbeiten, wie sie es möchten.
Okidoki.
Besuche unsere Stände im Erdgeschoss und probiere Options+ und die fantastischen Logitech-Geräte selbst aus.
Und danke an unseren Partner Google und danke an Sie alle für Ihre Zeit.
Vielen Dank.
// Vendor and product Information
const val VENDOR_ID = 1234
val pid = 123
// Use the mouse Middle Button as the trigger
val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)
// Set Voice Assistant as the action
val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
val action = actionBuilder.build()
val im = context.getSystemService(INPUT_SERVICE) as InputManager
im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)