この記事は The Jetpack Compose Team による Android Developers Blog の記事 "Android Dev Challenge: lift off with Jetpack Compose" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Jetpack Compose は、Android でネイティブ UI を作成する最新のツールキットです。強力なツールと直感的な Kotlin API によって、少ないコードですばやくアプリを作成できます。
本日 Jetpack Compose ベータ版をリリースしました。そこで、Jetpack Compose を使い始める皆さんのお役に立てるように、新たに #AndroidDevChallenge を開催します。Compose の機能を学び、導入する準備を始める絶好のチャンスです。
#AndroidDevChallenge では、Jetpack Compose で優れたアプリをすばやく作成する技術を身につけられるよう、これから 4 週間にわたって週単位のチャレンジを出題します。各チャレンジでは、「インサイトを開放する」をテーマに、アニメーションやマテリアル テーマ、Composable やリストなど、毎回 Compose の新しい領域を扱います。毎回のチャレンジの勝者に新しい賞品があり、Pixel 5 を含む 1000 個以上の賞品を準備しています*。最初のチャレンジは本日より始まります。
毎週提示される新しいチャレンジには、それぞれのルールとタスクがあります。本日より、毎週水曜日(日本時間木曜日)に、課題と締め切りについての詳しい説明を含むブログ投稿を公開します。いずれのチャレンジも、Text や List などの基本的な Composable から状態やアニメーションまで、Compose のメンタルモデルやさまざまな Compose API に親しむために役立ちます。
Text
List
チャレンジに参加するためには、GitHub リポジトリで実装する必要があります。すぐにスタートできるよう、Compose による基本的な Hello World! と継続的インテグレーション設定を含む Github リポジトリのテンプレートを作成していますのでご利用ください。
Hello World!
#AndroidDevChallenge 初回のチャレンジは、子犬の里親探しアプリの作成です。このアプリでは、概要画面で子犬の一覧を、詳細画面でそれぞれの子犬の詳細を表示する必要があります。エントリは、太平洋標準時 3 月 2 日 23 時59 分(日本時間 3 月 3 日 16 時 59 分)までにこちらから送信してください。
UI はすべて Compose で作成する必要があります。審査対象はアプリの UI レイヤーのみです。実装にあたっては、レイアウト、リスト、テキスト、ナビゲーションに関する Compose ドキュメントを参考にしてください。ハンズオンの学習教材として Compose Pathway を試すこともできます。このチャレンジに役立つトピックを説明した Codelabs が含まれています。
🐶 よりも 🐱 のほうが好きな方も大丈夫です。ペットの里親探しアプリであれば、どんな種類でも歓迎します。
多数のご応募をお待ちしています。
最初のチャレンジの賞品は、Compose で飛び回る際の相棒としてぴったりな、LEGO ブロックの Jetpack Compose スーパーヒーロー限定トロフィーです。チャレンジを成功させてエントリを送信した最初の 500 名には #AndroidDevChallenge 初週の勝者である証として、Android フィギュアのコレクションにこのトロフィーを追加できます。
Jetpack Compose の中核はデベロッパー コミュニティです。プロダクトをさらに使いやすく改善するために、皆さんのフィードバックをお寄せください。
*毎週のチャレンジに新しい賞品が設定されています。Google Pixel 5 が賞品になる週で、Google Pixel 5 が利用できない国にお住まいの方には、同程度の価値がある電子ギフトカードをお送りします。詳しくは公式ルールをご覧ください。
Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC
refContentProvider()
releaseWakeLock()
JobScheduler.schedule()
この記事は Eric Bahna による Android Developers Blog の記事 "Expanding the reach of your Android Auto apps" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
昨年 12 月、Google Play ストアで新しい Android Auto アプリをクローズド テストに公開できる機能を開放しました。続いて 2021 年 1 月 28 日より、Google Play ストアで、ナビゲーション、駐車場、充電スポットのアプリをオープン テストトラックに公開し、アプリのユーザーを増やせるようになりました。
オープンテストでは、アプリをダウンロードできるユーザー数に制限はなく、メールアドレスの一覧を管理する必要もありません。このオープンテストは、正式にアプリをリリースするまでの重要なマイルストーンです。アプリを実際の車ですべてのユーザーに使ってもらうことに一歩近づきますので、ぜひ Android for Cars App Library を使い、Play Console でオープン テストトラックを選択してアプリを公開してください。
Android Auto アプリに関する今後の予定についてお知らせします。
現在、このライブラリを Android Jetpack に追加する作業を進めています。これにより、他の Jetpack API との整合性が向上し、新機能が見つけやすくなります。Jetpack ライブラリが利用できるようになると、既存のライブラリからのアプリ移行が簡単になり、名前空間を変更していくつかの API 呼び出しを調整するだけの作業で完了します。Jetpack でライブラリを安定させた後は、その新しいアプリを Google Play ストアの本番環境トラックに公開できるように準備を進めればよいのです。
Jetpack ライブラリを待たずとも、オープン テストトラックに公開することはできるようになっています。以下の手順で公開してみましょう。
多くのデベロッパーの皆さんが開発した自動車向けアプリを、実車でテストすることを楽しみにしています。
この記事は Miguel Guevara による Android Developers Blog の記事 "How we’re helping developers with differential privacy" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google は、イノベーションとプライバシーは車の両輪だと考えています。その一環として2021 年 1 月、オンラインのユーザーの安全を確保するための私たちの取り組みについてブログでお知らせしました。その中では、差分プライバシー(ディファレンシャル・プライバシー / differential privacy )などの先進的なプライバシー技術に言及しておりました。
毎年 1 月 28 日は、データ プライバシーの日です。そこで、それに合わせて、Google のプロダクトに差分プライバシー技術を適用し、この技術を世界のデベロッパーや企業に広めていこうという新しい取り組みをここに詳しく紹介させていただきます。この取り組みにより、個人情報を確実に保護しつつ、データや知見に広くアクセスできるようになります。
差分プライバシーは高度な匿名化技術で、初めて Chrome に導入されたのは 7 年ほど前になります。そして現在では、Google マップや Google アシスタントなどのプロダクトに日々活用されています。昨年、世界が COVID-19 と闘う中、COVID-19 コミュニティ モビリティ レポート(英語)を公開しました。差分プライバシーを使っているこのレポートは、世界の公衆衛生当局、エコノミスト、政策立案者がコミュニティにとって重要な決定をする際に活用していますが、いかなる時点においても、個人を特定できる情報は利用できないことが保証されています。
Google Play Console では、今年中に差分プライバシーの手法を用いたアプリの新たな指標やベンチマークをデベロッパー向けに提供する予定です。この機能がリリースされると、デベロッパーは個人が特定または再特定できないことが保証される方法で、日々のアクティブ ユーザー数、アクティブ ユーザーあたりの収益など、アプリがどのくらいユーザーを惹きつけているかを表す指標に簡単にアクセスできるようになります。
このようなアプリの新たな指標に差分プライバシーを加えることで、デベロッパーに有用な知見を提供し、アプリの改善に役立ててもらうことができます。その一方で、ユーザーのプライバシーやデベロッパーの機密性が損なわれることはありません。今後は、差分プライバシーを使った指標を増やすことを計画しています。
Google のプロダクトにおけるプライバシー保護技術は進化を続けていますが、デベロッパーがこの技術を利用できるようにすることも重要です。そこで、2019 年に差分プライバシー ライブラリをオープンソース化し、世界中のデベロッパーが自由にアクセスして簡単にデプロイして活用できるようになりました。それ以降、たくさんのデベロッパーや研究者、団体が Google の差分プライバシー アルゴリズムを利用して、プライバシーが保護される方法で責任をもってデータを使い、新しい問題の解決に取り組んでいます。そのような企業の 1 つに、フランスの新興医療企業 Arkhn があります。Arkhn は、差分プライバシーによって複数の部門にまたがる病院のデータを安全な方法で収集、照会、分析できるようになり、それを活用して人工知能で医療業界に革命を起こすというミッションを掲げています。
Arkhn のようなデベロッパーのチームに、高度な差分プライバシー ライブラリを広く提供するため、 2021 年 1 月 29 日(現地時間 1 月 28 日)、OpenMined との新たなパートナーシップを結びましたのでお知らせします。
OpenMined は、プライバシー保護技術を研究し、その活用法を世界中に広めることに注力しているオープンソース デベロッパー グループです。Google は、今後 OpenMined と協力し、差分プライバシー ライブラリの Python デベロッパー専用のバージョンを開発する予定です。Python デベロッパーは、Google の差分プライバシー対応インフラストラクチャと同じ仕組みを活用することで、ワールドクラスのプライバシーを備えた他にはない新しい方法でデータを扱うことができます。
昨年と同様、デベロッパーが既存の差分プライバシー ライブラリをさらに簡単に使えるようにする作業も継続します。たとえば今月には、Google で日々何千件ものクエリに利用されている、新しい差分プライバシーに対応した SQL データベース クエリ言語拡張機能をオープンソース化しました。アナリストがこのようなクエリを活用すれば、ビジネスに関する知見を得たりプロダクトのトレンドを確認したりできます。これは、プライバシーが守られたデータ分析を広め、世界中のデータ サイエンティストが個人のプライバシーを保護および尊重しつつ、強力な洞察を得られるようにするための一歩です。
2 年前、TensorFlow Privacy(GitHub)をローンチしました。TensorFlow Privacy はオープンソース ライブラリです。これを使うと、デベロッパーがプライバシーに配慮した機械学習モデルを簡単にトレーニングでき、研究者は TensorFlow Privacy を使ってより安全なプライバシーを保証し、機械学習の水準を高めることができます。
昨年は、このライブラリを拡張して TensorFlow 2 をサポートするとともに、Keras モデル インターフェースと TensorFlow の既製 Estimator の両方をサポートしました。また、ウォータールー大学の研究者と連携してパフォーマンスを向上させています。これにより、新しいリリースでは一般的なワークロードのトレーニングが 4 倍以上高速になりました。
さらに、プライバシーを考慮した機械学習のトレーニングはコストが高くなってしまい、現実的ではない可能性があることがわかっています。そこで、機械学習モデルはどの程度プライベートなのかを理解するための調査を開始し、昨年、それに役立つ仮想攻撃ライブラリをオープンソース化しました。このライブラリを使うと、機械学習モデルの全体的なプライバシーの保護状況を確認できます。
その後は、プリンストン大学やシンガポール国立大学の研究者と連携。ライブラリのスコープを拡張して生成モデルや非ニューラル ネットワーク モデルをテストする新機能を追加しています。
先日、スタンフォード大学医学部の研究者がこの機能をいくつかのモデルで試しました。そのテストから、モデルの中でのプライバシーに関する動作が明らかになりました。その中には、それ以前はできなかったことも含まれています。
また、差分プライバシーと堅牢性のトレードオフに関する新しい研究を発表しました。これは、AI 倫理の中核にあるもう 1 つの特性である、プライバシーと安全性に関わることです。
健全なオープンソース エコシステムを育み、広げていく一方で、Google 製品を使うユーザーをアルゴリズムによって保護するために、Google は高度なプライバシー保護を行う取り組みに投資をしております。私たちは、世界中のあらゆる人がトップレベルなプライバシー保護を享受すべきだと強く確信しています。そのためにさまざまな組織と協力してそのミッションを果たしてまいります。
この記事は Murat Yener による Android Developers Blog の記事 "AGP 7.0: Next major release for the Android Gradle plugin" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2020 年 12 月 1 日(日本時間12 月 2 日 )、Android Studio 4.3 の初めての Canary 版がリリースされ、それとともに Android Gradle プラグイン(AGP)バージョン 7.0.0-alpha01 もリリースされました。Gradle プラグインのバージョン番号の付け方は、Android Studio のバージョン番号のスキームから切り離した上で改めて調整したので、番号を一気に 2 つも飛ばしています。このブログ投稿では、この変更の理由について説明するとともに、インキュベーション状態になっている新しい Android Gradle プラグインの API と DSL について、いくつかの重要な変更点を簡単にご紹介します。
AGP 7.0.0 では、セマンティック バージョニングの考え方を採用しています。つまり、API の互換性がない変更が発生するのは、メジャー バージョンが変更された場合のみです。メジャー バージョンは、Gradle で年に 1 回のメジャー リリースが行われるタイミングで、毎年 1 つずつ上げることを想定しています。
さらに、互換性のない変更が行われる場合は、1 年ほど前から削除される API に @Deprecated を付け、それと同時期に削除される機能に代わる方法を提供することを保証します。これによりデベロッパーには約 1 年の猶予が与えられ、古い API が削除される前に新しい API を使ってプラグインのテストと移行を行えるようになります。
@Deprecated
バージョン 5 と 6 を飛ばして直接 AGP 7.0.0 に変わったのは、Gradle のバージョンに合わせるという理由もあります。つまり、AGP 7.x は Gradle 7.x の API で動作するということです。Gradle 8.x でも動作するかもしれませんが、それは保証されていません。AGP が利用する API が 8.x で削除されていないかどうか次第です。
この変更に伴い、AGP のバージョン番号は Android Studio のバージョン番号とは切り離されます。ただし、当面の間、Android Studio と Android Gradle プラグインは同じタイミングでリリースする予定です。
Android Studio と Android Gradle プラグインとの互換性には、変更はありません。一般的なルールとして、AGP の安定版を使うプロジェクトはそれより新しいバージョンの Android Studio で開くことができます。
AGP 7.0.0-alpha01 では依然として Java プログラミング言語バージョン 8 を使用できますが、現在、最低限必要な Java プログラミング言語のバージョンを Java 11 に変更する作業を行っています。これは AGP 7.0.0-alpha02 から適用される予定です。この変更については、デベロッパーの皆さんが余裕を持って準備できるように、Canary 版のスケジュールという早い段階で、安定版リリースの何か月も前にお知らせしています。
今回の AGP のリリースでは、いくつかの API が変更されます。なお、AGP 4.1 で導入されたたくさんの API はインキュベーション状態としてマークされ、変更の可能性がありました。そして実際、AGP 4.2 で一部の API が変更されました。現在インキュベーション状態になっている API は、先ほど説明したサポート終了サイクルには従いません。
いくつかの重要な API の変更について、概要をまとめました。
onVariants
onProperties
onVariantProperties
androidComponents
beforeVariants
VariantSelector
withBuildType
withName
withFlavor
afterEvaluate
beforeUnitTest
unitTest
beforeAndroidTest
androidTest
Variant
VariantBuilder
VariantProperties
いくつかの変更について確認してみましょう。以下のコードは、リリースビルドをターゲットとするサンプルの onVariants ブロックです。onVariants ブロックは beforeVariants に変更され、次の例のバリアント セレクタを使用します。
```android {…//onVariants.withName("release") {// ...//}…}androidComponents {val release = selector().withBuildType(“release”)beforeVariants(release) { variant ->...}}```
```
android {
…//onVariants.withName("release") {// ...//}…
…
//onVariants.withName("release") {
// ...
//}
}
androidComponents {
val release = selector().withBuildType(“release”)beforeVariants(release) { variant ->...
val release = selector().withBuildType(“release”)
beforeVariants(release) { variant ->
...
同様に、onVariantProperties ブロックも onVariants に変更されます。
```android {...//onVariantProperties {// ...\//}…}androidComponents.onVariants { variant -> ...}```
...//onVariantProperties {// ...\//}…
//onVariantProperties {
androidComponents.onVariants { variant ->
なお、このカスタマイズは通常はプラグインで行うもので、build.gradle に配置すべき内容ではありません。レシーバのある関数の使用は避けています。これは DSL 構文には適していますが、プラグインのコードには必要ありません。
これらの API は、AGP 7.0.0 で安定版になる予定です。また、すべてのプラグイン作成者は、新しい androidComponents に移行する必要があります。このような変更に対処するのを避けたい方は、プラグインで安定版の API のみ使用し、インキュベーション状態の API は使わないでください。
今回のリリースに含まれるその他の変更点の詳細については、リリースノートをご覧ください。
Java は Oracle および/またはその関連会社の登録商標です。
Reviewed by Takeshi Hagikura - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC
この記事は 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 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 のバージョン番号スキームは次のようになります。
AGP 7.0.0 では、セマンティック バージョニングの考え方を採用し、AGP に必要な Gradle バージョンと一致させます。 Android Studio と Android Gradle プラグインとの互換性には、変更はありません。AGP の安定版を使うプロジェクトはそれより新しいバージョンの Android Studio で開くことができます。
近日中には更に、AGP のバージョン番号の考え方と、今回の新しいメジャー リリースである AGP 7.0 の新機能について詳しく説明したブログ記事を公開する予定です。
現在は Arctic Fox の機能開発フェーズの初期段階ですが、コードエディタ、アプリ インスペクション ツール、Layout Editor、組み込みエミュレータなど、IDE のさまざまな領域にわたる 200 以上の品質改善とバグの対応を行いました。具体的なバグの修正については、リリースノートをご覧ください。
Jetpack Compose を使っている方のために、デバイスやエミュレータへの @Preview Composable のデプロイなど、多くの新しいアップデートを行っています。
@Preview
新しい 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 機能を使うことができます。
Android Studio と Android Gradle プラグインの今回のリリースに含まれるその他の詳しい変更点については、リリースノートをご覧ください。
今年、日本で人気を集めた Google Play のコンテンツを紹介する Google Play ベスト オブ 2020 のアプリ、ゲームにおける部門賞および各部門の大賞と最優秀賞を本日発表しました。
2020 年は、特に大変だった 1 年にも関わらず、デベロッパーのみなさまの努力によって新しい世界観を持った意欲的なアプリやゲームが登場した 1 年でもありました。
そんな 2020年という年に、日本のGoogle Play ベストオブ 2020を受賞した作品をご紹介します。受賞された皆様、おめでとうございます!
この記事は Murat Yener による Android Developers Blog の記事 "Meet Google Play Billing Library Version 3" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
※2021年 8 月 2 日より新規リリースのアプリでは最新の Billing Library バージョン 3 への対応が必要となり、11 月 1 日までにすべてのアプリにその対象が広がるため、再度掲載します。
Google Play は、ユーザーに愛される高品質のアプリを開発するための、健全なエコシステムの実現に取り組んでいます。多くのデベロッパーは Google Play の 1 回限りの購入と定期購入 サービスによって、そのようなアプリの開発が実現しています。この 10 年間、キャリア決済を利用した支払い(現在対応キャリア数 180)などの機能や、費用の割り当てと定期購入の管理を簡単に行うツールにより、Android ユーザーの購入体験を改善してきました。
こういった取り組みをさらに進めたのが Billing Library バージョン 3 です。今回提供する新バージョンでは、新しい支払い方法への対応、定期購入のプロモーション機能の追加、ゲーム購入のアトリビューション、購入時の信頼性とセキュリティの向上などが行われました。2021 年 8 月 2 日以降、新しいアプリはすべて Billing Library バージョン 3 以降を使用する必要があり、2021 年 11 月 1 日までに、すべてのアプリのアップデートで Billing Library バージョン 3 以降を使用する必要があります。
Google は世界中のユーザーが 都度購入1 回限りの購入と定期購入の支払いを簡潔かつ便利にできるように継続して取り組んでいます。
現金は現在も世界で最も広く使われている支払い方法であり、2018 年時点では商品とサービス全体で 2.7 兆件の取引に使われています(出典: ユーロモニター)。Google は昨年、コンビニエンス ストアの現金払いのように、取引がデバイス外で完結する新しい支払い方法をプレビューしました。世界銀行によると、全世界で 20 億人が銀行口座を保有していません。そうした状況で、この新しい支払い方法は、特に現金払いが一般的な新興市場で新規の購入者を開拓するきっかけになり得ます。
今回のリリースにより、インドネシアとマレーシアでは、セブン-イレブンや Alfamart などの有名小売店を含む 50,000 を超える店舗で、現金による 都度購入1 回限りの購入が可能になります。この新しい支払方法は、まもなくすべてのデベロッパーにご利用いただけるようになります。
Billing Library バージョン 3 では、ユーザーがアプリ以外(Play ストア全体など)で商品を見つけて購入できるようになります。1 つの例として、新しくなったスムーズなプロモーション コードの利用があります。例えば、定期購入の無料試用のプロモーション コードを提供すると、ユーザーは簡単に Play ストアでの購入に利用することができます。しかも、これはインストール前であっても使うことができます。この機能により、に、シンプルな購入、登録、インストールの体験が実現され、ユーザーの負担を減らすことが可能になります。
ゲームやアプリではアプリ内の購入がゲーム内のどのキャラクターやアバター、プロフィールにアトリビュートされる(アトリビュートできる)ようにする必要があります。Billing Library を利用することで、購入フローの立ち上げ時にそうした情報を特定することができます。購入の完了時に、情報が取得されその購入を正しくアトリビュートすることができます。それにより、非推奨の AIDL デベロッパー ペイロードを利用した独自のソリューションを構築する必要がなくなります。
Google Play のターゲット SDK 要件と同じように、新バージョンの Billing Library ですべてのユーザーがセキュリティ、パフォーマンス、ユーザー体験の改善を体感できることが重要です。2019 年の Google I/O において、Google は Billing Library バージョン 2 をリリースし、各メジャー リリースに 2 年のサポート期間を設けるなどの変更をアナウンスしました。
そのため、2021 年 8 月 2 日以降、新しいアプリでは Billing Library バージョン 3 以降を使用する必要があり、2021 年 11 月 1 日までに、すべてのアプリのアップデートで Billing Library バージョン 3 以降を使用する必要があります。
上記の日以降、古いバージョンの AIDL、Billing Library バージョン 1、Billing Library バージョン 2 との統合を利用したアプリは公開できなくなります。すでに Play ストアにあるアプリは引き続きダウンロードが可能で、アプリ内の購入を処理できます。ただしその後のアプリのアップグレードには、Billing Library バージョン 3 以降が必要です。
Billing Library バージョン 3 は現在(2020年6月11日以降)、Java と Kotlin で開発されているすべてのゲームとアプリの デベロッパーが利用できます。Unity を利用するゲーム デベロッパー向けに、Billing Library バージョン 3 ベースの Unity IAP プラグインもリリースしており、はこれにより、Unityを利用したアプリ開発においてもBilling Library バージョン要件を満たし、Play Billingの機能すべてにアクセスできるようになります。
請求関連の SDK とライブラリを Billing Library バージョン 3 に対応したバージョンにアップグレードしてください。SDK またはライブラリが利用できない場合は所有者に問い合わせてください。Google は主要なプロバイダとともに、Billing Library バージョン 3 との互換性について取り組みを進めています。
Google は年 1 回のアップグレードをおすすめしていますが、各メジャー リリースに対しては 2 年間のサポートを提供します。デベロッパーは、2020 年 6 月 11 日(日本時間 6 月 12 日)からすべての新規アプリに Billing Library バージョン 3 を利用し、2021 年の期限より前に可能な限り早期に既存の請求の統合を移行することをおすすめします。
Billing Library に移行していないデベロッパーにとって、既存のアプリを AIDL から移行することは簡単ではありませんが、できるだけスムーズに移行できるようサポートいたします。現在 AIDL を使用しているアプリ向けには、移行ガイドと動画チュートリアルが用意されています。
また、購入のアトリビューション、プロモーション コードの利用、不正対策に関するガイドとなる、ドキュメントもアップデートされています。実装に関する問題については、こちらまでご連絡ください。
Play コマース プラットフォームに関する改善全体についての詳細は、動画 What's new in Play Commerce をご覧ください。
皆様のアプリとゲームへ素晴らしい購入体験を実現するために、今後ともご協力をお願いいたします。
Reviewed by Tetsuo Midorikawa - Google Play Product Operations
この記事は 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 機能を簡単に使えるようになります。
アップデートには、以下の内容が含まれています。
新しい Database Inspector では、アプリのデータベースを簡単に調査、照会、変更できるようにしたいと考えました。この機能を使ってみるには、API レベル 26 以降を実行しているデバイスにアプリをデプロイし、メニューバーから [View] > [Tool Windows] > [Database Inspector] を選択します。アプリで Jetpack Room ライブラリを使っている場合でも、Android プラットフォーム バージョンの SQLite を直接使っている場合でも、実行中のアプリのデータベースやテーブルを簡単に調査したり、カスタムクエリを実行したりできます。
Android Studio は、アプリを調査しているときもライブ接続を維持しているので、Database Inspector を使って値を変更し、実行中のアプリで変更内容を確認することもできます。Room 永続化ライブラリを使っている場合は、コードエディタの各クエリの隣にも実行ボタンが表示されるので、@Query アノテーションで定義したクエリをすばやく実行できます。詳細はこちらをご覧ください。
Android Studio の中で直接 Android Emulator を実行できるようになりました。この機能を使うと、画面スペースを節約したり、ホットキーでエミュレータとエディタのウィンドウ間をすばやく移動したり、1 つのアプリケーション ウィンドウの中で IDE とエミュレータのワークフローを整理したりできます。なお、スナップショットの管理や、回転やスクリーンショットなどの一般的なエミュレータ操作は Studio から行うことができますが、すべてのオプションにアクセスするには、安定版のエミュレータを実行する必要があります。この機能は、次の操作でオプトインできます。
[File] → [Settings] → [Tools] → [Emulator] → [Launch in Tool Window]
Android デベロッパーは、機械学習を使って革新的で便利な体験を生み出しています。TensorFlow Lite は、モバイル機械学習モデルを記述する際によく使われるライブラリです。私たちは、こういったモデルを Android アプリに簡単にインポートできるようにしたいと考えました。Android Studio は、ビューのバインディングと同じような使いやすいクラスを生成してくれます。そのため、少量の型安全なコードでモデルを実行できます。ML モデル バインディングの現在の実装では、メタデータで拡張されたイメージ分類とスタイル変換のモデルがサポートされています。
インポートしたモデルの詳細やアプリでモデルを使う手順は、プロジェクトで .tflite モデルファイルをダブルクリックし、モデルビューアのページを開くと確認できます。詳細はこちらをご覧ください。
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] のどちらかをクリックすることで、実行中のアプリに変更をデプロイできるようになっています。
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'
Android Studio 4.1 では、システム トレースを大幅に見直しました。システム トレースは、アプリがシステム リソースをどのくらい使っているかをリアルタイムで確認できる最適化ツールです。今回は、ボックス選択モードでトレースを簡単に選択できるようにし、新しい解析タブを追加し、アプリの UI のレンダリングに関する問題を調査できるように詳しいフレーム レンダリング データを追加しました。詳細はこちら(英語)をご覧ください。
ボックス選択: [Threads] セクションで、マウスをドラッグすると、四角形の領域をボックス選択できるようになりました。右上の [Zoom to Selection] ボタンをクリックする(または M キーボード ショートカットを使う)と、ズームできます。また、隣り合っている似たようなスレッドをドラッグ&ドロップすると、複数のスレッドをまたいで選択し、同時に調査できます。
Summary タブ: [Analysis] パネルに新しく [Summary] タブを追加しました。このタブには、以下の内容が表示されます。
データの表示: [Display] セクションに SurfaceFlinger と VSYNC の新しいタイムラインが追加されました。アプリの UI のレンダリング問題を調査する際に役立ちます。
Android Studio のメイン ウィンドウとは別のウィンドウで Android Studio のプロファイラにアクセスできるようになりました。この機能は、Unity や Visual Studio など、別のツールで構築した Android ゲームを最適化する場合に便利です。
スタンドアロン プロファイラを実行するには、以下の操作を行います。
<studio-installation-folder>\bin
<studio-installation-folder>/Contents/bin
profiler.exe
profiler.sh
Memory Profiler ウィンドウの上部にある [Record native allocations] をクリックすると、記録を開始します。
本資料は、Unity Technologies やその関連会社による提供または提携ではありません。“Unity” は、米国およびその他の場所における Unity Technologies またはその関連会社の商標または登録商標です。
#11WeeksOfAndroid のブログ投稿も今回が最後になります。Android 開発の重要な内容を取り上げた 11 週にわたり、ご覧いただきありがとうございます。見逃してしまった方のために、それぞれの週にお伝えした内容をまとめてご紹介します。