🦋
[Google I/O 2021 メモ]Refreshing widgets
動画
Android12に加えた主要な改善について紹介
Why Widgets?
- Widgetは2008年、Android Cupcakeからある
- アプリの機能を補足するもの
- 素早く情報をみたり、タスクを完了したり、ホーム画面からインスピレーションを得たり
- 素早く情報をみたり、タスクを完了したり、ホーム画面からインスピレーションを得たり
- Widgetが残ってきた理由
- 便利
- アプリを起動しなくてもひと目で情報を把握でき、今後の予定や音楽再生に簡単にアクセスできる
- 84%のユーザーが1つはWidgetを使用している。63%のユーザーは複数のWidgetを使用している
- 個人的
- iOSもAndroidユーザーもカスタマイズを楽しんでいる
- iOSユーザーの7人に1人は、少なくとも1つはWidgetを利用している。人気のあるのはカスタマイズに焦点を当てたもの
- 魅力的
- 熱心なユーザーがリエンゲージする場合は特に
- GoogleKeepのWidgetは2018に比べ3.5倍使われるようになった
- Widgetを使うユーザーのアプリへのエンゲージメントはそうでないユーザーより高い
- 便利
- Android12ではシステムUIにここ数年で最大のアップデートが加えられ、Widgetも含まれる
- Widget導入を通じてアプリのエンゲージメントを促進できるようにした
- ツールとリソースを提供し、簡単に構築、メンテナンスできるようにした
What's New in Android12
- 3つのKey factorを定めた
- Useful
- Discoverable
- Beautiful
Useful
- どうすれば便利なWidgetを簡単に作れるか
- CheckBox,Switch,RadioButtonなどのインタラクティブな要素を追加。
- 縦Scroll, 複数の選択可能要素などのサポートは継続
- ホーム画面からアプリを操作できるようになる
- デザインはマテリアルデザインが使われ、システムUIと調和する
- Personalize
- 以前から編集できたがほとんどのランチャーで編集する操作が見つけづらかった
- デフォルトで良いユーザーは初期設定を飛ばせる
- Widgetを再構成可能にするにはwidetFeatures="reonfigurable"というフラグを追加
- 編集ボタンがウィジェットに付き、設定を変更できる
Discoverable
- Widgetの検索と操作に役立つツールが用意されている
- Widget Pickerの改善
- よりリアルなプレビューや説明を表示
- previewLayout属性にlayoutXMLを指定
- デフォルト値を使用する実際のWidgetと同じであるのが理想
- descriptipn属性で説明を付与できる
- よりリアルなプレビューや説明を表示
- Widget候補は、Androidのオンデバイス検索、アシスタントなど、Android12の多くの場所で表示される
- ホーム画面の外でWidgetを簡単に見つけたり参照することができる
- Capabilities APIで検出メカニズムとコンテキストを有効にできる
- アシスタントを使い、音声によってウィジェットの呼び出しができる。App Actions BIIでアプリにディープリンクする方法と似ている。
- アシスタントを使い、音声によってウィジェットの呼び出しができる。App Actions BIIでアプリにディープリンクする方法と似ている。
- 単発の回答だけでなく複数ステップの対話も可能にする
- Text To SpeechはWidgetHelperSDKを使って処理される
- ダンキンドーナツで注文するデモ
Beautiful
- システムレベルのリソースを導入して、コーナー半径やpaddingが統一されるようにする
- システムレベルリソースを使用しない場合でもランチャーがWidgetにマスク適用し、一貫性が保たれるようになる
- Responsible layouts
- 大画面やフォルダブルに合わせてレスポンシブルなWidget設計をする重要性が高まっている
- app-widget-providerにmaxResizeWidth/Heightを設定し、制限を設けることができる
- appWidgetManagerを使ってレイアウトの調整を行う
- Personalized Themes and Colors
- DynamicColorAPIを追加、システムカラーを活用したり、Pixelでは壁紙から抽出した色を使える
- WidgetレイアウトのthemeでDeviceDefaultを使う
- Smoother Transitions
- Widgetとアプリ間のスムーズなトランジションを実現
- Widgetレイアウトのidに@android:id/backgroundを指定するだけ
- 2021年版のWidgetガイドライン作成中
Jetpack Compose
- 年内にWidget構築のためのJetpack Composeライブラリを導入する予定
- 下位互換性のある美しいResponsiveWidgetを簡単に構築できる
- 設計中だが、コンセプトのスニペットがある
Discussion