アプリの基礎

Googlebook の第 1 波: Notability と Logitech

スピーカー

  • Emilie Roberts

    デベロッパー リレーション エンジニア

  • Ryan Shea

    Android 責任者

  • Joe Yezhou Wang

    Logitech のエンジニアリング マネージャー

概要

講演について

Googlebook のリリースにより、高忠実度でデスクトップ グレードのエクスペリエンスの新たなフロンティアが開かれます。このセッションでは、このプラットフォームをゼロから構築した 2 社の先駆的なパートナーの舞台裏をご紹介します。

Notability が、Jetpack Compose を使用してデスクトップ クラスの Android アプリを作成した経験を共有します。デスクトップを重視した他のアプリ プラットフォームから移行した経緯について説明します。次に、Logitech がハードウェアの側面を掘り下げ、Googlebook とシームレスに統合する周辺機器をどのように構築、カスタマイズしているかについて説明します。このセッションに参加して、入力の最適化、大画面 API の活用、ハードウェアとソフトウェアにわたるプレミアムで一貫性のあるユーザー エクスペリエンスの提供に関する、実践的で実用的な分析情報を入手してください。

概要

  • Jetpack Compose と Navigation 3 を使用すると、デバイスのフォーム ファクタではなく、利用可能なウィンドウ サイズに基づいて、デバイス間でレイアウトを簡単に適応させることができます。
  • デスクトップ クラスのエクスペリエンスを実現するには、キーボードやトラックパッドなどのマルチ入力モデルをサポートする必要があります。Android 17 の「続きから」などの機能により、ユーザーはデバイス間でタスクを引き継ぐこともできます。
  • Jetpack Ink を使用すると、デベロッパーはカスタム レンダリング スレッドや複雑なレイヤのハンドオフを管理することなく、低レイテンシの描画パイプラインを実現できます。
  • 許可リストに登録された Peripheral Customization API を使用すると、デベロッパーはベンダー ID とプロダクト ID を使用して、周辺機器のハードウェア トリガーを OS のアクションにマッピングできます。

Gemini Notebook

トピック

  • googlebook
  • jetpack-compose
  • jetpack-ink
  • navigation-3
  • large-screens
  • peripheral-customization
  • kotlin-multiplatform

文字起こし

Googlebook 向け開発の概要

  • こんにちは。デベロッパー アドボケイトの Emilie Roberts です。私は 9 年ほど前から、ノートパソコンで Android アプリを開発しています。

  • Googlebook がリリースされました。

  • 正解です。

  • Google がノートパソコンの分野にもたらしているイノベーションは、とても素晴らしいと思います。

  • そして、Googlebook でアプリを美しく表示するために多大な投資をしてきた 2 人の開発者と一緒にステージに立つことができて、とても嬉しく思っています。

  • お問い合わせいただきありがとうございます。

  • Notability の Ryan です。

  • 私は Android 担当マネージャーです。これは、Android でリリースしたばかりのデジタル ノートブック アプリです。

  • iOS、パソコン、Google ブックスでも利用できます。

  • こんにちは。

  • Logitech の Joe です。Logitech は、優れたハードウェアと周辺機器で知られています。

  • そして、それらを新しいプラットフォームにどのように移行したかについて説明します。

大画面向け Android アプリの設計

  • 押し倒してやる。

  • そこで、Google ブックスの登場です。

  • 正解です。

  • 正解です。

  • 正解です。

  • デモブースで、ご自身で、または 1 階上か 1 階下で、お試しいただけたでしょうか。

  • もちろん、アプリがどのように表示されるかを確認することも忘れないでください。

  • Android エコシステムは成長しているという、いつもの話をします。

  • 私は 9 年間そう言い続けてきましたが、今でもそれは変わりません。

  • アプリは、さまざまな画面サイズやデバイスでユーザーのニーズを満たせるように進化する必要があります。

  • パフォーマンスと動作に優れたアプリ レイアウトを構築することは、現時点では標準的な手法です。

  • そのための最適な方法が、Jetpack Compose と Navigation 3 です。

  • 入力も同じです。

  • 問題なく動作するはずです。

  • もちろん、アプリのアーキテクチャと状態管理はすべて、レイアウトと入力の一部です。

  • ADS では、最新のツールとベスト プラクティスを使用してこれを行う方法について、多くの講演が予定されています。

  • しかし、本日は、Googlebook 向けに最初から開発を行ってきたデベロッパーの皆様に少しお時間をいただき、お話を伺う絶好の機会だと考えました。

  • Notability は、Googlebook 向けにゼロから構築された、高機能なメモ作成アプリです。

  • Logitech は、キーボードやマウスなどの周辺機器が Chromebook で動作するだけでなく、ユーザーによるカスタマイズも含めて、非常に快適に動作するように取り組みました。

  • ジョー、先を越してしまってすみません。でも、詳しく見ていきましょう。

  • 私にとっては、これで十分です。

  • 今回はラップはありません。

  • フリースタイルはもうやめよう。

  • とにかく、Notability が Chromebook で利用できるようになったことを大変嬉しく思っています。それでは、Ryan にバトンタッチします。

  • よろしくお願いいたします。

Android に Notability を導入

  • いいですね。

  • Em さん、ありがとうございました。

  • Google ブックスに掲載されることをとても嬉しく思っています。

  • Notability は、現在、何百万人もの学生が学習に、専門家がメモを取るために使用しています。

  • 先ほど申し上げたように、この機能は Android で今すぐチェックできます。今回は、この機能の構築方法と、Android 向けに正しく構築することで、最初から Googlebook に非常に近い形で最適に構築できることについて、簡単にお話しします。

  • まず、約 2 年前にこのプロジェクトを開始したとき、iOS アプリをそのまま移植してユーザーに提供するだけでは不十分だと考えていました。

  • ユーザーの期待に真に応えるネイティブな操作性を実現しながら、すべての機能を同等に提供したいと考えました。

  • そのために、マテリアル デザインとコンポーネントを使用して、すべての画面をゼロからカスタマイズしました。

  • また、Jetpack Compose をベースにしていることを確認しました。

  • Jetpack Compose を全面的に採用したネイティブ Android アプリであるため、小型のスマートフォンやローエンド デバイスだけでなく、大画面のハイエンドでパワフルなタブレット、パソコン、XR、自動車など、あらゆるハードウェアをサポートできます。

  • Jetpack Compose を使用すると、UI インターフェースに多くの追加機能を構築することなく、これらをネイティブにサポートすることが非常に簡単になります。

  • 次は Notability です。

  • Notability のすべてが Jetpack Compose で構築されています。

  • UI はプラットフォーム全体で一貫しており、基本的に 1 回構築すれば、スマートフォンに表示されるものと、タブレットや Googlebook などの大型デバイスに最終的に表示されるものとの間に実質的な違いはありません。

  • この目的を達成するうえで、Navigation 3 は大きな役割を果たします。

  • Google 搭載の Notability でのナビゲーション 3 の仕組みは、画面サイズに基づいてレイアウトをカスタマイズできるというものです。この機能がどのように表示されるかを心配する必要はありません。

  • このデモでは、サイドパネルを開くスペースがある場合は開くことがわかります。

  • ただし、対応していない場合は、代わりにボトムシートとしてポップアップ表示されます。

  • では、コードではどのように記述するのでしょうか。

  • ここに表示されているコードでは、右側の実際の概要パネルのエントリ ポイントが 1 つあり、それをバックスタックに追加していることがわかります。

  • 次に、カスタム シーン戦略が、スペースの有無に応じてサイドパネルのレイアウトを選択します。

  • タブレットや Googlebook デバイスでは、利用可能なスペースを見つけて、右側からパネルをスライドさせて表示します。

  • ただし、スマートフォンや折りたたみ式デバイスなどでは、パネルを適切に表示するのに十分なスペースがない可能性があるため、代わりにボトムシートとしてポップアップ表示されます。

  • Notability は、デバイスの種類(スマートフォン、Googlebook、タブレット、折りたたみ式デバイスなど)を気にすることなく、ウィンドウのサイズに適応するため、ユーザーが必要とするものに UI を自動的に適応させることが非常に簡単です。

  • スマートフォンでは、すべてのボタンとツールが親指で簡単に操作できる位置に配置されていることがわかります。

  • タブレットでは、メイン コンテンツの横にナビゲーション パネルが表示されます。これは、タブレットの方が画面が広く、操作しやすいためです。

  • 折りたたみ式デバイスでは、折りたたみを活用して、学習クイズなどの独自のレイアウトと UI を提供しています。ユーザーは、下半分に回答を表示し、上半分に実際のクイズの進行状況を表示できます。

  • 最後に、Google ブックスでは、ウィンドウのサイズ変更がスムーズに行われます。

  • デスクトップ上の他の通常のウィンドウ表示アプリケーションと同様に、Notability は、ウィンドウのサイズを必要に応じて変更すると、それに合わせて調整されます。

  • Googlebook のほぼすべてのデスクトップ エクスペリエンスで機能するアダプティブ UI を構築しました。

  • かなり近いところまで行けるはずです。

  • しかし、デスクトップ クラスの体験、つまり本当に素晴らしい体験をしたい場合は、いくつかおすすめの方法があります。

  • まず、キーボード操作を優先します。

  • ユーザーは、通常のタブレットやスマートフォン デバイスほどタッチ操作に敏感ではないため、キーボード ショートカットや、Android ショートカット リストに簡単にアクセスできる方法を用意することが非常に重要です。

  • 次に、デバイスの種類や利用可能な入力周辺機器に応じて、機能のレイアウトを変えるように設計できる場合があります。

  • キーボードやマウスが接続されたノートパソコンなどが検出されると、ホーム画面に少し異なる UI が表示されます。これは、タブレットのようなデバイスではスタイラスや自動手書きペンメモが主なオプションになるのに対し、ノートパソコンのようなデバイスでは、ユーザーが好むと思われるツールにリダイレクトされるようにするためです。

  • もう一つ検討すべきことは、複数の異なるデバイスがどのように相互作用するかです。

  • 「続きから」は、Android 17 の新機能で、あるデバイスから別のデバイスにアプリをシームレスに引き継ぐことができます。

  • この例では、スマートフォンからより大きなデスクトップ デバイスにメモを引き継いでいます。

  • これは、メモ ID を簡単に同期し、Google 側で現在の状況を簡単に確認するだけで、簡単に行うことができます。

  • そのため、Googlebook デバイスに簡単なアプリ インテントを送信するだけで、中断したところからすぐに再開できます。

  • デスクトップ クラスのデバイスで考慮すべきもう 1 つの点は、マルチ入力サポートモデルです。

  • そのため、前述のキーボード ショートカットだけでなく、以前とは異なるタイプのズームやスクロール動作を備えたトラックパッドも利用できるようになります。

  • また、以前はなかった右クリック メニューをユーザーが利用できるようにする必要がある場合もあります。

  • また、Googlebook デバイスの多くはタッチスクリーン デバイスであるため、ユーザーがデバイスを操作する際には、スタイラスと指だけでなく、トラックパッド カーソルについても異なる入力認識を行う必要があります。これら 3 つはすべて異なる方法で処理する必要があるためです。

Jetpack Ink を使用した低レイテンシの描画

  • Notability のようにインクやメモの作成に関心がある場合は、Jetpack Ink を使用することをおすすめします。

  • これは、インク用の低レイテンシのビルドシステムを提供するために使用するもので、スレッド、レンダリング、バッファ リーダー、その他のさまざまなものの、複雑で重いスタックを管理する必要はありません。これについては後ほど少し説明します。

  • 今すぐ使えるのであれば、Logitech のおかげで、Notability アプリのライブデモをお見せできます。

  • はい、問題ありません。

  • おっと、

  • これで完璧です。

  • 先ほどのテストが表示されています。

  • しかし、ご覧のとおり、指を使っているので、ここでは指の入力が認識されています。これは素晴らしいことです。

  • 必要に応じてマウスを使用することもできます。

  • しかし、現時点では、Android 専用のカスタムブラシをいくつか作成することができました。

  • ご覧のとおり、ここでは虹とキラキラのエフェクトが選択されているため、入力またはインクのエフェクトは、下にある Jetpack ライブラリの Jetpack Ink ライブラリの影響を受けます。

  • ここで、メッセージをもう一度書き出してみましょう。

  • こんにちは。

  • 最後の部分には Android グリーンを選択しましょう。

  • 正しくタップするのが難しい。

  • Android グリーンです。

  • そして、ここでベースモデルとして選択した色に応じて、実際の色が変わることがわかります。

  • 完璧です。

  • 以前は、このようなブラシを作成する際、カスタム シェーダーやインターフェースなど、すべてを正しく、見栄え良く仕上げるのに数か月かかることもありました。

  • ありがたいことに、Jetpack Ink の AI とカスタムブラシ ビルダーのおかげで、1 週間もかからなくなりました。

  • インク関連の製品をお探しの場合は、ぜひお伝えください。

  • この API は非常に優れており、時間を大幅に節約できました。

  • わかりました

  • 先ほどお話ししたように、このような構成になります。

  • そこで、ウェットインク レイヤと呼ばれるものがあります。

  • これは、描画中のインクで、まだ描画中であり、非常に高い応答性が求められます。

  • 物理的なものから考えると、これは理にかなっています。

  • 保存されたインクはすでに完成しています。

  • そのため、以前は引き継ぎをすべて自分たちで行う必要がありました。

  • そのため、スレッド処理、再描画、クリーンアップを行い、ドライレイヤに渡して、同期され、ちらつきが発生しないようにする必要がありました。このように、複雑な処理が多数ありました。

  • そして最後に、Notability の独自性を適用する必要がありました。

  • 独自の曲線フィッティング モデルがあり、手書き文字を際立たせる方法があります。

  • これが従来のモデルでした。

  • Jetpack Ink のおかげで、曲線フィッティングをカスタムの進行状況シェイプビューにフィードするだけで、Android ですぐに魔法のように機能します。

  • Jetpack Ink とその他の Google ライブラリの両方について検討しているもう 1 つのことは、KMP です。

  • そこで、すでに構築されていた iOS コードを調べ、Android と iOS の間でロジックの一部を共有したいと考えました。

  • モデル、変化、複雑な数学があります。

  • 共有するのが理にかなっています。」

  • そこで、C++、Apple の Objective-C を使おうと考えました。

  • Kotlin Multiplatform は、iOS エンジニアにとって実装が容易なだけでなく、実際にはより高速であることがわかりました。

  • Kotlin を使用することでパフォーマンスが向上し、Android コードの多くをコピーできただけでなく、長期的には iOS にとっても容易になりました。

  • コードを共有したい場合は、Kotlin マルチプラットフォームを検討することをおすすめします。

  • 現時点では、まだ評価の段階です。

  • まだ 100% サポートされているわけではありません。ご存じのとおり、さまざまな AI モデルにより、複数の場所にコードを配置するだけで不正行為が容易になっていますが、Google はこの問題に積極的に取り組んでおり、非常に高く評価しています。

  • では、Notability ならではの特別な機能をご紹介します。

  • Android で動作するテキスト エディタを構築しようとすると、現時点では、大規模なドキュメント テキスト エディタを構築する適切な方法がないことに気づくかもしれません。

  • 基本的な Android の編集入力フィールドは、小さな UI、小さな EditText、小さなショートフォームなど、小さなものばかりです。

  • 最終的に構築する必要があったのは、基本的に既存の Android API の上に構築され、はるかに大きなドキュメント(数千ページのテキスト)を同時に処理できる、非常に複雑なシステムでした。共同編集が可能なので、別の場所にいるユーザーが 500 ページ離れた場所を編集しているときに、その変更が自分の作業に影響を与える可能性があります。

  • そのために、キーストロークが 2 つのパスをたどるようにしました。

  • 1 つ目の方法は、このキーはここに表示されるはずだ、というベスト エフォートです。

  • 現時点で確認できる内部の状況から判断すると、問題はないと思われます。

  • そして、簡単な同期を行います。

  • バックエンドに移動して、協力者を確認し、「すべて問題ないか?

  • 意図がわかる質問ですか。

  • 大丈夫?」

  • 変更が必要な場合は、その時点で再調整されます。

  • 2 人のユーザーが同じ行でキーを連打していると、誰が何を取得するのかが少しわかりにくくなります。

  • しかし、ほとんどの場合、これは非常にうまく機能します。

  • ここで言及している理由は、これが Google が取り組んできた膨大な作業であり、オープンソース化を検討しているためです。

  • このカンファレンスに参加されている方、またはオンラインでご覧になっている方で、この取り組みに協力したい、これは良いアイデアだと思われる方がいらっしゃいましたら、ぜひお知らせください。

  • 投資する価値が本当にあるのかどうか議論しているところですが、これは私たちにとって大きな取り組みであり、その結果にはかなり満足しています。

  • インクの仕組みは次のとおりです。

  • コラボレーション モデルの観点から、Google 側での仕組みをもう少し直接的に説明します。

  • ご覧のとおり、3 つのステップがあります。

  • タッチダウンでは、接続されているデバイス(この場合は iPad)に「インクイベントを開始する」ことを伝えます。

  • 次に、実際の描画があります。ユーザーがデバイス(ペン)を動かしている時間に応じて、1 つから数百万個の描画が存在する可能性があります。

  • あまり長くならないことを願っています。

  • ある時点で限界に達するとは思いますが、通常のユースケースであれば問題ありません。

  • そして、リフトアップ イベントがあります。

  • そこで、モデルに一時的なオブジェクトを保持することで、この問題を管理しています。

  • つまり、iPad では「ストロークが入力されつつあるが、まだここにはない」という状態になります。

  • 操作することはできません。

  • 一時的なものです。」

  • そして、その終了イベントが起動したときに初めて、

  • これを、iOS や他のクライアントが取得して操作できる 1 つのオブジェクトに置き換えます。」

  • また、これはオープンソース化を少し検討しているものでもあります。

  • これは、直接的なインクではなく、特にテキストレイヤの一時的なものです。

  • ありがとうございます。

  • そして、

  • 他にも、使用をおすすめする機能があります。

  • オンデバイス AI は素晴らしいものです。

  • ドキュメント スキャナとして使用して、ドキュメントのスキャン、PDF テキストの分析、手書き文字の認識などを行うことができます。

  • また、Gemini などのオープン クラウド AI モデルを使用して、スマートノートを生成しています。ユーザーのノートを分類、要約し、学習モデルにとってより良く、よりインタラクティブな方法でユーザーにフィードバックします。

  • これらすべてが組み合わさることで、Notability はノートパソコン用アプリのように感じられます。

  • 最終的な目標は、

  • さまざまなモデルや機能、テキスト入力などがありますが、重要なのは、ノートパソコンのアプリのように感じられるか、それとも大画面に電話アプリをポップアップして操作しているように感じられるかです。

  • キーボード、トラックパッド、タッチペン、ウィンドウのサイズ変更など、ユーザーが快適に操作できるように、すべての主要な機能を適切に調整する必要があります。

  • しかし、先ほども述べたように、Jetpack Compose、Navigation 3、マテリアル デザインはすべて、この点をカバーしています。

  • そのため、適切に行えば、実際にはそれほど大きな負担にはなりません。

  • ここに来るのはとても簡単です。

  • そうですね。

  • 重要なポイントは以上です。

  • Android の将来を考えるとき、デバイスのことはもう考えないでしょう。

  • スマートフォン、折りたたみ式デバイス、XR デバイス、デスクトップ、ノートパソコン、タブレット、自動車、テレビなど、デバイスの種類を意識する必要はありません。

  • 代わりに、利用可能な画面サイズは何か、ユーザーが利用できる入力モーダルは何か、ということが重要になります。

  • そして、今後も可能な限り最高の体験を提供していきましょう。

  • 先ほどのスライドでも触れたように、Compose と Nav 3 を使えば、これらすべてを簡単にサポートできます。

  • そして Google は、Jetpack Ink や Gemini オンデバイスなど、コア エクスペリエンスを簡単に構築できる、非常に強力な新しい API を日々リリースしています。これにより、デベロッパーは独自の魔法のソースに集中できます。

  • 違いますね。

  • そうですね。

  • ありがとうございました

  • 私の話は以上です。

  • 後ほど質問があればお答えします。Notability に直接問い合わせていただいても構いません。

  • このアプリは、2 か月ほど前に Android でリリースされたばかりです。

  • ついにベータ版を終了しました。

  • ぜひお試しください。

  • フィードバックをお寄せください。

  • 後ろのデモプロセスにある Google ブックスでも入手できます。

  • それでは、Logitech の Joe にバトンタッチします。

  • ありがとうございました

Googlebook に Logitech Options+ を導入

  • それでは

  • Ryan さん、ありがとうございます。

  • 今日、わかりました。すみません。

  • スライドを表示しましょう。

  • Ryan さん、ありがとうございます。

  • 本日は、周辺機器のカスタマイズ アプリである Options+ を Chromebook に導入した方法についてご紹介します。

  • 周辺機器のエクスペリエンスを構築するとはどういうことでしょうか?

  • 私たちが構築したもの、その背後にあるいくつかのエンジニアリングのハイライト、ローライト、そして今後の方向性について説明します。

  • Logitech のデバイスは以前から Android に対応しており、ほとんどのユーザーは、周辺機器によってアクセシビリティが向上したと感じています。特に、プレミアムなノートパソコンや、外部モニターにドッキングされたスマートフォンでその効果が顕著です。

  • これに関連して、先ほど下の階の Googlebook のデモブースで、Logitech のゲーミング シーケンシャル ギアをテーブルに接続し、それを使ってタブレットの画面を切り替えているのを見ました。

  • ご覧ください。

  • これは、1 つの使用方法です。

  • あ、そういえば、フェラーリはシーケンシャルに 5 万ユーロの追加料金を請求しなければならなかった。とにかく。

  • うん

  • Googlebook では、Ryan が包括的に説明したように、より広いスペースで作業できます。

  • ご覧のとおり、画面のサイズを変更したり、横向き、縦向き、正方形にしたりできます。また、アプリ間で作業するためのスペースが大幅に増えています。

  • 作業を続けたり、別のアプリに切り替えたり、コンテキストを切り替えたり、さまざまなことができます。

  • これにより、アプリのデザインは確実に変化し、レイアウトはプロセス全体を通して有用性を維持する必要があります。

  • Logitech にとって、これは特に興味深いことです。なぜなら、当社は周辺機器の分野で豊富な経験を持つ企業だからです。

  • Google は、この取り組みに非常に強固な基盤をもたらします。

  • そのため、そのような作業環境では、マウスやキーボードが、ユーザーが 1 日の作業を通じて操作する方法となります。

  • 非常にスムーズにワークフローに移行できます。

  • ロジクールが数十年にわたる経験をこの取り組みに活かしていると言っても過言ではないと思います。

  • 今月初めに 45 周年を迎えたばかりだと思います。

  • Logitech の 2 年目の 2 日目からマウスを製造していると思います。

  • このような経験があるため、この分野への参入に自信を持っています。

  • さらに、ChromeOS には優れた実績があります。

  • これまで、ChromeOS との優れた互換性を保証してきました。

  • これらすべてを考慮すると、Google は、ハードウェア、ソフトウェア、プラットフォーム、OS、Googlebooks の境界をなくす実用的なエクスペリエンスを構築しています。

  • たとえば、ユーザーがボタンを押すと、予測可能な結果が表示されるというシンプルな例があります。

  • 誰もが当たり前のように使っているもののような気がします。

  • しかし、実際には、シームレスなコンポーネントの互換性が必要です。

  • さらに、周辺機器との互換性も重要です。

  • たとえば、感度を適切に調整することです。

  • 65。それ以上でもそれ以下でもありません。

  • そのため、これら 3 つの要素すべてにおいて、シームレスな互換性の統合が非常に重要になります。

  • 今回、Googlebooks のリリースに伴い、Googlebooks 向けの Options+ をリリースします。

  • 現時点では、さまざまなマウスとキーボードをサポートしており、今後さらに増える予定です。

  • また、この画面では、ユーザーがデバイスを設定することもできます。

  • 先ほど述べたように、感性など、あらゆるものが含まれます。

  • ここからが興味深い部分です。

  • 構成可能性について話すとき、実際には 2 つの側面について話しています。

  • 1 つはハードウェア、ファームウェア側で、ファームウェアに実装される機能です。

  • もう一方は、このデモとこのプレゼンテーションの重要なポイントである OS 側です。

  • ご存じのとおり、これまでの Android デバイスでは、ほとんどのアプリが独自のサンドボックス(ユーザー空間)に存在していました。

  • できることには一定の制限があり、多くの場合、できないことや、やりたいことが制限されます。

  • これは、私たちにとって非常に重要なことです。

  • これはスクリーンショットです。後でデモを行いますが、ここではスクリーンショットを示します。

  • ここに MX Master 4 というマウスがあります。これには多くの機能があります。

  • 周辺機器の世界に詳しい方なら、特定の機能がファームウェア機能やデバイス機能として実装されていることがわかるでしょう。

  • そうでないものもあります。

  • Google では、ユーザーが両方を構成できるように取り組んでいます。

  • 私たちの仕事は、基本的に、これらのオプションを理解しやすくし、ユーザーに完全な機能を提供することです。また、OS とファームウェアに対してこれらのオプションを正しく構成することです。

  • では、簡単なデモを見てみましょう。

  • これは非常に印象的なデモでした。

  • でも、次はマウスを使ってね、ライアン。

Options+ のライブデモ

  • それでは やってみましょう

  • こちらがデバイスの画面です。

  • MX Master 4 マウスがオンボーディングされています。

  • では、やってみましょう。

  • 先ほどご覧いただいた構成画面に直接移動します。ここからが本領発揮です。

  • では、まず「かこって検索」を親指ボタンに割り当ててみましょう。

  • 次に、マジック ポインタを機能ボタンに配置しましょう。

  • では、始めましょう。

  • ブラウザを開きます。

  • ここに来て。

  • ここでは、かこって検索を割り当てた親指ボタンを押します。

  • ご覧のとおり、キーボードを丸で囲みます。

  • これで、

  • Google は、このキーボードに関する情報を表示しているだけです。

  • とても便利で、とてもスムーズです。

  • 今度は、別のことを試してみましょう。

  • あ、ごめん。

  • 逆方向に進めてみましょう。

  • マジック ポインタを試してみましょう。

  • ここで、これを切り替えてみましょう。

  • 機能ボタンを押して、これをタグ付けし、「このデバイスは何ですか?」と押します。

  • これで完了です。

  • Google が検索を開始し、結果を表示します。

  • この方法の優れた点は、ワークフロー全体を片手操作に統合できることです。

  • 機能を割り当てて、押して、丸で囲んで、クリックして、完了です。

  • このような操作により、ユーザーのアクセシビリティと作業方法が大幅に向上すると考えています。

  • では、スライドに戻りましょう。

周辺機器カスタマイズ API の概要

  • では、何が原因でそのようなことが起こったのでしょうか。

  • なぜなら、過去の多くのことはアプリではできないからです。

  • そこで、周辺機器カスタマイズ API の登場です。この API は、Googlebook と Android デバイスの両方で利用できます。

  • ただし、Google からの注意事項は次のとおりです。

  • 現時点では、この API は許可リストに登録されています。

  • ただし、今四半期(2026 年第 4 四半期)の Android アップデートとともにリリースされる予定です。

  • リリースされれば、世界中のデベロッパーが利用できるようになると思います。

  • ここで、少し技術的な側面について説明します。

  • この全体には、3 つの主要なコンポーネントがあります。1 つはデバイス、もう 1 つはトリガー(キーやボタンなど)、もう 1 つはアクション(アプリの OS 側)です。

  • このコード スニペットを簡単に見てみましょう。

  • 一番上では、ベンダー ID とプロダクト 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)
  • 通常、vid と pid と呼ばれます。

  • さらに下に進むと、トリガーの定義が始まります。

  • ここでは、中央のボタンをトリガーとして使用します。

  • ここでは、中央のボタンを OS 機能の音声アシスタント部分にマッピングします。

  • 必要があります

  • AppCustomizationAction からの actionBuilder がここにあります。

  • さらに下に進むと、製品、デバイス、トリガー、アクション間のマッピングを登録しています。

  • 実際のコードはこれよりも少し複雑ですが、全体的なコンセプトはこれです。

  • 非常にわかりやすく、使いやすい。

  • もう一つ、非常に便利で興味深い機能があります。

  • ここに GIF ファイルを配置して、誰でも簡単に確認できるようにしました。

  • つまり、互換性のあるサポート対象デバイス(この場合は Logitech Mobifold マウス)が接続されると、OS が標準の通知をトリガーして、「このデバイス用のアプリがあります」と通知します。

  • もちろん、お客様に伝えます。

  • クリックすると Google Play ストアに移動し、そこからインストールできます。

  • これはファスト ペアリング検出と呼ばれます。

  • 最後に、UI 側について説明します。

  • Ryan が Googlebook の UI の作成方法について多くの優れた点を取り上げてくれたので、ここではかなり手短に説明します。

  • ご覧のとおり、Options+ はさまざまなプラットフォームで動作します。この場合は、Windows、Mac、そして Googlebook です。

  • そのため、私たちの目標は実際には 2 つあります。1 つは、プラットフォーム固有のように感じられるようにすることですが、同時に、全体的に似ているように感じられるようにすることです。つまり、1 つのプラットフォームで Options+ に慣れたら、別のプラットフォームでもスムーズに使用できるようにすることです。

  • つまり、特定のプラットフォームを活用しながら、同じデザイン ランゲージを使用する必要があります。

  • ご覧のとおり、一貫したデザイン ランゲージが全体に適用されています。

  • また、前述のように、Googlebook ユーザーは Googlebook をノートパソコンやデスクトップ パソコンのように使用する傾向があります。

  • そのため、Googlebook 上でも、アプリ自体はデスクトップ アプリのように見えます。

  • そのため、アプリ自体がデスクトップ アプリのように動作し、ウィンドウ サイズやさまざまなタッチ操作に対応します。もちろん、マウスやキーボードを使用することもできます。

今後のロードマップとまとめ

  • 以上が、Googlebook でのロジクールの周辺機器と Options+ に関する簡単な説明です。

  • そして、これは非常に効果的です。

  • しかし、これはまだ始まりにすぎません。

  • いくつかのステップがあります。1 つは、このエクスペリエンスをより多くのデバイス、キーボード、マウス、その他の周辺機器に提供することです。また、実際のユーザー フィードバックを使用して、このアプリ自体を改良したいと考えています。

  • そしてもちろん、最も重要なのは、今後も Google と協力して、新しいプラットフォームにさらに深く統合していくことです。

  • そのため、Google の最終的な目標は、周辺機器のカスタマイズを Googlebook の使用において非常に自然なエクスペリエンスにし、ユーザーが望む方法で作業できるようにすることです。

  • 了解。

  • 下の階のブースで、Options+ と素晴らしいロジクール デバイスをぜひお試しください。

  • また、パートナーである Google に感謝いたします。そして、皆様、本日はお時間をいただきありがとうございました。

  • ありがとうございました

コード

コード スニペット

「周辺機器カスタマイズ API の概要」の 26:16 の Kotlin スニペット
// 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)