[go: up one dir, main page]

この記事は Jamal Eason による Android Developers Blog の記事 "Announcing Android Studio Arctic Fox & Android Gradle plugin 7.0!" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

2020 年 12 月 1 日(日本時間 12 月 2 日)、Android Studio Arctic Fox(2020.3.1) の初めてのバージョンが Canary チャンネルでリリースされ、それとともに Android Gradle プラグイン(AGP)バージョン 7.0.0-alpha01 もリリースされました。今回のリリースでは、Android Studio と Gradle プラグインのバージョン番号の付け方を調整しています。この変更で、Android Studio のバージョン番号スキームから Gradle プラグインを切り離し、Android Studio のそれぞれのリリースがどの年に行われて、どの IntelliJ バージョンに一致しているかを明らかにします。


新しいバージョン番号スキーム - Android Studio

Android Studio Arctic Fox(2020.3.1)では、Android Studio のベースとなっている IDE である IntelliJ IDEA との整合性を高めるため、年に基づいた採番に移行します。バージョン番号スキームは、年、ベースとなった IntelliJ のバージョン、機能およびパッチレベルという重要な属性を組み込んだものに移行します。この名称変更により、Android Studio で使っている IntelliJ プラットフォームのバージョンがすぐにわかるようになります。さらに、メジャー バージョンごとに正規のコードネームを割り当てます。最初のコードネームは Arctic Fox で、以降はどのバージョンが新しいのかが簡単にわかるように、アルファベット順に進めます。

デベロッパーの皆さまには、最新の機能と品質改善を利用できるように、最新バージョンの Android Studio を使うことをおすすめします。バージョンを簡単に最新に保つことができるように、Android Studio のバージョンと Android Gradle プラグインのバージョンは明確に切り離します。覚えておくべき重要な点は、IDE をアップデートしても、ビルドシステムがアプリをコンパイルしたりパッケージングしたりする方法は何も変わらないことです。逆に、アプリのビルドプロセスの変更や APK / バンドルは、プロジェクトの AGP バージョンによって決まります。したがって、開発サイクルの後半であっても、Android Studio のバージョンは安全にアップデートできます。プロジェクトの AGP バージョンは、Android Studio のバージョンとは異なるタイミングでアップデートできるからです。また、新しいバージョンのシステムでは、安定版リリースの AGP バージョンを使っている限り、個人やチームのアプリ プロジェクトで安定版とプレビュー版の Android Studio を両方同時に実行することがこれまで以上に簡単になります。 

これまでのバージョン番号システムで言えば、今回のリリースは Android Studio 4.3 になります。新しい番号システムでは、Android Studio Arctic Fox(2020.3.1)Canary 1、または単に Arctic Fox となります。

今後、Android Studio のバージョン番号スキームは次のようになります。

<IntelliJ バージョンの年>.<IntelliJ メジャー バージョン>.<Studio メジャー バージョン>

  • 最初の 2 つの番号グループは、特定の Android Studio リリースが基づいている IntellIj プラットフォームのバージョンを表します。今回のリリースでは、2020.3 になります。

  • 3 つ目の番号グループは、Studio のメジャー バージョンを表します。これは 1 から始まり、メジャー リリースごとに 1 つずつ増えます。

  • 各バージョンを簡単に表せるように、メジャー リリースにコードネームも割り当てます。コードネームは動物の名前に基づくものとし、A から Z の順番に割り当てられます。最初のリリース名は Arctic Fox です。  


新しいバージョン番号スキーム - Android Gradle プラグイン

AGP 7.0.0 では、セマンティック バージョニングの考え方を採用し、AGP に必要な Gradle バージョンと一致させます。 Android Studio と Android Gradle プラグインとの互換性には、変更はありません。AGP の安定版を使うプロジェクトはそれより新しいバージョンの Android Studio で開くことができます。 

近日中には更に、AGP のバージョン番号の考え方と、今回の新しいメジャー リリースである AGP 7.0 の新機能について詳しく説明したブログ記事を公開する予定です。


Android Studio Arctic Fox の新機能

現在は Arctic Fox の機能開発フェーズの初期段階ですが、コードエディタ、アプリ インスペクション ツール、Layout Editor、組み込みエミュレータなど、IDE のさまざまな領域にわたる 200 以上の品質改善とバグの対応を行いました。具体的なバグの修正については、リリースノートをご覧ください。 

Jetpack Compose を使っている方のために、デバイスやエミュレータへの @Preview Composable のデプロイなど、多くの新しいアップデートを行っています。

Preview Composable のデプロイ


新しい Layout Validation ツールもお使いください。さまざまな画面サイズ、フォントサイズ、Android Color Correction / Color Blind Mode にレイアウトがどう反応するかを確認できます。この機能には、Layout Editor を使っているときに [Layout Validation] ツール ウィンドウからアクセスできます。 


最後に、MacOS(その他のプラットフォームも近日中に対応予定)で最新の Android プラットフォーム ツールと Android 11 デバイスを使っている方は、Run  ボタンのデバイス選択ダイアログ → [Pair Devices Using Wi-Fi] から、IDE に組み込まれた Wireless ADB 機能を使うことができます。   

Wireless ADB 機能にアクセスするためのメニュー


Wireless ADB セットアップ ウィンドウ 


Android Studio と Android Gradle プラグインの今回のリリースに含まれるその他の詳しい変更点については、リリースノートをご覧ください。

Reviewed by Takeshi Hagikura - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC

この記事は Scott Swarthout による Android Developers Blog の記事 "Android studio 4.1" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


2020 年 10 月 12 日(日本時間 10 月 13 日)、Android Studio 4.1 の安定版がリリースされました。編集、デバッグ、最適化の一般的なユースケースに対応する一連の機能が追加されています。今回のリリースの主なテーマは、Android Jetpack ライブラリを使う際の生産性向上でした。Android Jetpack とは、デベロッパーがベスト プラクティスに従って速くコードを書けるようにするための Android ライブラリ スイートです。皆さんからのフィードバックに基づき、コード編集操作にたくさんの改善を行ったほか、よく使われる Android ライブラリを IDE に統合しています。

Android Studio 4.1 で注目すべき機能には、アプリのデータベースを照会できる新しい Database Inspector、依存性注入に Dagger または Hilt を使うプロジェクトのナビゲーションのサポート、オンデバイス機械学習のサポート向上(Android プロジェクトでの TensorFlow Lite モデルのサポートを含む)などがあります。さらに、変更の適用を更新してデプロイを高速化しました。皆さんからのフィードバックに基づき、ゲーム デベロッパーに役立つ変更も行いました。新しいネイティブ メモリ プロファイラとスタンドアロン プロファイリング ツールを導入しています。

私たちは、Android Studio の品質を向上するため、バグやパフォーマンスの問題に懸命に対応してきました。多くのデベロッパーの皆さんから、パフォーマンスと信頼性の向上に主眼を置いていることを評価する声が届いています。今回のリリース サイクルでは、2,370 個のバグを修正し、公開されていた 275 個の問題をクローズしたことをご報告します。デベロッパーの皆さんの生産性にとって鍵となるのは、高い品質です。私たちはこれからも高い品質を維持することをお約束します。


プレビュー リリースで早くからフィードバックを寄せてくださった皆さん、ありがとうございました。皆さんからのフィードバックは Android Studio 4.1 の開発にあたって反復作業や機能改善に役立ちました。最新の安定版リリースを使う準備が整い、新たな生産性機能を使ってみたい方は、Android Studio 4.1 をこちらからダウンロードしてください。


続いて、主なデベロッパー フローごとに分類された、Android Studio 4.1 のすべての新機能をご紹介します。



デザインマテリアル デザイン コンポーネントのアップデート

新しいプロジェクトを作成する際のダイアログに表示される Android Studio のテンプレートが、マテリアル デザイン コンポーネント(MDC)を使ったものになりました。デフォルトで、テーマとスタイルの最新ガイドに準拠しています。この変更により、推奨のマテリアル スタイル パターンや、ダークテーマなどの最新の UI 機能を簡単に使えるようになります。


プロジェクト テンプレートのマテリアル デザイン コンポーネントのアップデート


アップデートには、以下の内容が含まれています。

  • MDC: プロジェクトは、build.gradle の com.google.android.material:material を利用します。ベースとなるアプリのテーマの親が Theme.MaterialComponents.* になり、アップデートされた MDC の色と「on」属性をオーバーライドします。

  • カラーリソース: colors.xml のカラーリソースは色の名前を使います(たとえば、colorPrimary ではなく purple_500 となります)。

  • テーマリソース: テーマリソースが(styles.xml ではなく)themes.xml に格納され、Theme.<ApplicationName> 名を使います。

  • ダークテーマ: ベースとなるアプリのテーマの親が DayNight になり、res/values と res/values-night に分割されます。

  • テーマ属性: 色のハードコードを避けるため、レイアウトとスタイルのカラーリソースはテーマ属性(たとえば、?attr/colorPrimary)として参照されます。


開発Database Inspector

新しい Database Inspector では、アプリのデータベースを簡単に調査、照会、変更できるようにしたいと考えました。この機能を使ってみるには、API レベル 26 以降を実行しているデバイスにアプリをデプロイし、メニューバーから [View] > [Tool Windows] > [Database Inspector] を選択します。アプリで Jetpack Room ライブラリを使っている場合でも、Android プラットフォーム バージョンの SQLite を直接使っている場合でも、実行中のアプリのデータベースやテーブルを簡単に調査したり、カスタムクエリを実行したりできます。


Android Studio は、アプリを調査しているときもライブ接続を維持しているので、Database Inspector を使って値を変更し、実行中のアプリで変更内容を確認することもできます。Room 永続化ライブラリを使っている場合は、コードエディタの各クエリの隣にも実行ボタンが表示されるので、@Query アノテーションで定義したクエリをすばやく実行できます。詳細はこちらをご覧ください


Database Inspector でアプリのデータベースを調査、照会、変更


Android Studio の中で直接 Android Emulator を実行

Android Studio の中で直接 Android Emulator を実行できるようになりました。この機能を使うと、画面スペースを節約したり、ホットキーでエミュレータとエディタのウィンドウ間をすばやく移動したり、1 つのアプリケーション ウィンドウの中で IDE とエミュレータのワークフローを整理したりできます。なお、スナップショットの管理や、回転やスクリーンショットなどの一般的なエミュレータ操作は Studio から行うことができますが、すべてのオプションにアクセスするには、安定版のエミュレータを実行する必要があります。この機能は、次の操作でオプトインできます。


[File] → [Settings] → [Tools] → [Emulator] → [Launch in Tool Window]


Android Studio の中で Android Emulator を実行


Dagger ナビゲーション サポートDagger は、Android で依存性注入を行う際によく使われるライブラリです。Android Studio は、新しいガター アクションを提供し、[Find Usages] ウィンドウのサポートを強化することで、Dagger 関連のコードを簡単に移動できるようにしています。たとえば、ある型を使うメソッドの隣にある ガターアクションをクリックすると、その型の提供元が開きます。逆に、ガター アクションをクリックすると、型が依存関係として使われている場所が開きます。Android Studio は、Jetpack Hilt ライブラリで定義された依存関係のナビゲーション操作もサポートします。詳細はこちらをご覧ください


ガター アクションで Dagger 関連のコード間を移動


TensorFlow Lite モデルの利用

Android デベロッパーは、機械学習を使って革新的で便利な体験を生み出しています。TensorFlow Lite は、モバイル機械学習モデルを記述する際によく使われるライブラリです。私たちは、こういったモデルを Android アプリに簡単にインポートできるようにしたいと考えました。Android Studio は、ビューのバインディングと同じような使いやすいクラスを生成してくれます。そのため、少量の型安全なコードでモデルを実行できます。ML モデル バインディングの現在の実装では、メタデータで拡張されたイメージ分類とスタイル変換のモデルがサポートされています。

インポートしたモデルの詳細やアプリでモデルを使う手順は、プロジェクトで .tflite モデルファイルをダブルクリックし、モデルビューアのページを開くと確認できます。詳細はこちらをご覧ください


Android Studio 4.1 で TensorFlow Lite モデルのメタデータを確認


ビルドとテストAndroid Emulator - 折りたたみ式デバイスのヒンジのサポートAndroid Studio


Android エミュレータは、最近追加された 5G 携帯通信のテストに加え、折りたたみ式デバイスもサポートします。Android Emulator 30.0.26 以降では、さまざまなデザインや設定の折りたたみ式デバイスを設定できます。折りたたみ式デバイスを設定すると、エミュレータはヒンジ角度センサーのアップデートと姿勢の変化を報告するようになります。そのため、このフォーム ファクタに対してアプリがどのように応答するかをテストできます。詳しくは、ブログ投稿 Developing for Android 11 with the Android Emulatorをご覧ください。



変更の適用のアップデート

ビルドが速くなれば、デベロッパーは短時間で簡単にアプリを変更できるようになります。アプリに対する反復作業の生産性を上げるため、Android 11 以降を実行しているデバイス向けに、変更の適用機能を強化しました。


私たちは反復作業にかかる時間の短縮に本格的に取り組み、アプリをインストールすることなく変更をデバイスにデプロイして永続化する方法を開発しました。一度 Android 11 デバイスにデプロイすれば、それ以降、コードの変更の適用 [Apply Code Changes] または変更を適用してアクティビティを再起動 [Apply Changes and Restart Activity] する場合のデプロイが大幅に速くなります。さらに、変更の適用でコードの変更のサポートが強化されています。メソッドを追加した場合でも、コードの変更の適用 [Apply Code Changes] または変更を適用してアクティビティを再起動 [Apply Changes and Restart Activity] のどちらかをクリックすることで、実行中のアプリに変更をデプロイできるようになっています。


AAR から C/C++ の依存関係をエクスポート


Android Gradle プラグイン 4.0 には、AAR の依存関係の Prefab パッケージをインポートする機能が追加されています。この機能については、ネイティブ ライブラリの共有もサポートするように拡張したいと考えていました。AGP バージョン 4.1 を利用すると、Android ライブラリ プロジェクト用の AAR に格納されている外部ネイティブ ビルドからライブラリをエクスポートできます。ネイティブ ライブラリをエクスポートするには、ライブラリ プロジェクトの build.gradle ファイルの android ブロックに以下を追加します。

buildFeatures {
    prefabPublishing true
}

prefab {
    mylibrary {
      headers "src/main/cpp/mylibrary/include"
    }

    myotherlibrary {
        headers "src/main/cpp/myotherlibrary/include"
    }
}

ネイティブ クラッシュ レポートのシンボリケーション


ネイティブ コードでクラッシュや ANR が発生した場合、システムはスタック トレースを生成します。これは、クラッシュした瞬間までにプログラムがネストして呼び出した一連の関数のスナップショットです。このスナップショットは、ソースの問題を特定して修正する際に役立つ可能性がありますが、マシンのアドレスを人間が読むことができる関数名に戻すため、まずシンボリケーションを行う必要があります。


C++ などのネイティブ コードを使ってアプリやゲームを開発する場合、アプリのバージョンごとにデバッグ シンボル ファイルを Play Console にアップロードできるようになりました。Play Console は、このデバッグ シンボル ファイルを使ってアプリのスタック トレースのシンボリケーションを行い、クラッシュや ANR を解析しやすくします。App Bundle にデバッグ シンボルを含めるには、プロジェクトの build.gradle ファイルに次の行を追加します。


android.buildTypes.release.ndk.debugSymbolLevel = 'SYMBOL_TABLE'


最適化システム トレース UI の改善

Android Studio 4.1 では、システム トレースを大幅に見直しました。システム トレースは、アプリがシステム リソースをどのくらい使っているかをリアルタイムで確認できる最適化ツールです。今回は、ボックス選択モードでトレースを簡単に選択できるようにし、新しい解析タブを追加し、アプリの UI のレンダリングに関する問題を調査できるように詳しいフレーム レンダリング データを追加しました。詳細はこちら(英語)をご覧ください


ボックス選択: [Threads] セクションで、マウスをドラッグすると、四角形の領域をボックス選択できるようになりました。右上の [Zoom to Selection] ボタンをクリックする(または M キーボード ショートカットを使う)と、ズームできます。また、隣り合っている似たようなスレッドをドラッグ&ドロップすると、複数のスレッドをまたいで選択し、同時に調査できます。


ボックス選択でトレースの選択がさらに簡単に


Summary タブ: [Analysis] パネルに新しく [Summary] タブを追加しました。このタブには、以下の内容が表示されます。


  • 発生回数、最短時間、最長時間など、特定のイベントのすべての発生に関する統計の集計

  • 選択したイベントの統計のトレース

  • スレッドの状態分布データ

  • 選択したトレース イベントの最長実行時間


[Summary] タブに集計した統計を表示


データの表示: [Display] セクションに SurfaceFlingerVSYNC の新しいタイムラインが追加されました。アプリの UI のレンダリング問題を調査する際に役立ちます。


スタンドアロン プロファイラ

Android Studio のメイン ウィンドウとは別のウィンドウで Android Studio のプロファイラにアクセスできるようになりました。この機能は、Unity や Visual Studio など、別のツールで構築した Android ゲームを最適化する場合に便利です。

スタンドアロン プロファイラを実行するには、以下の操作を行います。


  1. システムで Android Studio のプロファイラが起動していないことを確認します。

  2. インストール ディレクトリの中にある bin ディレクトリに移動します。

    • Windows/Linux: <studio-installation-folder>\bin
    • macOS: <studio-installation-folder>/Contents/bin

  3. OS に応じて、profiler.exe または profiler.sh を実行します。

  4. スタンドアロン プロファイラから Android Emulator や接続されているデバイスに接続できるようになります。

  5. スタンドアロン Android Studio プロファイラでアプリを最適化

Native Memory Profiler


ゲーム デベロッパーや C++ を使っているデベロッパーにとって重要なのは、ネイティブ メモリの使用量をトラッキングし、アプリのメモリ消費を最適化する方法を理解することです。Android Studio の Memory Profiler に、Native Memory Profiler が含まれるようになりました。Android 10 以降を実行する実機にデプロイしたアプリが対象になります。Native Memory Profiler は、特定の時間帯におけるネイティブ コードのオブジェクトの割り当てや割り当て解除をトラッキングし、合計割り当て量やシステムヒープの残量についての情報を提供します。


Memory Profiler ウィンドウの上部にある [Record native allocations] をクリックすると、記録を開始します。


Native Memory Profiler でネイティブ メモリの割り当てを確認



Android Studio 4.1 に含まれる主な機能拡張と新機能


デザイン


  • マテリアル デザイン コンポーネントのアップデート


開発


  • Database Inspector
  • Android Studio の中で直接 Android Emulator を実行
  • Dagger ナビゲーション サポート
  • TensorFlow Lite モデルの利用


ビルドとテスト


  • Android Emulator - 折りたたみ式デバイスのヒンジのサポート
  • 変更の適用のアップデート
  • AAR から C/C++ の依存関係をエクスポート
  • ネイティブ クラッシュ レポートのシンボリケーション


最適化


  • システム トレース UI の改善
  • スタンドアロン プロファイラ
  • Native Memory Profiler


本資料は、Unity Technologies やその関連会社による提供または提携ではありません。“Unity” は、米国およびその他の場所における Unity Technologies またはその関連会社の商標または登録商標です。



この記事は Chet Haase による Android Developers - Medium の記事 "Now in Android #24" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は Jetpack Compose アルファ版、ConstraintLayout 2.0、#11WeeksOfAndroid、Android 11 Meetups、AndroidX リリース、最近公開されたブログ記事・動画・関連ドキュメント、ポッドキャスト エピソードをご紹介します。Jetpack Compose: アルファ版公開!
Jetpack Compose は未来の Android UI ツールキットで、その範囲はとても広くなっています。既にα版が利用できる状態になっているので、時間をかけて試していただくことができます。ぜひ実際にダウンロードして、フィードバックをお送りください
アルファ版リリースなので、API はまだ流動的だとお考えください。現在、ベータ版に向けて細かい改善が重ねられているところですが、多くの API やプログラミング モデルの基礎は固まりつつあります。 Jetpack Compose をセットアップしたり、使いこなすには、Jetpack Compose の Pathway(記事、動画、Codelab が含まれています)、Leland Richardson による Compose の特長をご説明している動画、新しいコードサンプル、さまざまな関連情報へのリンクが掲載された Compose ウェブサイトをご参照ください。Compose の背景や内部の詳細について知りたい方は、こちらの ADB ポッドキャストをお聴きください。

ConstraintLayout 2.0
しばらくの間、このライブラリはアルファ版やベータ版の形式で使われてきましたが、ついに安定版に移行しました。Sean McQuillan が、このリリースに関する記事を投稿しています。ConstraintLayout 2.0 には、以下のようなさまざまな機能が含まれています。
Flow 仮想レイアウトは、複数のアイテムをつなぎ、実行時にコンテナに十分なスペースがない時、次の行に送りたい場合に便利です。
Layer を使うと簡単に、複数のビューに対して同時に変換を適用できます。

MotionLayout は ConstraintLayout のサブセットで、高度な UI 遷移アニメーションを実現します。Android Studio に MotionLayout 用のデザインツールである Motion Editor が搭載されたため、印象に残る体験を簡単なプロセスで作ることができます。使い始めるにあたっては、Studio の新しい Motion Editor ツールに関する Scott Swarthout の記事や、Sean新しいサンプルをご覧ください。
11 Weeks of Android が完結!

第 11 週の UI に関するコンテンツを公開して、11 Weeks of Android が完結しました。この記事では、前回の Now in Android エピソード以降に取り上げた、ゲームと UI に関するトピックについてお知らせします。
第 10 週: ゲーム、メディア、5G
この週は、メディア コントロール新しい 5G 機能の利用、ゲーム開発に関するさまざまな情報について幅広く取り上げました。この週の詳しい内容については、まずまとめのブログ記事Pathway をご覧ください。投稿された動画はプレイリストで確認できます。また、Daniel GalpinAndroid Game Dev Show では、Android のゲーム テクノロジーに関する最新の動画をご覧いただけます。
第 11 週: UI

11 Weeks シリーズの最後の週は UI を取り上げました。キーボード アニメーションマテリアル デザイン コンポーネントをご紹介し、最後に Jetpack Compose アルファ版のリリースをお知らせしました。詳細やリンクは、まとめのブログ記事に掲載されています。モダン UI Pathway から記事や動画、Codelab をご確認ください。また、動画プレイリストで Jetpack Compose の詳しい情報をご覧ください。
Android 11 Meetups がほぼ終了


Android 11 に関する色々なことが仕上げの段階に入りました。 #11WeeksOfAndroid が完結し、夏のオンライン イベント シリーズである Android 11 Meetups も終わりに近づいています。この Meetups は楽しさあふれる国際的なシリーズで、世界中の少なくとも合計 57 か所でイベントが開催されました。どのライブにも参加できなかった方のために、Android 11 Meetups サイトにはたくさんの録画が投稿されています。
コミュニティのオーガナイザーの皆さん、トークやライブ Q&A に登場してくださった講演者の皆さん、そしてイベントにご参加いただいた多くの皆さん、どうもありがとうございました。
[編集部注] 日本では、第 7 回目のイベントを 9 月 15 日(火)10 時から主に今年 3 月下旬に発表された Android 向けゲームの開発ツール、9 月 29日(火)16時からは UI、デザインについての最新情報をご紹介します。ぜひこちらから事前登録をお済ませの上ご参加ください。Google Developers Japan YouTube チャンネルでは、アーカイブも公開しています

AndroidX 公開
いくつかのバージョンの Android ライブラリが公開されました。そのほとんどは、さまざまな開発段階にあるアルファ版やベータ版です。この記事では、いくつかの内容をピックアップして紹介します。
  • Concurrent 1.1.0: このライブラリは、ListenableFuture から Kotlin コルーチンへの変換を簡略化します。
  • Webkit 1.3.0: この新しいバージョンでは、ForceDarkStrategy や WebMessageListener API を利用できます。さらに、WebView がマルチプロセス モードで実行されているかどうかのチェックも可能になります。
  • ConstraintLayout 2.0.0: このリリースには、たくさんのすばらしい新機能が満載されています。その 1 つが、既に説明した MotionLayout です。
  • Security-Identity-Credential 1.0.0-alpha01: この新しいライブラリから、Android 11 の新しい認証情報 API にアクセスできます。また、API 24 までの古いリリース向けに、キーストアをバックエンドとした実装も提供します。
最近公開されたブログ記事と動画構造化クラスの再定義
ART チームは、JVM TI(Java Virtual Machine Tool Interface)が実行時にクラスの構造を変更できる機能(メソッドやフィールドの追加など)を追加しました。これに関して、Alex Light 興味深い記事を公開しています。この変更により、Android Studio の変更の適用機能(アプリのビルドとインストールを高速に行う方法ですが、コードやリソースの変更内容に依存します)をさまざまな状況で使えるようになります。
Motion Tags… 動画シリーズ
Android Studio チームは、Motion Tags という新しい動画シリーズを始めました。ここでは、MotionLayout で高度なレイアウト アニメーションの作成に使うタグを詳しく解説します。現在のところ、4 つのエピソードが投稿されています。プレイリストを確認し、今後の投稿にもご期待ください。


ADB (Android Developers Backstage) ポッドキャスト 新エピソード




前回の Now in Android 以降、Android Developers Backstage に新しいエピソードが投稿されています。以下のリンクまたはお気に入りのポッドキャスト クライアントでご確認ください。
ADB 147: Jetpack Compose Alpha
Romain Guy と私は、ツールキット チームの Clara Bayarri、Matvei Malkov、Anna-Chiara Bellini を招き、Compose が生まれた背景から、API 設計のアプローチ、新しい UI ツールキットを構築するうえでの壁、チームにとっての「アルファ版」という言葉の意味まで、あらゆることを話しました。
またお会いしましょう
今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。


Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing, APAC

この記事は Karen Ng による Android Developers Blog の記事 "Announcing Jetpack Compose Alpha!" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


8 月 26 日(日本時間 8 月 27 日)Jetpack Compose のアルファ版を公開しました。最新の UI ツールキット Jetpack Compose は、すべての Android プラットフォームで美しいアプリをすばやく簡単に構築するために設計されており、プラットフォーム API へのネイティブ アクセスを提供します。劇的に削減されたコード、インタラクティブなツール、そして直感的な Kotlin API を活用して、魅力あふれるアプリを作りましょう。

時間を節約し、少ないコードで成立するプログラミング言語と IDE、そして強力な UI フレームワークは、どんなアプリを開発する時でも必要です。Jetpack Compose は、皆さん(と私たち)の UI 構築の生産性を上げるために開発しました。

その最初の一歩が Android Jetpack でした。この一連のライブラリは、Android でデベロッパーが頻繁に直面する難しい問題を解決するために開発し、プラットフォームのあらゆるバージョンでアプリを確実に動作させ、高い品質を確保できるライブラリとなっています。現在、Google Play ストアのトップ 10,000 アプリの 84% で、いずれかの Jetpack ライブラリが使われています。

また、Kotlin も使用率が高く、現在トップ 1,000 アプリの 70% 以上、そして Android デベロッパーの 60% が Kotlin を使っています。Google Home アプリを例に挙げると、Kotlin を使うことでコードの行を 80% 削減できました。さらに、NullPointerException は過去の同期間と比べて 33% 減少しました。Duolingo も、Kotlin を導入することで平均 30% のコード行数の削減を実現しました。

Jetpack Compose は、大規模で高品質なアプリを構築できる API、直感的な言語、そしてリアクティブ プログラミング モデルを組み合わせたものです。 デベロッパーの皆さんから寄せられていた、シンプルな宣言型 API による UI の構築を希望するというフィードバックを実現しました。





Jetpack Compose アルファ版


Jetpack Compose アルファ版には一連の API が含まれており、強力なツールや、本格的な Android アプリの構築に必要なものがすべてそろっています。既存の Android ビューとの相互運用性も備えていますので、アプリを書き直す必要はありません。Compose API は、マテリアル デザインを使った正規のサンプルアプリのセットとともに設計、開発されています。このサンプルアプリのセットも 8 月 26 日に公開しましたので、Android Studio に直接インポートして試してみることができます。





Jetpack Compose アルファ版には、次のものが含まれています。

  • アニメーション
  • Constraint Layout 
  • デフォルトでサポートされる A11Y
  • 入力とジェスチャー操作
  • ビューとの相互運用性(既存アプリで Composable 関数を利用可能)
  • 遅延読み込みリスト
  • マテリアル UI コンポーネント
  • パフォーマンス最適化
  • テスト
  • テキストと編集可能テキスト
  • テーマとグラフィック
  • ウィンドウ管理

Compose でアプリを作りやすくするため、Jetbrains Kotlin チームとも連携して Android Studio 4.2 Canary 版にも多くの新機能を追加しています。

  • Compose コード補完
  • Compose プレビュー アノテーション
  • 端末への Composable の個別デプロイ
  • インタラクティブ Compose プレビュー
  • コード生成用 Kotlin コンパイラ プラグイン
  • Compose 用 Sample Data API






Compose の特長



Compose は、Android の既存 UI 構築モデルとはまったく異なるプログラミング モデルを使用しています。Android ビューの階層は、当初から UI ウィジェットのツリーとして表現されています。アプリの状態が変更されると、現在のデータを表示するために UI 階層を更新する必要があります。UI を更新する場合は、findViewById() などの関数を使ってツリーから UI を検索し、button.setText(String) や container.addView(View)、img.setImageBitmap(Bitmap) などのメソッドを呼び出してノードを変更するのが一般的な方法です。これらのメソッドは、ウィジェットの内部状態を変更します。手動でビューを更新するという作業は、面倒であるだけでなく、エラーが起きる可能性も高くなります(例: ビューの更新を忘れる)。
Jetpack Compose では、完全に宣言的でコンポーネントベースのアプローチを採用しています。つまり、UI は、データを UI 階層に変換する関数として記述します。ベースとなるデータが変更されると、Compose フレームワークは自動的に UI 階層を更新します。そのため、UI をすばやく簡単に構築できます。





既存の Android ビューとの完全な相互運用性



新しいフレームワークを採用すると、既存のプロジェクトやコードベースに大きな変更が発生します。そのため、Compose は Kotlin と同じくらい採用しやすいものとして設計しました。Compose は、既存の Android コードと完全に相互運用が可能で、すぐに使い始めることができます。

Compose への移行方法は、担当者やチームによってさまざまです。新しいアプリを構築する場合は、UI 全体を Compose で実装する方法が最適かもしれません。しかし、ほとんどの皆さんは既存の大きなコードベースを抱えているはずです。その場合は、アプリを書き直すよりも、既存の UI デザインに Compose を組み込む方がよいでしょう。
主に次の 2 つの方法を使用して、ビューベースの UI に Compose を組み込むことができます。
  • Compose の要素を既存の UI に追加します。これは、まったく新しい Compose ベースの画面を作るか、Compose の要素を既存のフラグメントやビューによるレイアウトに追加することで実現します。
  • Composable 関数にビューベースの UI 要素を追加します。この方法を使うと、MapView や WebView などの Compose 以外のウィジェットを Compose ベースのデザインに追加できます。



さらに、新しいライブラリ MDC Compose Theme Adapter も公開しています。これを使うと、Compose UI で既存のマテリアル コンポーネント テーマを再利用できます。
詳細については、既存のアプリで Compose を使うためのコードラボを試してみるか、次の 2 つのサンプルをご覧ください。





強力なツール



構築する UI をすばやく繰り返し試せるように、Jetpack Compose は Android Studio の強力なツールと組み合わせて利用できるように構築されています。
Compose レイアウト プレビューを使うと、端末やエミュレータにアプリをデプロイしなくても、Compose コンポーネントをプレビューできます。アプリに変更を加えると、プレビューが更新されてすばやく変更点を確認できます。レイアウト プレビューを作成するには、パラメータのない Composable 関数を作成して @Preview アノテーションを追加します。アプリをビルドすると、Studio のプレビュー ペインにプレビュー関数の UI が表示されます。




Android Studio では、インタラクティブ プレビュー モードを利用できます。インタラクティブ プレビュー モードでは、UI 要素のクリックや入力が可能です。UI はインストールしたアプリと同じように反応します。




また、Composable を単独で物理端末や Android Emulator にデプロイすることもできます。Android Studio は、新しいアクティビティを作成してその関数が生成した UI を追加し、端末のアプリにデプロイします。これにより、アプリ全体を再インストールしたりその場所に移動したりすることなく、実際の端末で UI を試すことができます。





Jetpack Compose を使ってみる


Jetpack Compose を使ってみたい方は、Compose チュートリアル を試し、セットアップを行ってみてください。または、直接サンプルアプリを確認することもできます。これらのアプリを紹介している ‘Compose by Example’ の動画もご覧ください。





新しいコードラボやさらに充実したドキュメントなど、Compose 全般に関する情報を確認したい方は、Compose Pathway をご覧ください。

Jetpack Compose は、昨年のオープンソース化以降も引き続き多くの方から貴重なフィードバックをお寄せいただいています。また、バグの記録、 CLにも貢献してくださっています。現在の Jetpack Compose があるのは、皆さんのおかげです。本当にありがとうございました!

Compose は安定版 API に向けた作業やパフォーマンス最適化を行っている段階のため、まだ本番環境での利用は推奨されていません。ですが、ぜひお試しいただき、フィードバックをお寄せくださいKotlin Slack の #compose チャンネルで行われているディスカッションへの参加もお待ちしています。Compose 1.0 は、2021 年のリリースを予定しています。
ぜひ Compose を使ってみてください!


Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing, APAC

この記事は Jamal Eason による Android Developers Blog の記事 "11 Weeks of Android: Android Developer Tools" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



このブログ投稿は、 Android 11 に関する重要な内容を毎週取り上げる #11WeeksOfAndroid シリーズの一部です。第 7 週は、Android デベロッパー ツールがテーマです。


大事なお知らせ


Android Studio でさまざまなデベロッパー ツールのアップデートがリリースされました。安定リリース チャンネルでは Android Studio バージョン 4.0 が、ベータ版チャンネルではバージョン 4.1 が、Canary チャンネルでは最新機能を搭載したバージョン 4.2 が公開されています。これらの各バージョンで重視しているのは、アプリの生産性と、アプリの開発時に信頼できる高品質なプロダクトを提供することのバランスです。この 1 週間、アプリの設計に始まり、コーディング、デプロイ、ビルド、エミュレータによるアプリのテスト、そしてアプリのパフォーマンス プロファイリングに至るまで、開発フローのキーポイントにおける改善点やヒントに注目してきました。このブログでは、Android デベロッパー ツールについて取り上げます。

関連ブログ・動画



Android Studio で最近追加された Android デベロッパー ツールの新機能の概要や詳細なデモについては、#Android11 ベータ版リリースに関するこちらの動画をご覧ください。

デザイン


第 7 週の初めに、デベロッパー向けのアプリのデザインツールに注目したコンテンツをお届けしました。まずは、デザインツールの最新アップデートの概要をまとめた動画をご覧ください。




さらに2 つの解説ブログを投稿しました。

  • Design Tools Suite UX enhancements in Android Studio 4.1 - UI デザインフローを高速化するため、Layout Editor、Resource Manager、Navigation Editor にさまざまな変更が行われ、キーボード ショートカットが更新されました。その詳細を説明しています。
  • Introducing the Motion Editor - このクイックツアーでは、新しい Motion Editor の概要と最新機能を使ってアプリのアニメーションを作成する方法を説明しています。


レイアウトをデバッグするには、Layout Inspector のアップデートに関する動画をご覧ください。




また、Jetpack Compose Design ツールの最新機能について説明する動画を公開しました。



コーディングとデプロイ


第 7 週を通じて、Android Studio のコーディング体験やアプリのデプロイフローを改善するためのヒントやコツを投稿しました。最新の投稿を確認するには、以下のソーシャル メディア アカウントをご覧ください。


  • @androidstudio - Android アプリ開発の公式アカウント
  • @androiddev - Android チームからデベロッパー向けのニュースをお届け


Android Studio の新しい Database Inspector の使い方を説明した動画も新たに公開しました。




さらに、Jetpack Hilt 用の開発ツールに関するブログも更新しています。





ビルド


第 7 週の半ばには、Android デベロッパー ツールのビルドシステムに関する 4 つのブログ投稿をリリースしました。


  • New APIs in the Android Gradle Plugin - 新しいドメイン固有言語(DSL)インターフェースの詳細と、組み込みビルド API の拡張に向けた方向性について解説しています。
  • Understanding your build with the Build Analyzer - ビルドプロセスのボトルネックを発見する際に役立つ新しいビルドツールについて徹底解説します。
  • Configuration Caching deep dive - Gradle の新しいプレビュー機能についての技術解説です。自分のプロジェクトでビルドの高速化を試す方法についても説明しています。
  • Shrinking Your App with R8 - R8 で利用できる機能の概要、縮小が期待できるコードサイズ、R8 でこの機能を有効化する方法について説明します。


Android Emulator



第 7 週は、Android Emulator の使用に関する一連のベスト プラクティスやヒントをソーシャル メディアで共有しました。以下のブログ記事でもご覧いただけます。




パフォーマンス プロファイラ


アプリのパフォーマンス改善は、ユーザー エクスペリエンスの向上に不可欠であることは間違いありません。パフォーマンス プロファイラのコンテンツで週を締めくくったのはそのためです。最初に、System Trace の紹介と、これを使ってアプリのパフォーマンス問題に対処する方法についての動画を投稿しました。




加えて、C++ のメモリ プロファイリングについてのブログ投稿を公開しました。




Android デベロッパーツールについての情報をチュートリアルで確認する



Android デベロッパーツールの概要を確認したい方は、チュートリアル形式で動画や関連ブログ記事・コードラボをまとめて確認できる デベロッパー ツールの Pathway をご覧ください。Pathway は、モジュールを順番に完了する形式になっており、最後にはクイズをご用意しています。クイズに合格した方には、もれなくバーチャル バッジが贈られます。このバッジは、Google Developer プロフィールに保存されます。ぜひ Android 11 互換性の限定バッジを手に入れてください。

#11WeeksOfAndroid 第 7 週 Android デベロッパー ツールのまとめ



最新の Android 開発ツールに注目していただき、ありがとうございます。Reddit AMA でチャットに参加してくださった皆さん、ありがとうございます。第 7 週では、最新の安定版リリース チャンネルや Canary リリース チャンネルの Android Studio の機能を紹介しました。ぜひ Android Studio をダウンロードしてお使いください。

Android デベロッパー ツールそれぞれの主な機能をまとめたリストです。なお、安定版でないバージョンの機能は、品質基準に達するまでは特定のバージョンに組み込まれない場合があります。


Android Studio 4.0(安定版チャンネル)の機能


  • Motion Editor
  • Layout Inspector
  • Layout Validation
  • カスタムビューのプレビュー
  • CPU Profiler のアップデート
  • R8 ルールの編集
  • Build Analyzer
  • Dynamic Feature Dependency
  • Clangd サポート
  • Intellij 2019.3



Android Studio 4.1(ベータ版チャンネル)の機能


  • Database Inspector
  • Dependency Injection Tools
  • 変更の適用の高速化
  • Gradle Configuration Caching(プレビュー)
  • カスタムビューのプレビュー
  • Android Emulator の IDE への組み込み
  • インスツルメンテーション テスト
  • Profiler UI のアップデート
  • ネイティブ メモリ プロファイリング
  • System Trace 2.0
  • 新しい Gradle API
  • MLKit および TFLite モデルのインポート
  • Intellij 2020.1



Android Studio 4.2(Canary 版チャンネル)以降の機能


  • Compose インタラクティブ プレビュー
  • Compose アニメーション視覚化
  • 端末への Compose デプロイ
  • Compose 用 Sample Data API
  • Compose 編集サポート
  • テスト失敗の保持
  • Android Emulator- 5G 接続と折りたたみ式端末のサポート
  • Intellij 2020.2 - 近日公開


関連情報・ドキュメント


#11WeeksOfAndroid 動画コンテンツの全プレイリストはこちらから、それぞれの週の詳しい内容はこちらからご覧いただけます。毎週新しい分野を取り上げますのでご期待くださいTwitter YouTube のフォローもお願いします。ご覧いただき、ありがとうございました!


Reviewed by Yuichi Araki - Developer Relations Team

この記事は Chet Haase による Android Developers - Medium の記事 "Now in Android #21" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は #11Weeksof Androidの新しいトピック「機械学習」「プライバシー」「互換性」について、Android 11 Meetups、AndroidX リリース、最近公開されたブログ記事・動画・関連ドキュメント、ポッドキャスト エピソードをご紹介します。

11 Weeks of Android:




毎週、UI や Jetpack、開発言語など、特定の分野について新しいコンテンツをお届けする 11 Weeks of Android 。前回の Now in Android #20 以降、機械学習、プライバシーとセキュリティの週を経て、第 4 週は Android 11 の互換性を扱っています。

第 2 週: 機械学習


この週はオンデバイス機械学習にフォーカスした Android Developer Challenge の入賞者の発表から始まりました。その後、ML Kit(カスタム分類器のサポートと新しい早期アクセス プログラム)、TensorFlow Hub(モバイルに最適化された新しいモデル)、Android Studio ML binding、複数の新しいコードラボや動画、記事を公開。週末に投稿されたブログでは、すべてのコンテンツや情報をまとめています。「Full spectrum of on-device machine learning tools on Android」と、動画プレイリストをご覧ください。

第 3 週: プライバシーとセキュリティ




第 3 週では、ユーザーのプライバシーを守ることを目的としたプラットフォームの変更点や、さらに安全なプラットフォームを構築する取り組みに関するコンテンツを公開しました。プライバシーについては、ワンタイム アクセス許可、バックグラウンド位置情報、ストレージのスコープ化、アクセス許可の自動リセットなど、Android 11 の重要な動作の変更点についての記事や動画です。セキュリティについては、プラットフォームの安全を確保するための取り組みや、アプリの安全性を強化するバイオメトリック API などのデベロッパー向け機能についてのコンテンツを投稿しました。詳しくご説明している動画のプレイリストもご覧ください。

第 4 週: Android 11 の互換性




第 4 週のトピックは、最新の Android リリースで行われた変更点に対してアプリの互換性を確保する方法です。Twitter で @AndroidDev をフォローすると、最新の投稿を常に確認できます。それまでの間、まずは「Testing app compatibility in Android 11」 の記事をご覧ください。

Reddit AMA でご質問にお答えします


11 Weeks of Android で提供するコンテンツの 1 つに、Reddit AMA(Ask Me Anything)シリーズがあります。この AMA では、Android プラットフォーム チームに、Android 11 リリースの変更点に関する技術的な質問(英語のみ対応)ができます(さらに、ボーナスとして回答がついてくるかもしれません)。

この記事が公開されたタイミングによっては(あるいは、Now in Android の動画ポッドキャストを視聴した日によっては)、AMA は既に終わっているかもしれませんが、同じリンクから質問と回答を確認し、そのときの流れを追うことができます。

オンラインセミナー シリーズ Android 11 Meetups




Android 11 について多くの情報を必要とする方全員にお届けするために、Google Developers Groups (GDG) との共催で Android 11 やそれに関連する情報をお届けするオンライン セミナーシリーズを開催しています。
[編集部注] 日本では、第 3 回目のイベントを 7 月 21 日(火)16 時から Android アプリ開発の主言語である Kotlin の最新情報についてお伝えします。ぜひこちらから事前登録をお済ませの上ご参加ください。

AndroidX


この数週間で、いくつかの AndroidX ライブラリがリリースされました。
新しい安定版リリースは次のとおりです。



  • CustomView 1.1.0: Openable インターフェースが新しく追加されました。このインターフェースは DrawerLayout 1.1.0 SlidingPaneLayout 1.1.0 で実装され、Navigation 2.3.0 で使われています。
  • DrawerLayout 1.1.0: ジェスチャー ナビゲーション インセットの処理が向上し、CustomView 1.1.0 に新しく追加された Openable インターフェースを実装しました。
  • Emoji 1.1.0: この絵文字フォントに、Emoji 12 と 12.1 が加わりました。
  • Navigation 2.3.0: このバージョンには、動的機能モジュール機能が組み込まれています(まだインストールされていないモジュールへのナビゲーションが可能になり、そのモジュールが自動的にダウンロードおよびインストールされます)。このリリースには、バックスタック内の以前の宛先への結果の返却、navigation-testing アーティファクトによるテスト機能の改善、NavigationUI の新しい Openable インターフェース(DrawerLayout と SlidingPaneLayout がこれを実装しています)のサポート、ディープリンクのサポート強化などの機能が含まれています。
  • SlidingPaneLayout 1.1.0: このレイアウトで CustomView 1.1.0 の新しい Openable インターフェースを実装しました。
  • SwipeRefreshLayout 1.1.0: このレイアウトで NestedScrollingChild3 と NestedScrollingParent3 を実装しました。

最近公開されたブログ記事と動画

複数の記事が公開され、プライバシーとセキュリティの週に特化したものも含まれています。

Android 11 のシステム強化

セキュリティチームは、Android 11 でのシステム強化についてブログ記事を公開しました。これには、メモリ割り当ての堅牢性とデバッグに関連するいくつかの最新開発項目(Now in Android #17で触れた Android 11 の GWP-ASAN などが含まれます)や、Android プラットフォームをさらに安全にするその他の機能が含まれています。

ストレージのスコープ化についての FAQ

ここ数回のリリースでプラットフォームの動作が大きく変わった点の 1 つに、ストレージのスコープ化があります。この領域では、ユーザーのデータ保護を強化するための新しい API やアクセス許可、制限が導入されています。nandana が「Android 11 Storage FAQ」の記事でデベロッパーからのよくある質問に回答しています。

パッケージ可視性

Yacine Rezgui が、Android 11 の新しい動作について説明した「Package visibility in Android 11」の記事を公開しました。この動作によって、端末にインストールされた他のアプリに関する情報へのアクセスが制限されます。

アプリの動作の監査

Sara N-Marandi が Android 11 のいくつかの新しい API について解説する記事を公開しました。これらの API は、デベロッパーが自分のアプリの動作とその原因について理解を深めるために役立ちます。データアクセス監査を使うと、ユーザーのアクセス許可が必要なデータをアプリが要求したタイミングと理由を簡単に知ることができます。また、アプリプロセス終了の理由は、デベロッパー(や障害レポート サービス)が実際のユーザーの端末でアプリがクラッシュした理由を判断し、問題を修正する方法を探す際に役立ちます。

Play Billing で課金する

私たちがコードを書くのは、それが本当に楽しいからですよね?しかし、書いたアプリから収益を得なければならないこともあります。そんなときに活躍するのが Google Play Billing です。アプリを収益につなげる主要な方法の 1 つに、アプリ内購入があります。Play Billing のツールやサービス、API を使ってアプリ内購入を実現できます。

Caren Chang は、これを始めるために役立つ連載記事「Working with Google Play Billing — Part 1」 を公開しています。第 1 回では、Google Play Console への項目の追加や Play Billing API を使った項目のクエリなど、Play Billing の概要を紹介しています。

Android 11 Q&A





Daniel Galpin Fred Chung がインドのデベロッパーと一緒に、オンラインで Android 11 や Android 開発一般についての質問にお答えしています

バイオメトリック コードラボ

Isai Damier が新しいコードラボを公開しました。端末のバイオメトリック機能と AndroidX Biometric ライブラリを使ってアプリにログインする方法を Login with Biometrics on Android で説明しています。

ADB (Android Developers Backstage) ポッドキャスト 新エピソード



前回の Now in Android 以降、Android Developers Backstage に新しいエピソードが投稿されています。以下のリンクまたはお気に入りのポッドキャスト クライアントでご確認ください。

現在の ADB エピソードの多くは、#11WeeksofAndroid で取り上げているトピックを中心に企画されています。プライバシーに関する最新エピソードも例外ではありません。

ADB 143: Shhhh! Private!

このエピソードでは、Tor Norbye Romain Guy、そして私が、Android フレームワーク チームの Sara N-Marandi と Philip Moltmann に、Android 11 における新しいアクセス許可の変更点について話を聞きました。変更が行われた理由、コードからアクセス許可を正しく使用する方法、実際の内部動作などについて説明しています。

またお会いしましょう


今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。

Reviewed by Yuichi Araki - Developer Relations Team and Nori Fujii - Google Play Developer Marketing APAC


この記事は 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 YenerYigit Boyar と私がお話し、バンガロールの BlrDroid ミートアップには Romain GuyMurat、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 NorbyeRomain 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

この記事は Chet Haase による Android Developers - Medium の記事 "Now in Android #19" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。






Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は Android Studio 4.0 安定版リリース、Kotlin に関するブログ記事と動画、サンプルコード、ポッドキャストシリーズ Android Developers Backstage 最新エピソードについてお知らせします。

Android Studio 4.0






先日、Android Studio の安定版 4.0 をリリースしました。また、 日本時間 6 月 11 日には Android Studio 4.1 ベータ版と 4.2 Canary 版で新機能をリリースしています。

Android Studio 4.0 については、Now in Android の以前のエピソードでも触れています。今回はその中からいくつかの機能について改めてご紹介します。

Motion Editor
Motion Editor 高機能で柔軟な UI アニメーションを簡単に作成できます


MotionLayout は、UI で強力なアニメーションを作成するための API(具体的には、ConstraintLayout のサブクラス)です。最初と最後の状態を作成し、その状態間で柔軟なアニメーションを定義できます。ユーザー インタラクションとの統合も可能で、2 つの状態の間をたどる操作を定義できます。MotionLayout は、パワーと柔軟性を兼ね備えた強力な  Transition と言えるでしょう。

ただし、MotionLayout は常に視覚ツールと合わせて使うことが想定されています。このようなアニメーションを XML ファイルで作るのは手間がかかります。ぜひ、Android Studio 4.0 の機能をご確認いただき、MotionLayout と Motion Editor ツールを実際に体験してみてください。

Layout Inspector
Layout Inspector の 3D 包含階層による新たな視覚化


Layout Inspector ツールが大幅に改善され、新しい機能が追加されました。たとえば、プロパティ値をクリックして、割り当て場所や割り当て方法を探すことができます。また、UI を 3D で表示して包含階層を視覚化することもできます。さらに、端末のアプリが変更されると、ツールの UI がライブで更新されるようになりました。

Build Analyzer

Build Analyzer でビルド パフォーマンスのボトルネックを特定できます


Build Analyzer は、ビルドのボトルネックを確認し、修正方法を見つけてビルド時間を短縮する際に役立ちます。

Android Studio 4.0 は、他にも多くの機能が追加されています。機能の詳細については、Adarsh Fernandoブログ記事(英語)や、Yacine Rezgui の動画でご説明しています。




Kotlin に関するブログ記事と動画 Murat Yener が が Kotlin Vocabulary シリーズの記事として、具象化に関する内容をご説明(英語)しています。

ジェネリックを使うと、その他の方法では実現できない API や構造のコンパイル時の型安全性を実現できます。しかし、実行時にその型を取得することはできなくなってしまいます。この状態が起こるのは、 型消去が行われた結果です。型は、コンパイル ステップに情報を提供します(たとえば、文字列型の ArrayList に整数値が入らないことを保証するため)。しかし、この情報はバイトコードには保存されません(型情報を持たない API と互換性を持たせるため)。

Kotlin では、reified キーワードとインライン関数を使うことで、この問題を回避することができます。reified と inline の両方をつけて関数を宣言すると、Kotlin コンパイラは内部的に必要なバイトコードを追加し、実行時に型情報を使えるようにします。

Murat は、Kotlin Vocabulary シリーズとして Object についての動画も投稿しています。この動画は、数週間前に投稿されたブログ記事「The one and only object(英語)」と対になっています。




サンプルコード バブルのサンプルコードが更新され、Android 11 の Bubbles API による変更と改善が反映されています。


ADB (Android Developers Backstage) ポッドキャスト 新エピソード

前回の Now in Android 以降、Android Developers Backstage に新しいエピソードが投稿されています。以下のリンクまたはお気に入りのポッドキャスト クライアントでご確認ください。

ADB 140: Bubbles!

今回は、Tor NorbyeRomain Guy、そして私が、System UI チームの Mady Melor と Artur Tsurkan を招き、Android 11 のバブルについて話を聞きました。もともと Android 10 でデベロッパー オプションとして導入された機能で、この機能を使ってユーザーは Android UI を通してアプリの会話にアクセスできます。Android 11 向けにアップデートされたバブルのサンプル(前述)もご覧ください。


またお会いしましょう 以上が今回ご紹介する Android についての最新情報です。

Android 11 Beta のスケジュールについてはウェブサイトで最新情報をご確認ください

次回も Android デベロッパー向けの最新情報をお届けします。お楽しみに。



Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC