この記事は Manuel Vivo による Android Developers - Medium の記事 "Now in Android #34" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は MAD Skills のミニシリーズ MotionLayout、マテリアル コンポーネント、KSP、AndroidX、コルーチンとインテントに関する最新のブログ記事・動画・関連ドキュメントなどをご紹介します。
今回の Now in Android は、動画とポッドキャストでもお届けします。内容は同じですが、読む量は少なくて済みます。このブログ記事版には、取り上げているすべてのコンテンツへのリンクが掲載されていますので、ぜひご覧ください。
下のリンクをクリックするか、お気に入りのクライアント アプリでポッドキャストをサブスクライブしてください。
MotionLayout についてのミニシリーズが終わりを迎えつつあります。4 回目のエピソードでは、Sean McQuillan が Motion Layout を使って折りたたみ可能なツールバーを作る方法について説明します。このようなツールバーは、この API が大活躍してくれる場所の 1 つです。MotionLayout を使ってカスタム属性をアニメーションさせる方法も習得できます。
最後のエピソードでは、デベロッパー リレーションズ チームとエンジニアリング チームからモーション レイアウトのエキスパートが参加し、リアルタイム Q&A を開催しました。
これまでのエピソードを見逃してしまった方は、MAD Skills ミニシリーズ MotionLayout のプレイリストをチェックしておきましょう。
material-components-android ライブラリの安定版として、バージョン 1.3.0 がリリースされました。MaterialTimePicker や ProgressIndicator などの新しいマテリアル コンポーネントが含まれています。その他、ダイアログなどのコンポーネント内の文字列の国際化とローカライズ、BadgeUtils クラスのパブリックへの公開も行われています。
すべての変更点は、リリースノートでご覧ください。
Kotlin で軽量コンパイラ プラグインを作成するツール、Kotlin Symbol Processing(KSP)がアルファ版になりました。アノテーション プロセッサに詳しい方向けに説明すると、KSP は KAPT に似たような機能を提供します。しかし、最大 2 倍高速で、Kotlin マルチプラットフォームを念頭において開発されています。
アノテーション処理を使っているライブラリ作成者の方は、ライブラリを KSP 互換にする方法に関するブログ記事をご覧ください。
さまざまな AndroidX ライブラリでたくさんの最新増分リリースが公開されています。また、以下の安定版リリースが含まれています。
安定版リリース以外では、Paging 3 が最初のベータ版リリースに到達しています。これは注目に値します。Paging 3 は、土台からコルーチンに対応している Kotlin を使って、大きく書き換えられています。この API は、beta01 で API 安定版に到達しました。
私は、コルーチンが Android ランタイムで実際にどのように実行されているのかを解説するブログ記事(英語)を投稿しました。Android のコルーチンは Java プログラミング言語で定義されているスレッドモデルを使うので、コードの同時実行の問題に注意する必要があります。
プライバシーは Android の最優先事項であり続けています。ユーザーの個人データの保護や、アプリがそのデータを使う際の透明性は、ますます重要になっているからです。Fred Chung の動画では、ユーザーの目に見える変更点もいくつか取り上げていますが、主にデベロッパーを対象に、新しい API、動作の変更、テストについて解説しています。1 回だけのアクセス許可オプションなどのアクセス許可の変更、ストレージ、パッケージの公開設定、個人データへのアクセスを特定する際に役立つツールなどをご紹介しています。
Nicole Borrelli が、アプリ内コールバックを実装する際に Intent ではなく PendingIntent を使うべき理由について説明しているブログ記事(英語)を投稿しました。PendingIntent を使わないと、アプリに脆弱性が残る可能性があります。
アプリの品質は、すべての人にとって重要です。Android Developers の ウェブサイトにアプリの品質セクションを新たに設けて、アプリの品質についての重要な最新情報や、高品質を実現して維持する際に役立つ情報を提供しています。アプリの中核品質チェックリストは、視覚的な体験、機能、パフォーマンスと安定性、プライバシーとセキュリティ、Google Play という観点でアプリを評価する参考になります。ユーザーから期待される水準を満たすため、このリストをデザインチームや QA チームと共有することもおすすめします。
今後は、このリストを定期的に更新して最新の状態を保つとともに、タブレットや WearOS などの他のフォーム ファクタにも拡大していく予定です。
アプリの品質については、こちらのブログ記事も併せてご覧ください。
私たちは、Android 開発をさらに多くの人に広めたいと考えています。そこで、Android 開発の教育者向けに、Kotlin による Android 開発の新しいカリキュラムを公開しました。講義のスライドから、ハンズオンの Codelab まで、必要なものをすべて含むたくさんの素材がそろっています。
グループで学びたい方のために、すべてのデベロッパーに Android Study Jams プログラムを公開しました。このコンテンツを使うと、グループのメンバーがオンライン カリキュラムを通して、好きなペースで一緒に Android を学ぶことができます。
今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。
Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC
この記事は Jolanda Verhoef による Android Developers Blog の記事 "Android Dev Challenge Finale: Weather app" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
#AndroidDevChallenge の最終週は、皆さんの創造性を輝かせましょう!先週はスピードの勝負でしたが、最終週となる今回で全力を出し切ってください。
UI はすべて Compose で構築する必要があります。気象データはダミーのもので構いません。提出するアプリは、最低でも英語をサポートする必要があります。
皆さんの作品は、以下の 4 つのカテゴリに基づいて審査します。
レイアウト、テーマ、グラフィックに関する Compose ドキュメントを確認し、美しいデザインの実装の参考にしてみましょう。アニメーションやジェスチャーの斬新な使用法も考えてみてください。コードの質は、アーキテクチャとテストによって改善できます。また、動作全般については、ユーザー補助機能を忘れずに確認するようにしましょう。
回答は、パブリック GitHub リポジトリで実装する必要があります。Github リポジトリ テンプレートのコピーを作成し、README の手順に従ってください。テンプレートには、Compose による基本的な Hello World! と継続的インテグレーション設定が含まれています。
Hello World!
※1 応募に関する詳細は必ず公式ルールをご確認ください。
今週も究極の 5G Google スマートフォン、Google Pixel 5 を獲得するチャンスです!4 つのカテゴリそれぞれの勝者と、最も優秀な作品に、Google Pixel 5 を進呈します。
Jetpack Compose の中核はデベロッパー コミュニティです。プロダクトをさらに使いやすく改善するために、皆さんのフィードバックをお寄せください。
この記事は Neethi Thomas、Dafna Gal、Ashnil Dixit による Android Developers Blog の記事 "Sub-dollar pricing expansion in 20 markets" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google Play では、Android デベロッパーがアプリやゲームをできる限り広いマーケットに提供できるようにするために継続して対応を行ってきました。既に 165 以上のマーケットで無料と有料のアプリをサポートし、インドやブラジルなどの 20 のマーケットで、デベロッパーが設定できるプロダクトの最低価格を引き下げてきました。
このたび、2021 年 3 月 4 日(日本時間 3 月 5 日)に、新たにラテンアメリカ、ヨーロッパ、中東、アフリカ、アジア太平洋地域の 20 のマーケットでプロダクトの最低価格制限を引き下げたことをお知らせします。
この新しい下限額により、ほとんどの対象マーケットで 10-30 米セント相当の価格を設定できるようになります。この超低価格帯、すなわち「1 ドル未満」の価格設定を利用し、現地の購買力や需要を踏まえて価格を調整することで、新たな潜在購買層へのアプローチが可能になります。また、グローバルな価格戦略を柔軟に設定できるようになり、アプリやゲームで多くのユーザーを収益につなげるチャンスにもなります。
以下の新しいマーケットで、有料アプリ、アプリ内アイテム、定期購入の最低価格制限が引き下げられています。
バングラデシュ、ブルガリア、ボリビア、コスタリカ、チェコ共和国、デンマーク、クロアチア、ハンガリー、ヨルダン、カザフスタン、レバノン、スリランカ、ミャンマー、パキスタン、パラグアイ、ルーマニア、セルビア、タイ、タンザニア、ベトナム
これに加えて、以下のマーケットではすでに 1 ドル未満の価格設定が利用できます。
ブラジル、チリ、コロンビア、エジプト、インド、インドネシア、マレーシア、メキシコ、ナイジェリア、ペルー、フィリピン、ポーランド、ロシア、サウジアラビア、南アフリカ、トルコ、ウクライナ
Google Play Console で価格を調整する方法については、ヘルプセンターの記事をご覧ください。すべての価格帯が記載されたリストは、こちらからご覧ください。
2015 年にこの機能が導入されてから、Android デベロッパーは 1 ドル未満の価格設定を活用して、有料ユーザー数を拡大してきました。ここでは、1 ドル未満の価格設定を利用してビジネスを成長させる方法をいくつか紹介します。
期間限定の宣伝を行う:1 ドル未満の価格設定は、マーケティング活動によって新しいユーザーを獲得したり、低価格商品で熱心なユーザーに特典を提供するために活用できるツールです。たとえば、人気ゲーム Lords Mobile のデベロッパー IGG は、有料ユーザーのコンバージョンを増やすため、期間限定で 2-3 倍の価値があるスペシャル バンドルをわずか 3000 インドネシア ルピア(0.20 米ドル)で提供することがあります。これはスペシャル オファーなので、通常の売上を減らすことなく、支払者のベースを拡大できます。
シーズンごとの特典を提供する:1 ドル未満の価格設定は、シーズンごとの有償特典を提供するにも効果的です。ユーザーはこのようなアイテムを購入できる期間が限られていることを知っていなすので、さらに魅力を感じます。これを低価格設定と組み合わせることで、初回購入者にとっての魅力を高めることができます。Moonton は、Mobile Legends でそのシーズンで初めて購入を行ったユーザーに、レアなスキンを提供し、これは 1 ドル未満の購入の場合にも適用されます。
お試し価格を提供する:1 ドル未満の価格設定は、お試し価格で新しい有料ユーザーを惹きつけるために使うこともできます。たとえば、貴重なアイテムを購入したことがないユーザーに、1 ドル未満の価格を提示できます。先にも触れたデベロッパーの Moonton は Mobile Legends: Bang Bang で最初の購入を行ったユーザーが、お試し価格で人気のヒーローにアクセスできるようにしています。この戦略は、ゲーム全体の経済に大きな影響を与えることなく、新しい有料ユーザーにアプローチすることを可能にしています。
熱心なユーザーに特典を提供する:1 ドル未満の価格設定と、購入イベントの繰り返しを組み合わせて活用することもできます。たとえば、7 日間毎日購入したユーザーに特別なボーナスを提供し、ユーザーが納得できる購入額を超えないようにすることができます。
ガチャを提供する:1 ドル未満の価格設定は、チャンスベースのアイテム、たとえば「ガチャ」とも相性がよく、新規ユーザーへ効果的にアピールできます。価値のあるゲーム内アイテムを 5 ドルだと購入しないユーザーでも、0.15 ドルなら、中のアイテムが欲しくて宝箱を開けてくれるかもしれません。1 ドル未満の価格でガチャを提供すれば、多くのユーザーが運試しのために支払いをしてくれる可能性があります。
アプリやゲームの提供地域に合わせた 1 ドル未満の価格設定を活用する方法はたくさんあります。これらのベスト プラクティスは、あくまで一例です。皆さんのビジネスの拡大にこの機能をご活用ください。
この記事は Sameer Samat による Android Developer Blog の記事 "Boosting developer success on Google Play" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
デベロッパーが持続可能なビジネスを構築できるよう支援することは、Google Play の重要なミッションのひとつです。そのためにパートナーの声に日々注意深く耳を傾け、直面している問題点を理解し、創造性にあふれるアイデアの実現をサポートできるよう日々努めています。アプリを立ち上げ、軌道に乗せることは簡単ではありません!Google Play は、強力なマーケティング ツール、 Play Console 上の実用的なデータ、 Play Academy / ベスト プラクティス / ソート リーダーシップの様な教育コンテンツ、Indie Games Festival / Indie Corner / Accelerator Program のようなプログラムを通して、デベロッパーのサポートを世界中で行っています。そして私たちは成長をサポートする新しい形を常に模索しています。
そしてこのたび、2021 年 7 月 1 日より、すべてのデベロッパーを対象に、毎年の Google Play におけるアプリ内でのデジタル商品の販売による収益の合計が 100 万米ドルに達するまでの部分は、サービス手数料を 15% に引き下げることに致しました。これによりデベロッパーの皆さまが、エンジニアやマーケターの採用、サーバーのキャパシティの拡大など、ビジネスの成長にとって重要なフェーズに投資をしていくサポートができればと考えております。
こういった投資は、成長段階の早期にいるデベロッパーにとって特に重要ですが、アプリの事業拡大は年間収益 100 万米ドルを達成したからといって終わることはありません。年間 200 万ドル、500 万ドル、そして1000 万ドルの収益があるパートナーからも同様のお声を頂戴しています。そのため、ビジネスの大小に関わらず、すべての Google Play 上のデベロッパーに対し、年間合計収益が 100 万米ドルに達するまではサービス手数料の減額を適用します。この公平なアプローチは、すべてのデベロッパーの成功をサポートするという Google の大きなミッションに基づいています。本件の詳細に関しては、今後数か月をかけて共有させていただきます。
パートナーの皆さまの成功があってこそ、Google Play のプラットフォームとしての成功があります。Android と Google Play はパートナーである世界中のデベロッパーに常に耳を傾け、お寄せいただいたフィードバックをエコシステムの構築や運営に活用してきました。今後さらに多くのビジネスに Android 上で成長を遂げていただくこと、そしてその成長のため必要な新たな技術的、経済的なサポートの提供に関してデベロッパー コミュニティの皆さまと協議を重ねていくことを、今後も楽しみにしています。
Reviewed by Hidenori Fujii - Google Play Developer Marketing APAC
この記事は Don Turner による Android Developers Blog の記事 "An update on Android's audio latency" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
この記事は、Android エコシステムにおける最新の変更点である、人気 Android デバイスでのオーディオ レイテンシ(遅延)に着目し、Android のリアルタイム オーディオ アプリへの適合性について説明します。
この 4 年間で、オーディオ レイテンシを改善するたくさんのアクションを行ってきました。
今までに実施してきたアクションと、デバイス メーカーがあらためてオーディオ レイテンシの改善に注力したことによって、デバイスのエコシステム全般で問題が大きく改善されています。人気 Android スマートフォンの平均レイテンシは 40 ミリ秒以下に下がりました。これは、リアルタイム アプリに求められる範囲に十分収まっています。
データを細かく分析すると、2017 年には最大値と最小値に大きな差(222 ミリ秒)があったことがわかります。
これを 2021 年のデータと比較してみます。差は 8 分の 1 のわずか 28 ミリ秒になり、はるかに一貫したオーディオ体験が提供されています。また、 2017 年は人気機種のメーカーは 1 社だけでしたが、現在は複数の OEM が含まれています。それを踏まえると、この結果はとても興味深く、さらに、リストの多くのデバイスはハイエンドのフラッグシップ モデルだけではないところが印象的です。
ここまでは、ラウンドトリップのオーディオ レイテンシについて説明してきました。ラウンドトリップのレイテンシには、オーディオ チェーンの 3 つのコンポーネント、すなわちオーディオ入力、オーディオ処理、オーディオ出力が影響しています。
多くのリアルタイム オーディオ アプリでは、入力オーディオではなく、画面のタップイベントに基づいてオーディオが生成されます。この種のアプリでは、「タップ音」のレイテンシ、すなわち画面をタップしてから音が聞こえるまでの時間が非常に重要です。このレイテンシは、タッチ スクリーンのタップに 10-35 ミリ秒(最新の Android デバイスでは、通常 20 ミリ秒)ほどかかることによります。
ラウンドトリップのレイテンシからタップ音のレイテンシを推定する場合は、オーディオ入力レイテンシ(通常 5 ミリ秒)を引き、タッチのレイテンシ(通常 20 ミリ秒)を加えることができます。つまり、ラウンドトリップのレイテンシに 15 ミリ秒を加えることになります。以上の数値を考慮すると、人気 Android スマートフォンの平均タップ音レイテンシも、ほとんどのリアルタイム オーディオ アプリに求められる範囲に十分収まっていると言えます。
オーディオ レイテンシは Android エコシステム全体で大幅に減少していますが、この作業はまだ完成にはほど遠い状態です。ラウンドトリップのレイテンシが 20 ミリ秒というのは Android プロフェッショナル オーディオ アプリの要件で、10 ミリ秒は長期的な目標のままです。また、現時点では、あまり普及していないデバイスの中には、まだオーディオ レイテンシが大きいものもあります。ただし、オーディオ レイテンシのために Android アプリの開発を控えていた方は、それを再考する時期かもしれません。
まずは、Oboe スタートガイドまたは動画チュートリアルをご覧ください。
この記事は Jolanda Verhoef による Android Developers Blog の記事 "Android Dev Challenge: Week 3 - Speed round" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
位置について... 用意… ちょっと待ってください!#AndroidDevChallenge 第 3 週の予定を空けておきましょう。本日 3 月 13 日に、同じタイムゾーンのデベロッパーとのスピード競争を開催します。日本の皆さんは、午前 10 時からのスタートです。Compose スキルが一番速い人が勝者ですので、ぜひチャレンジしてください。第 1 週と第 2 週の創造性あふれる作品はすべてすばらしいものでしたが、次に求められるのはスピードです。
UI はすべて Compose で構築する必要があります。また、課題のデザインで指定されるすべてのガイドラインに厳密に一致しなければなりません。実装にあたっては、テーマ、レイアウト、ナビゲーションに関する Compose ドキュメントを参考にしてください。ハンズオンの学習教材として Compose Pathway を試すこともできます。このチャレンジに役立つトピックを説明した Codelabs が含まれています。
回答は、GitHub リポジトリで実装する必要があります。こちらの Github リポジトリ テンプレートをコピーし、README に記載された手順に従ってください。テンプレートには、Compose による基本的な Hello World! と継続的インテグレーション設定が含まれています。
今週のチャレンジの賞品は、究極の 5G Google スマートフォン、Google Pixel 5 です。アジア太平洋地域タイムゾーンからの応募者の中で、課題のチャレンジを最速で実装して送信したデベロッパー 1 名に贈呈します。
この記事は Tom Grinsted による Android Developers Blog の記事 "Google Play Console powers better strategic decisions with new engagement metrics and unique benchmarks" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2021 年 3 月 2 日(日本時間 3 月 3 日)、Google Play Console で、一連の新指標と独自の比較用ベンチマークをリリースしました。これらを使うと、最大 250 種類の類似アプリのグループと比較しながら、アプリやゲームのエンゲージメントと収益化のトレンドを評価できます。そのため、プロダクトのロードマップやビジネス機会について、情報に基づく優れた決定に役立てることができます。
新機能を活用してエンゲージメントを促進する、価格に関する実験を行う、維持率の向上を図るなど、目的にかかわらず、最適な投資を行うために重要なデータと分析結果を必要としている、すべてのデベロッパーの皆さんの声に私たちは耳を傾けています。
大規模なデベロッパーなら、ポートフォリオ間でデータを比較できる場合もありますが、常にそれが可能なわけではありません。たとえば、新しい国や地域にあなたのアプリをリリースして展開するとき、直接比較できるアプリを公開していない場合、あるいはそもそも 1 つか 2 つのアプリやゲームしか公開していない場合などです。そのような場合、アプリやゲームのパフォーマンスが よい かどうか、そしてそのパフォーマンスをどこで改善できるのかは、どのように判断すればよいでしょうか。
今回リリースした機能は、背景となる情報を整理してパフォーマンスを把握しやすくしたもので、あらゆるタイプのデベロッパーをサポートすることを目指したものです。新機能は以下のとおりです。
私たちは、モバイルアプリやゲームの成長戦略エキスパートと連携し、アプリやゲームのパフォーマンスを評価する実践的なベスト プラクティスを参考にしながら、エンゲージメントと収益化に関する一連の指標を新しく導入しました。たとえば、次のようなものがあげられます。
すべて合わせれば、15 個の正規化された新しい指標をベンチマークとともにリリースすることになります。また、分子と分母の絶対数も照会できるようになっています。これらはすべて、[統計情報] ページに新設された [類似アプリと比較] タブから利用できます。利便性を向上させるため、既存のストア掲載情報のコンバージョンデータなど、その他の正規化された重要指標もこの画面に含めています。
あなたのアプリの改善領域を見つけ、意思決定をサポートするため、正規化された新指標では、すべて類似アプリとのパフォーマンス比較が標準機能としてリリースされます。指標は時間で追跡したり、「パズルゲーム」「オーディオブック」「コミック」といった最大 250 種類のアプリやゲームのカテゴリと比較したりできます。
国フィルタを使うと、ビジネスニーズに合うように表示をカスタマイズできます。たとえば、似たようなゲームが日本のユーザーから多くの収益を上げているかどうかがわかります。また、インドでのロイヤルティに関して、チームが最新機能を提供したことが他の類似アプリを上回るパフォーマンスにつながっているかどうかを確認することもできます。
我々は開発プロセスの中で、実際に一部のパートナーと協力して、この一連の新指標を試しました。そのフィードバックは、私たちのアプローチを具体化するうえで役立っただけでなく、ポジティブなものでもありました。 「この新指標と比較情報は意思決定に役立ちます。現在のゲームに関してどのような対策をとるべきかだけでなく、将来のゲームに関する戦略的決定にも有効です。私たちにとっては、既に Google Play Console で最も価値のある機能の 1 つとなっています」Plarium Global Ltd. Guy Ulmer 氏
この新指標や知見を最大限に役立ててもらえるように、Google Play Academyに新しいコースを追加して短期間で習得できるようにもしました。ビジネスの成長を一気に加速させる方法をご説明しているマスタークラス ウェビナー(英語)もご覧ください。
今回の新指標の元になるデータは、アプリの利用状況を Google と共有することに同意したユーザーに由来し、全体数を適切に表せるようにモデリングされています。このデータは、アプリをフォアグラウンドで開いたかどうかの記録でしかありません。ユーザーは、データの制御や共有のオプトアウトが可能です。また、myactivity.google.com で個々のイベントを削除することもできます。
さらに、今回の新しいデベロッパー指標は初めて差分プライバシーを利用したものです。差分プライバシーは、さまざまなデータセット全体でプライバシー保護を強化する高度な技術です。このアプローチの詳細については、こちらのブログ記事(日本語)でご覧いただけます。
これまでのベンチマークのリリースと同じように、類似アプリとの比較指標は、すべてデベロッパーのプライバシーを保護する形で行われています。データは多数のアプリやゲームから生成され、個々のアプリのパフォーマンスが類似アプリのグループに共有されることはありません。この仕組みは、Google Play Store の高度なタグ付けシステムによって実現しています。つまり、高品質で信頼性が高く、有用な比較が可能ですが、皆さんが確認する類似アプリのグループでは、特定の競合他社のアプリのパフォーマンスは不明瞭化されており、それは皆さん自身のアプリのパフォーマンスに関しても同様です。
今回のリリースは、Google Play Console でさらに有用な知見を提供し、積極的なレコメンデーション機能を実現することを目指した複数年にわたるプロジェクトの最初のリリースです。多くの大規模なモバイルアプリ デベロッパーは、成長戦略コンサルタントによる情報を活用しながら、プロダクトに関する長期的、戦略的な決断を行っています。私たちは、コンソールを通して、このようなサポートや専門性を すべての Google Play デベロッパーに提供したいと考えています。今後もさらに機能をリリースする予定です。ご期待ください。
この記事は Chet Haase による Android Developers - Medium の記事 "Now in Android #33" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回は MAD Skills のミニシリーズ Kotlin+Jetpack と MotionLayout、AndroidX、Hilt と WorkManager に関する最新のブログ記事・動画・関連ドキュメント、MotionTags スクリーンキャスト、WindowManager についての ポッドキャスト エピソードなどをご紹介します。
最先端の Android 開発に関する技術コンテンツを扱う MAD Skills シリーズが続いています。
前回の Now in Android の後、リアルタイム Q&A をもって Kotlin と Jetpack API の利用に関するミニシリーズが完結しました。たくさんのご質問お寄せいただきありがとうございました。ぜひ録画をご覧ください。
いつものように、まとめのブログ記事(英語)には、すべてのエピソードの動画と記事、そして関連技術へのリンクを掲載しています。
MADSkills で新しいミニシリーズが始まりました。Sean McQuillan が、高度な UI アニメーションを作成できる MotionLayout API と Motion Editor ツールについてお話ししています。MotionLayout は Android の Transition API と似たような機能を提供しますが、はるかに柔軟性が高く強力で、高度なカスタム アニメーションを実現できます。さらに、複雑なアニメーションをとても簡単に作れる抜群のビジュアル エディタも搭載しています。
MotionLayout
Transition
この動画では、ConstraintSet を使って異なる状態を定義し、その状態間で UI をアニメーションさせる方法を紹介しています。Android Studio で Motion Editor を使って遷移を作成、編集する方法について、Sean が説明しています。
ConstraintSet
このエピソードでは、MotionLayout アニメーションで Keyframe を使い、さまざまなプロパティの値を時間とともに変化させてアニメーションをカスタマイズする方法を説明して
Keyframe
います。たとえば、オブジェクトが開始点と終了点の間を移動する場合、デフォルトでは直線上を移動しますが、キーフレームを使うと経路を変えることができます。
3 つ目のエピソードでは、Sean がデフォルトの 2 つ(開始と終了)に加えてさらに ConstraintSet を追加し、開始と終了の間で複数の状態を経由する複雑なアニメーションや遷移を作成する方法について説明しています。
ミニシリーズ MotionLayout のエピソードはまだまだ続きます。YouTube のプレイリストからご覧ください。MotionTags のYouTube プレイリストもチェックすることをおすすめします。MotionLayout API の特定の領域を詳しく取り上げたスクリーンキャストが掲載されています。
MAD Skills で連載しているコンテンツは、YouTube の MAD Skills プレイリスト、Medium のブログ記事(英語)、またはすべてのリンクが掲載されているランディング ページからご確認ください。
AndroidX ライブラリで、たくさんの最新増分リリースが公開されています。以下のような重要な安定版リリースが含まれていますのでご確認ください。
work-multiprocess
Manuel Vivo が投稿した新しいブログ記事(英語)で、Hilt の階層中に存在する新しい ViewModelComponent について説明しています。ViewModelComponent を使うと、型を特定の ViewModel にスコープさせることができます。一方、ActivityRetainedComponent のスコープ付き型は、すべての ViewModel で共有されます。
ViewModelComponent
ViewModel
ActivityRetainedComponent
Ben Weiss が WorkManager ライブラリの最新リリース、バージョン 2.5.0 に関するブログ記事を公開しました。このリリースでは、マルチプロセス アプリで WorkManager を簡単に使えるようになります。合わせて、バグの修正や一般的な改善も行われています。
MotionTags は、MotionLayout API の特定の領域を徹底解説するスクリーンキャスト動画集です。シリーズの最後の 2 つのエピソードが最近投稿されました。
このエピソードでは、以前公開した KeyCycle を解説している動画の続きとして、複雑なアニメーションの作り方を説明しています。
シリーズ最後のエピソードでは、KeyTrigger を取り上げています。これを使うと、アニメーションの状態(「トリガー」)に応じて発生するコールバックを通して、アプリでアニメーションを制御できます。
KeyTrigger
前回の Now in Android 以降、Android Developers Backstage に新しいエピソードが投稿されています。以下のリンクまたはお気に入りのポッドキャスト クライアントでご確認ください。
今年最初の Android Developers Backstage では、WindowManager チームの Wale Ogunwale と Rob Carr から話を聞きました。WindowManager の歴史(と複雑さ)、そして最新の進展やこの先実現する機能について話しています。
この記事は Florina Muntenescu による Android Developers Blog の記事 "Android Dev Challenge: Week 2 - Countdown timer" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
3...2...1… 次のチャレンジの時間です!#AndroidDevChallenge の第 2 週にようこそ。第 1 週は、創造性あふれるたくさんの作品が寄せられ、とても楽しく見せていただきました。第 2 週の作品も楽しみにしています。では早速、今週のチャレンジを出題します。
UI はすべて Compose で作成する必要があります。実装にあたっては、状態とアニメーションに関する Compose ドキュメントを参考にしてください。ハンズオンの学習教材として Compose Pathway を試すこともできます。このチャレンジに役立つトピックを説明した Codelabs が含まれています。
チャレンジに参加するためには、GitHub リポジトリで実装する必要があります。こちらの Github リポジトリ テンプレートをコピーし、README に記載された手順に従ってください。テンプレートには、Compose による基本的な Hello World! と継続的インテグレーション設定が含まれています。
2 週目の賞品は、皆さんと一緒に作り上げるアート作品です。このチャレンジを成功させた最初の 500 名の方に、Jetpack Compose ポスターと Android ペン一式を差し上げます。ストレス解消のために皆さんだけの塗り絵を作りましょう。さらに、チーム Jetpack が悪しき UI から宇宙を救う物語が描かれた Jetpack Compose の限定マンガポスターもついています。
この記事は Anna-Chiara Bellini、Nick Butcher による Android Developers Blog の記事 "Announcing Jetpack Compose Beta!" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2021 年 2 月 24 日(日本時間 2 月 25 日)、Jetpack Compose のベータ版をリリースしました。新しい UI ツールキットである Jetpack Compose は、すべての Android プラットフォームでネイティブ アプリを高速かつ簡単に開発できるようにすることを目指して設計されています。Compose が提供するのは、最先端の宣言型 Kotlin API です。これにより、少ないコードで美しくレスポンシブなアプリを作ることができます。Compose は既存の Android アプリや Jetpack ライブラリに組み込めるので、Android のビューと Compose を組み合わせながら、自分のペースで採用できます。
今回のベータ版リリースで Compose の API は確定版になりました。これで本番向けのアプリを構築する際に必要な機能がすべてそろったことになります。ベータ版には、API が安定したという意味合いもあります。つまり、API が変更されたり、削除されたりすることはありません。Compose を学び始め、今後のプロジェクトや機能にどう活用するかについて計画を立てるには、今が絶好の機会です。Compose は今年中に 1.0 に到達する予定です。
Compose チームは、コミュニティの皆さんからのフィードバックも取り入れて、オープンに開発を進めています。2019 年に開発をオープンソース化して以来、30 回のパブリック リリースを行い、外部から寄せられた 700 個以上のバグに対応し、200 件以上の外部からのコントリビューションを受け入れました。皆さんに Compose を使ってアプリを開発していただくことはとても嬉しいことで、いただいたフィードバックや機能リクエストは API の微調整や作業の優先順位を付けることに役立っています。アルファ版リリース以降も、たくさんの機能を追加または改善しています。
ベータ版リリースでは、API の完全性を確保することに重点を置いています。つまり、1.0 やその先に向けて、土台となる API を提供することです。今後は、1.0 リリースに向けてこれらの API の機能を安定させる作業を進める予定です。アプリのパフォーマンスとユーザー補助機能には、特に重点を置いています。
最新の Android Studio Arctic Fox Canary 版は Compose ベータ版をサポートしており、たくさんの新しいツールも搭載しています。
🆕 ライブ リテラル: デバイスやエミュレータで、プレビューのリテラルをリアルタイムにアップデート🆕 アニメーション プレビュー: アニメーションの調査と再生🆕 Layout Inspector の Compose サポート🆕 インタラクティブ プレビュー: Composable を切り離して調査や操作が可能🆕 デプロイ プレビュー: アプリ全体をデプロイすることなく、デバイスに Composable をデプロイ
🆕 ライブ リテラル: デバイスやエミュレータで、プレビューのリテラルをリアルタイムにアップデート
🆕 アニメーション プレビュー: アニメーションの調査と再生
🆕 Layout Inspector の Compose サポート
🆕 インタラクティブ プレビュー: Composable を切り離して調査や操作が可能
🆕 デプロイ プレビュー: アプリ全体をデプロイすることなく、デバイスに Composable をデプロイ
Jetpack Compose は、Android ビューと共存してシームレスに動作するように設計されているので、自分のペースで採用できます。具体的には、Android ビューに Compose UI を埋め込んだり、Compose の中でビューを使ったりすることもできます。相互運用性に関するドキュメントに、たくさんの採用戦略をまとめました。
既存アプリに Compose を追加する際に役立つように、ビューとの相互運用性に加えて、よく使われるライブラリとの統合も行っています。そのため、アプリを書き直したり、アーキテクチャを変更したりする必要はありません。以下の統合が利用可能です。
MDC-Android Compose Theme Adapter ライブラリや Accompanist ライブラリを使えば Material および AppCompat のXML テーマとの統合機能を利用できるので、テーマを重複して定義する必要はありません。Accompanist は、よく使われるイメージ読み込みライブラリのラッパーも提供します。
Jetpack Compose は、 宣言型 UI ツールキットであり、現在のビューシステムからのパラダイム シフトです。つまり、記述するのは、アプリが特定の状態のときに UI がどのように見えるべきか であって、 どのように UI を生成するかではありません。アプリの状態が変わったときは、Compose によって UI がアップデートされるため、UI を操作して目的の状態に変更するという面倒でエラーが起こりやすい作業は必要なくなります。
また、Compose はすべて Kotlin で書かれているので、優れた言語機能を活用して、簡潔で強力かつ直感的な API を提供できます。たとえば、コルーチンを使うと、ジェスチャー、アニメーション、スクロールなど、はるかにシンプルな非同期 API を書くことができます。そのため、ジェスチャーに続いてアニメーションするなど、非同期イベントを組み合わせたコードを簡単に書けるようになります。キャンセルやクリーンアップはすべて構造化され、並列に行われます。
皆さんや皆さんのチームが Jetpack Compose に関するあらゆることを学習できるように、Jetpack Compose Pathway をアップデートしました。これは、動画やハンズオン Codelabs、重要なドキュメントを厳選した一覧であり、Compose を始める際に役立ちます。本日は、新しく作成またはアップデートしたガイド ドキュメントも公開します。たくさんのスクリーンキャストや新しい Animation Codelab を通じて、Compose で開発を始める方法を詳しく学ぶことができます。アーキテクチャ、ユーザー補助機能、テストに関するガイドから、アニメーション、リスト、Compose の思想に関する詳しい説明まで、作業をより早くするために役立つガイドも準備しました。
さらに、実際に動作する Compose をすぐに見てみたい方のために、8 つの公式サンプルアプリも提供しています。シンプルなものから複雑なものまで、すべて異なる API やユースケースを扱っています。詳しくは README をご覧ください。
Compose を始める準備ができ、賞品も獲得したい方は、#AndroidDevChallenge に挑戦してください。Jetpack Compose で優れたアプリをすばやく作成する技術を身につけられるよう、4 週間にわたって日本時間の木曜日朝、週単位のチャレンジを出題します。各チャレンジでは、「インサイトを開放する」をテーマに、アニメーションやマテリアル テーマ、Composable やリストなど、毎回 Compose の新しい領域を扱います。毎回のチャレンジの勝者に新しい賞品があり、Pixel 5 を含む 1000 個以上の賞品を準備しています*。2 月 25 日から始まっている第 1 週のチャレンジの詳細は、こちらをご覧ください。
Jetpack Compose はベータ版に到達し、1.0 に向けた確定版の API や機能が完成しています。アプリで Compose を採用した方は、ぜひフィードバックをお寄せください。Kotlin Slack の #compose チャンネルで行われているディスカッションへの参加もお待ちしています。
*毎週のチャレンジに新しい賞品が設定されています。Google Pixel 5 が賞品になる週で、Google Pixel 5 が利用できない国にお住まいの方には、同程度の価値がある電子ギフトカードをお送りします。詳しくは公式ルールをご覧ください。
この記事は Hoi Lam による Android Developers Blog の "Quality to match with your user’s expectations" を元に翻訳・加筆したものです。詳しくは元記事をご確認ください。
10 年以上前に Android がリリースされてから、このプラットフォームは成長を続け、ユーザーの期待も高まるばかりです。それに伴い、ユーザー エクスペリエンスから、マテリアル デザイン、プライバシーの重要性と進化に至るまで、さまざまな改善が行われてきました。その一方でデベロッパーの皆さんが、常にアプリでよりすばらしいユーザー エクスペリエンスを提供していきたいと考えていることは承知しています。同時に、どの領域に最初に取り組むべきかを判断するのが難しいことも、私たちは把握しています。そこで、Android Developers のウェブサイトにアプリの品質セクションを新たに設けて、アプリの品質の重要な内容についての最新情報や関連リソースを提供します。
今回の最初のリリースでは、Android の最新リリースや、アプリ エコシステムの現在のトレンドを踏まえて、アプリの中核品質チェックリストを更新しました。このアップデートのいくつかのポイントを示します。
常に最新の状態を保てるように、今後は四半期ごとにこのリストを更新したいと考えています。また、他のフォーム ファクタの品質チェックリストも更新する予定です。
現在は、Android で高品質なアプリを簡単に構築できるように、追加のツールやベスト プラクティスに関する作業を進めています。引き続き改善を続けていきます。ご期待ください。
Google は、国際女性デーを祝して、社会の男女格差を埋めるために努力を続ける女性たちに注目します。その取り組みの一貫として、Google Play ストア にて人気のアプリやゲームの開発に携わっている女性の声を取り上げています。
日本からは、注目の女性経営者としてバンダイナムコ、宇田川南欧さんのインタビューを掲載しています。
ゲーム業界のキャリアにおいて女性であることや、宇田川さんが影響を受けた女性についてなど幅広いトピックスをカバーしています。
同社初の女性取締役であり、「ドラゴンボールZ ドッカンバトル」などの作品を統括される宇田川さんの印象的なお話を、ぜひご覧ください。
その他にも、Supercell や Kabam といったグローバル企業で活躍されている女性のインタビューも掲載中です。
こちらも併せてご覧ください。
この記事は Ting-Yuan Huang、David Winer による Android Developers Blog の記事 "Announcing Kotlin Symbol Processing (KSP) Alpha" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2021 年 2 月 10 日(日本時間 2 月 11 日)、Kotlin Symbol Processing(KSP)のアルファ版をリリースしました。このまったく新しいツールは、Kotlin で軽量コンパイラ プラグインを作成するためのものです。KSP は KAPT に似た機能を提供しますが、最大 2 倍高速に動作し、Kotlin コンパイラ機能に直接アクセスできます。さらに、マルチプラットフォームの互換性を考慮して開発されています。
KSP は、Kotlin 1.4.30 以降のリリースと互換性があります。オープンソースのコードとドキュメントは、KSP GitHub リポジトリでご確認ください。
Kotlin デベロッパーから最も多く寄せられるリクエストは、ビルド速度の高速化です。多くのデベロッパーは、毎日何十回もアプリのデプロイを繰り返しています。そのため、遅いビルドが終わるのをじっと待たなければならないのは、大きな時間の無駄になる可能性があります。Kotlin コードのコンパイルで特に難しい点は、Kotlin にネイティブのアノテーション処理システムがないことです。Android では Room などにアノテーション プロセッサが多用されていますが、これは Java のアノテーション処理との互換性に依存しており、Kotlin Annotation Processing Tool(KAPT)を通して行われます。しかし KAPT では、中間 Java スタブを生成し、それを Java アノテーション処理システムで処理しなければならないので、高速に実行できるとは限りません。
KSP を設計するにあたって、Kotlin のアノテーション処理を一から構築するとしたら、それはどのようなものになるかについて検討しました。KSP は、Kotlin コードを直接解析する強力でシンプルな API を提供します。そのため、KAPT のスタブ生成によって生じていたビルド速度の遅さを大幅に改善できます。実際に、Room ライブラリを使った初期のベンチマークでは、KSP は KAPT に比べてほぼ 2 倍高速であることが実証できています。
実際に動作する KSP がどのようなものかを確認するには、GitHub から KSP Playground プロジェクトをダウンロードしてください。以下の内容が含まれています。
test-processor
workload
ビルダーを実装するすべてのロジックは test-processor 内にあります。コンシューマー(workload)側で KAPT と KSP を使用する際の唯一の違いは、次のようにビルドファイルに 2 行分の差異があることだけです。
これが KSP の目指すところです。ほとんどの Android アプリのデベロッパーは、内部処理について心配する必要はありません。この 1 行を変更しさえすれば、KSP をサポートするライブラリは通常のアノテーション プロセッサのように見えます。違うのは、最大 2 倍高速になることだけです。ただし、KAPT と KSP を同じモジュールで利用すると、内部的にビルドが遅くなる可能性が高くなります。そのため、アルファ版の期間中は、KSP と KAPT は別々のモジュールで利用したほうがよいでしょう。
KSP に対応するアノテーション プロセッサが増えるにつれて、ほとんどのモジュールは KAPT の完全互換に近い形で KSP を利用できるようになるはずです。現在は、こちらの表でどのアノテーション プロセッサが KSP をサポートしているかを確認できます。KSP をサポートするライブラリや KSP のサポートを実装するライブラリがこの表にない場合は、提案と合わせてプルリクエストをお送りください。
現在アノテーション処理を利用しているライブラリ作成者の方は、ライブラリを KSP に対応させる方法がクイックスタートや README ガイドに掲載されていますので、ご覧ください。
KSP がアルファ版になったので、ライブラリ作成者にとっては、詳しい内容を確認して KSP Issue Tracker から API に関するフィードバックを送り始める絶好のタイミングです。リリースに関する最新情報は、Kotlin Slack の #ksp チャンネルに定期的に投稿しています。昨年 6 月のデベロッパー プレビュー以降、100 以上のバグや問題に対応してきました。その中には、Kotlin ライブラリ デベロッパーのすばらしいコミュニティの皆さんから報告いただいたものもたくさん含まれています。
Java は Oracle および/またはその関連会社の登録商標です。
この記事は 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 リポジトリのテンプレートを作成していますのでご利用ください。
#AndroidDevChallenge 初回のチャレンジは、子犬の里親探しアプリの作成です。このアプリでは、概要画面で子犬の一覧を、詳細画面でそれぞれの子犬の詳細を表示する必要があります。エントリは、太平洋標準時 3 月 2 日 23 時59 分(日本時間 3 月 3 日 16 時 59 分)までにこちらから送信してください。
UI はすべて Compose で作成する必要があります。審査対象はアプリの UI レイヤーのみです。実装にあたっては、レイアウト、リスト、テキスト、ナビゲーションに関する Compose ドキュメントを参考にしてください。ハンズオンの学習教材として Compose Pathway を試すこともできます。このチャレンジに役立つトピックを説明した Codelabs が含まれています。
🐶 よりも 🐱 のほうが好きな方も大丈夫です。ペットの里親探しアプリであれば、どんな種類でも歓迎します。
多数のご応募をお待ちしています。
最初のチャレンジの賞品は、Compose で飛び回る際の相棒としてぴったりな、LEGO ブロックの Jetpack Compose スーパーヒーロー限定トロフィーです。チャレンジを成功させてエントリを送信した最初の 500 名には #AndroidDevChallenge 初週の勝者である証として、Android フィギュアのコレクションにこのトロフィーを追加できます。
refContentProvider()
releaseWakeLock()
JobScheduler.schedule()