Android 開発の最新情報をご紹介する「Now in Android」#20
2020年7月6日月曜日
この記事は Chet Haase による Android Developers - Medium の記事 "Now in Android #20" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は Android 11 ベータ版、11 Weeks of Android、Android 11 Meetups、AndroidX リリース、IOSched サンプルコード、最近公開されたブログ記事・動画・関連ドキュメント、ポッドキャスト エピソードをご紹介します。
前回のエピソード #19 ではあまり多くのことを取り上げませんでした。直近の数週間で一般公開された大くのデベロッパー コンテンツをご紹介するタイミングを待っていたのです。そのため、今回の記事は少しばかり長いものになっています。どうぞ最後までご覧ください。
Android 11 Beta… リリース!
6 月 3 日に開催を予定していたオンラインイベント Android 11 : The Beta Launch Show を中止し、いつもとはかなり異なる形でさまざまな機能を詳しく紹介しました。いくつかの動画や関連ツール、未バンドル ライブラリとともに Android 11 Betaを公開しました。
このリリースの詳細や Android 11 の新機能を最大限に活用する方法(ツールとアンバンドル ライブラリも含む)については、リリースの概要をお伝えするブログとAndroid 11 動画プレイリストをご覧ください。ベータ版はこちらからダウンロード可能です。Android 11 に含まれるすべての新しい機能、Android Studio、Jetpack Compose、Hilt、Paging、System UI、新しくなった Google Play Console などについて最新情報を手に入れましょう。
11 Weeks of Android:
Android 11 beta 発表のタイミングで公開した 14 本の動画では、私たちがデベロッパーの皆さんのために行ってきたすべての作業内容をご紹介するのは難しいので、11 Weeks of Android という新しいコンテンツ シリーズを開始しました。毎週、UI や Jetpack、開発言語など、特定の分野について新しいコンテンツをお届けします。
第 1 週: 人と ID
Android 11 は、皆さんの生活に最も重要な「人」を認識して優先できる OS にするよう務めました。愛する人とつながることが、なによりも大切だからです。Android 11 の新機能を活用すると、大切な人や友人、会社の同僚と簡単につながることができます。今回のリリースの中心となるのは、Android Conversation Shortcut API と Identity Services Library です。また、ユーザーが簡単にサインアップおよびログインできるようになる新しいレベルのパスワード管理も提供されます。詳細はこちらのブログ記事をご覧ください。第 2 週: 機械学習
コードラボなどのコンテンツ、スクリーンキャスト、Android Developer Challenge の入賞者発表に関する情報をご紹介しています。Twitter の Android Developers(#11WeeksOfAndroid)では随時最新情報を投稿し、Android Developers Blog で概要やすべてのリンクを確認できますのでご覧ください。第 3 週: プライバシーとセキュリティ
Android 11 で実装されているプライバシーとセキュリティ機能について詳しく解説しています。
Android 11 Meetups
現在、物理的に人が集まるイベントは一時的に開催を見送っています。そのため、世界各地のデベロッパー コミュニティがオンラインでイベントを実施しています。Google はこのコミュニティ活動をサポートし、Android 11 について多くの情報を必要とする方全員にお届けするために、Google Developers Groups (GDG) との共催で Android 11 やそれに関連する情報をお届けするオンライン セミナーシリーズを開催しています。日本では、 6 月 23 日から 9 月 29 日にかけてほぼ 2 週間に 1 回計 8 回に渡って行います。
イスタンブールで行われた最初のイベントではMurat Yener、Yigit Boyar と私がお話し、バンガロールの BlrDroid ミートアップには Romain Guy、Murat、Yigit と私が参加しました。今後予定されているだけでも、私はベルリン、ジャカルタ、ロンドン、カラチのイベントにも参加します。こんなに早く遠くまで、時差ぼけもなしに旅行したことはありません。そして、こんなにマイルがたまらないのも初めてです!お住いの地域で開催されるイベントは、Android 11 Meetups Web サイトでご確認ください。
AndroidX
この数週間で、(いつものように)いくつかの AndroidX ライブラリがリリースされました。そのほとんどは、アルファ版、ベータ版、RC チャンネルという中間バージョンです。そのため、多くを取り上げることはしませんが、特筆すべき例外もあります。現在アルファ版
まず、数多くのライブラリが最初の アルファ版リリースに到達しています。その中から、AndroidX で実現された新機能のいくつかを紹介します。- Hilt: Android で依存性注入を行う新しい Hilt ライブラリの最初のリリースです。Dagger を利用して構築されており、Android で DI を行う際の推奨ライブラリです。
なお、AndroidX のバージョンは 1.0.0-alpha01 となっていますが、このライブラリは既に Dagger と一緒に使われている Google の内部バージョンに由来しています。切り替え可能な方はぜひご利用ください。現在アルファ版ですので、ベータ版になる前に皆さんのフィードバックなどを取り入れて API が少し変更される予定です。また、後述する Hilt の記事や、Hilt を使うようになった IOSched アプリ(後述)のコードも忘れずにご覧ください。 - Paging 3.0.0: Paging ライブラリが完全に書き直されてから初めてのリリースです。コルーチンや Flow のメリットを得るために Kotlin で書き直されましたが、他のアプローチを好む方のため、RxJava や Guava ListenableFuture プリミティブもサポートしています。Paging を使えば、RecyclerView へのデータのロードが簡素化および最適化されます。非同期アップデートが使われているので、今回の変更によって Paging は今まで以上に強力なものになるはずです。
- Startup 1.0.0: アプリケーションの起動を高速化するライブラリです。大量の ContentProvider を生成するという従来のアプローチ(それぞれの起動時にかなりの負荷がかかります)をとるのではなく、1 つの ContentProvider をプーリングして利用するなど、起動時のタスクを簡素化して集約することでそれを実現します。
- Room 2.3.0: このバージョンは主にバグの修正ですが、新しい Paging 3 ライブラリ(前述)のサポートも追加されています。
- Benchmarking 1.1.0: このライブラリによって、コードのパフォーマンス テストが簡単になります。今回の最新リリースでは、割り当ての指標、Android Studio プロファイラ ツールとの統合、簡単なセットアップ、そして(もちろん)バグの修正に対応しています。ADB ポッドキャスト エピソード #121 では、チームに詳しい話を聞いていますので詳しくはこちらをお聞きください。
- Core 1.5.0: 今回のリリースは、ShortcutInfo、Notifications などの Android 11 の新しい API と同期をとっています。
- Security Crypto 1.1.0: その他の変更として、このライブラリでは API 21(Android Lollipop)までのリリースをサポートするようになりました。
現在安定版
さらに、以下のライブラリは安定版になっています。このマイルストーンを待っていたという方は、ぜひお試しください。- Fragment 1.2.5: 今回のバグ修正リリースで安定版になりました。いくつかの修正は、今後の 1.3.0 リリースにバックポートされます。
サンプルコード: IOSched
毎年、Google I/O と Android Developer Summit に向けて、チームは既存の IOSched アプリの開発を続けています。このアプリには 2 つの目的があります。1 つはカンファレンスの参加者にスケジュール管理アプリを提供すること、もう 1 つは最新機能と最高の開発慣習を用いた本物の高機能なアプリ環境を提供してコミュニティと共有することです。
今年は Google I/O が中止となり、目的は後者のみとなりました。しかし私たちは作業を続け、先日アプリが完成しました。今回は、Kotlin コルーチンのサポートのほか、Benchmarking、ViewPager2、Hilt などのいくつかの新しい AndroidX ライブラリの使用を組み込み、GitHub にコードを公開しました。
最近公開されたブログ記事と動画
Hilt で Android に依存性を注入
Manuel Vivo が、新しい Hilt ライブラリによる Android への依存性注入に関する記事を投稿しています(Hilt の詳細は、前述の AndroidX セクションを確認するか、この記事をお読みください)。Jetpack の新機能
Florina Muntenescu が投稿したこちらの記事は、Android 11 プレイリストの一部として投稿された Yigit Boyar の 動画の拡張版で、Hilt、Paging 3、Autofill、SeekableAnimatedVectorDrawable などの最新ライブラリの概要と、Android Studio で Database Inspector を使って Room アプリ、WindowManager、MotionLayout をデバッグする方法について説明しています。また、既存ライブラリの新機能も紹介しています。たとえば... と思いましたが、おそらく直接記事を読んでいただく方が早いでしょう。Android Studio によるデバッグ
Android Studio チームの David Herman が、チームから集めたデバッグのヒントに関する記事を投稿しています。この記事では、今すぐ使えるテクニックがたくさん紹介されています。なお、この記事は、2019 年 10 月に開催された Android Developer Summit のプレゼンテーションに基づいています。こちらの動画でも同じ内容をご説明しています。- ほしい情報のみを確認できるように、logcat のフィルタを設定する
- (再起動してデバッガを使うのではなく)既に実行されているアプリにデバッガをアタッチする
- ブレークポイントに関するいくつかのヒント
- コードのどの部分かを突き止める際に役立つスタックトレース分析
- その他多数!(本当です。たくさんのヒントが詰まったとても長ーい記事です)
System Trace
Yi Yang が、Android Studio の System Trace ツールの最新の改善点についての記事を投稿しています。System Trace は、systrace ツールの Android Studio 版です。これは、難しいパフォーマンスの問題を分析する際に、私たちが何年もの間内部的に使ってきたツールです。systrace を使うと、アプリ内のすべてのスレッドによる処理の詳細や、システム全体で他に起きていることについての情報を確認できます。System Trace では、この情報を IDE から直接確認できます。System Trace は、systrace 用のすっきりした UI を実現するために作成したもので、結果の取り込みと視覚化の両方を簡単に行えるようになっています。この 2 つの systrace のバージョンの大きな違いとして、systrace の出力はブラウザで確認するのに対し、System Trace は Android Studio に統合されています。また、System Trace(Studio 版)はデバッグしているアプリの情報のみが含まれ、システムで実行されている他のプロセスの情報は含まれません(ただし、顕著な例外として、SurfaceFlinger プロセスの一部の情報が含まれます。これはアプリのレンダリング パイプラインと密接に連携して動作するので、レンダリング パフォーマンスの問題の分析に役立ちます)。System Trace では、最新の計測テクノロジーのメリットを受けるために、API 28 以降で内部的に Perfetto を使っています。
具象化
Murat Yener は、消去されたものを具象化の記事の動画バージョンを投稿しています(Now in Android 第 19 号でご紹介しました)。最近公開されたドキュメント
Jetpack
Jetpack に新しいランディング ページができました。Jetpack の概要のほか、この巨大なライブラリ スイートの最新の開発情報も含まれています。
Modern Andoird Development(最先端の Android 開発)
Modern Android Development とは、最高の Android アプリを作るためにすべての Android デベロッパーが採用すべきだと私たちが考える一連の技術です。API、ツール、言語、配布メカニズムなどが含まれています。これについては、過去数年間にわたり何度かお話ししてきましたが、私たちがこのフレーズで意図することをさらに具体的に定義する時期が来たようです。新しいランディング ページは、さらに詳しい説明に加えて、機能を使い始めたり、(多くの方が多くの機能を既に使っているので)開発ライフの中で活用の幅を広げたりする際に役立つ便利なリンクが含まれています。
ADB (Android Developers Backstage) ポッドキャスト 新エピソード
前回の Now in Android 以降、Android Developers Backstage に新しいエピソードが投稿されています。以下のリンクまたはお気に入りのポッドキャスト クライアントでご確認ください。
ADB 142: 機械学習の学習
Tor Norbye と私が、Android の機械学習について Hoi Lam と Matej Pfajfar に話を聞きました。ML Kit、TensorFlow Lite、転移学習、フェデレーション ラーニング、ML モデル バインディング、Android Neural Networks API などについて学ぶことができます。ADB 141: 会話についての議論
Tor Norbye、Romain Guy と私が、Android 11 の人中心の新機能である会話について、System UI チームの Julia Reynolds と Stefan Franks と議論しました。通知シェードの上の専用スペースに会話通知が表示されます。この機能は、バブル機能と連携して動作することに注意してください。バブル機能については、最近 Episode 140: Bubbles! でお話ししています。またお会いしましょう
今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC