この記事は 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! と継続的インテグレーション設定が含まれています。
Hello World!
※1 応募に関する詳細は必ず公式ルールをご確認ください。
今週のチャレンジの賞品は、究極の 5G Google スマートフォン、Google Pixel 5 です。アジア太平洋地域タイムゾーンからの応募者の中で、課題のチャレンジを最速で実装して送信したデベロッパー 1 名に贈呈します。
Jetpack Compose の中核はデベロッパー コミュニティです。プロダクトをさらに使いやすく改善するために、皆さんのフィードバックをお寄せください。
この記事は 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 についての ポッドキャスト エピソードなどをご紹介します。
今回の Now in Android は、動画とポッドキャストでもお届けします。内容は同じですが、読む量は少なくて済みます。このブログ記事版には、取り上げているすべてのコンテンツへのリンクが掲載されていますので、ぜひご覧ください。
下のリンクをクリックするか、お気に入りのクライアント アプリでポッドキャストをサブスクライブしてください。
最先端の 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 の歴史(と複雑さ)、そして最新の進展やこの先実現する機能について話しています。
今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。
この記事は 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 が利用できない国にお住まいの方には、同程度の価値がある電子ギフトカードをお送りします。詳しくは公式ルールをご覧ください。
Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC
この記事は 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()
この記事は Luli Perkins による Android Developers Blog の記事 "#AndroidDevJourney spotlight - January edition" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
#AndroidDevJourney は、デベロッパー コミュニティの皆さんが、それぞれの Android デベロッパーとしての歩みを Google のソーシャル プラットフォームで共有できるようにするためにスタートしました。2021 年 1 月 から 6 月まで、Android Developers Twitter アカウントで新しいデベロッパーを取り上げていきます。本記事では、多くの皆さんから寄せられたインスピレーションあふれる情報から、さらにピックアップした内容をお届けします。
始まりは 2009 年の Google Developer Day でした。そこで、初めての Android デバイス、HTC Magic を手にしたのです。当時は大学生で、個人的に JavaFX でアプリケーションを書いていたので、Java にはなじみがありました。その後まもなく、そのアプリを Android へ移植し始めました。卒業後はソフトウェア会社に入り、仕事で Android アプリの開発を希望しました。ただ、その会社ではチャンスはなさそうでした。そこで、Android アプリを開発する小さな会社を作ったのです。
たくさんあります。1 つ選ぶとすれば、Android Studio でしょう。私は、Android アプリの開発を始めた時 Eclipse を使っていたので、Android Studio のすばらしさにはいつも感謝しています。加えて、Kotlin、RecyclerView、ConstraintLayout などがなければ日々の業務を円滑にすすめることはできないでしょう。
なくてはならない Android Studio のショートカットは、Command + B(宣言または使用場所)です。これを使うと、宣言と使用場所を行き来できます。Android プラットフォームでもライブラリでも、ソースコードを読む場合にとても役立ちます。
公式ドキュメントを読むこと、そしてプラットフォームや使っているライブラリのソースコードを読むことです。短時間で Android について学習する手段の 1 つは、最初から最後まで、つまり公式にリリースするまでアプリを作ってみることです。
また、特にアプリの構造全体に関わる部分では、ライブラリに依存しすぎないようにします。ライブラリより長続きするアプリになるかもしれませんからね。
Android デベロッパーの道を歩み始めたきっかけは、学部の 4 年生のときでした。GreenAppleSolutions というスタートアップ企業でインターンに参加したのです。そこで Android プロジェクトに最初から関わる機会があり、初めてのプロジェクトが Play ストアで公開されました。Android の面白さに気づいたのは、このインターンの期間中です。コードで書いたことすべてが、その場で自分のデバイスに表示されるのです。そこから Android が大好きになり、Android をキャリアパスにすることを決めました。
私は Android Lint の大ファンです。非推奨の呼び出しや API を手動で見つける手間を何度も省いてくれました。ベスト プラクティスに従う上でも役立つので、コードが最適化され、安全になり、パフォーマンスも高くなります。
2 つあります。
モバイルに関わる仕事は 2010 年に iOS から始めました。その後 2011 年に大学で携わった最後の土木関係のアプリのプロジェクトチームには、Mac を持っている人が誰もいなかったので Android を使いました。当時は政府関係者にテクノロジーを教えており、コーディングはそれほど行っていなかったのですが、このプロジェクトの後、ジュニア Android デベロッパーの仕事につきました。それ以降、このプラットフォームにとても惹かれて、離れられなくなりました。
Eclipse + ADT で Java を使ったり、Holo や ActionBarSherlock、あるいは初歩的なマテリアル デザインを使ったりしていましたが、Google I/O ’13 に参加した際、Google が Android Studio を発表しました。わからないことだらけではありましたが、関連する知識を数多く学べただけでなく、出会った人にも大いに助けられ、洞察に満ちた体験でした。
それ以来、10 年以上モバイルの仕事を続けており、そのほとんどは Android をに関わるものです。多くのブラジルのテック企業や有力新興企業の Android プロジェクトを手伝い、2016 年には Android の Google Developer Experts になりました。
また、デベロッパーやデザインのコミュニティも好きなので、できるかぎり関わるようにしています。私は GDG サンパウロの元オーガナイザーで、Kotlin Meetup サンパウロと Android Dev BR を創設してオーガナイザーを務めています。後者はブラジルとポルトガル語圏における最大の Android コミュニティで、7,500 名以上のメンバーが参加しています。
さらに、全国的なスタートアップ企業コミュニティにも関わっており、ACE Startups とブラジルの Google For Startups Accelerator プログラムでメンターを務めています。
Android Studio には、私が多用しているシンプルで強力なショートカットがあります。その機能とは、同じ語句の複数カーソル選択なのですが、Ctrl + G(macOS)、Alt + J(Windows + Linux)で同じ語句の増分選択、Ctrl + Cmd + G / Shift + Ctrl + Alt + J ですべての同じ語句の選択ができます。つまらないことのように思えますが、このショートカットはコーディングを進める上で、特にリファクタリングを行う場合は非常に役立ちます。私は毎日使っています!
私のアドバイスは、この 2 つの言葉に要約されます。学習と共有です。
学習では、できるだけ多く学ぶようにします。公式ドキュメントやコミュニティのドキュメントとして公開されているすばらしいコンテンツだけでなく、実際に手を動かす実習を欠かさず、失敗からも学びましょう。インターネットには多くの無料コンテンツがあり、Google や私のような GDEs(Google Developer Experts)によるコンテンツもあります。実習を続け、オンラインで知識を得るようにしましょう。
そして、学んだあとは共有することです。今の私があるのは、学習中に自分で見つけられなかったことを共有できたからです。ですからぜひ、皆さんの知識を共有してください。
Android コミュニティはすばらしく、あなたの大きな力になってくれます。Twitter や Reddit などで、使っている API やライブラリの作成者と実際に話せるのです。情報の共有は、ブログ記事を書いたり、ポッドキャストを録音したり、動画を収録したりなど、さまざまな方法が使えます。
インターネットという強力な学習と共有のツールを使って学習し、共有してみてください。機会があれば、もちろん私もサポートします!:)
Android デベロッパーになったのは、2015 年、初めて起業について考えていたときでした。学校に戻る余裕はなかったので、会社を始めて腕を試してみることにしました。ウェブ アプリケーションを作成しましたが、顧客はニーズを満たすためにネイティブ アプリも必要だと言って譲りませんでした。最初は経験豊富な人を探したのですが、最終的に Android アプリの作り方を自習することにしました。そして 2017 年には、共同創業者の Christian と一緒に自社の Android アプリ Qoins を Google Play ストアに公開しました。それ以来、たくさんの Android ユーザーにご利用いただき、何度か資金を調達しました。
仮想デバイスで Android ビルドをテストできるのは本当に助かります。さまざまな種類のデバイスで動作する Android アプリを作るには、さまざまなシナリオを考えなければなりません。Firebase Test Labs などのツールやその他の仮想デバイス サービスを使えば、自分が持っている物理 Android デバイスでは行えない特別なシナリオを作成し、実際にテストすることができます。
失敗しても大丈夫です。それもプロセスの一部なのです。
Android に関わるようになったのは 2014 年の初めです。その前は、在庫システムを構築している小さな会社でジュニア Java デベロッパーとして働いていました。ですが、その仕事に興味が持てず、Java の知識を活用して大きな仕事をする機会を探していました。初めて買ったスマートフォンは Nokia でしたが、そのアプリを見てどうやって作っているのだろうと思いました。調べてみたところ、実はアプリが Java で書かれていることを知りました。そこから私の挑戦が始まりました。
初めてのアプリ、Simple Math を作ったことを覚えています。フラグメントはなかったので、アクティビティだけで作りました。その後の進化には驚かされますね。Simple Math は 500 回ダウンロードされ、評価は 4.5 でした。それが、もっとアプリを作りたいというモチベーションになりました。その後、Grow With Google Scholarship(2018 年)を受けることができ、それでキャリアが一気に加速しました。1 年間の奨学金を受けているとき、Google Play ストアに 2 つ目のアプリ Budgeting Buddy を公開し、5,000 回以上のダウンロードと評価 4.5 を獲得しました。現在は Android エンジニアとして Streem に勤務しています。
Android について大好きなところは、これほどの進化を遂げ、年を重ねるごとにテクノロジーやメンテナンス性能が改善されてきたことです。特にエミュレータについての改善が著しいです。
欠かせないと思うショートカットは、[Options + Command + L] と [Options + Command + O] です。プルリクエストの処理をするときに、とても役立ちます。学んだコツの中でも特に素晴らしいのは、git のローカル履歴オプションです。本当に助かっています。自分が変更内容を忘れてしまったとしても、これがあれば大丈夫です。
モバイルに完全に移行したとき、私は生涯、この学習曲線に適応しなければならないと感じました。その考えがずっと役立っています。最新情報や推奨事項、それが必要になる理由を学び続けることで、他より一歩先んじることができます。たとえば、Room ができたことはすばらしい進化でした。今では、Dagger や Hilt などもあります。そこから転じて、新しいデベロッパーに助言するとすれば、学ぶことを厭わなければ Android 開発を楽しめる、ということです。
Android Developer コミュニティは、多様な人が参加し、そしてあらゆる背景や人生の段階にあるデベロッパーを歓迎しています。コミュニティの活動に興味をお持ちの方や、コミュニティに参加する方法を詳しく知りたい方は、developer.android.com や Android Developers のTwitter アカウント、Android Developers YouTube チャンネルをぜひご覧ください。
Google Developer Groups プログラムに参加すると、皆さんと同じようにテクノロジーに興味をもっている地元のデベロッパーと出会うことができます。GDG のミートアップ イベントでは、さまざまな技術トピックについてのトークが行われ、ハンズオン形式のワークショップで新たなスキルを習得できます。こちらから、お住まいの地域のコミュニティをぜひこちらから探してみてください。
2014 年に創立された Google の Women Techmakers は、コミュニティや広報、リソースを通じて、テック業界で活躍するすべての女性をサポートすることに全力を注いでいます。10 万人以上の女性デベロッパーが参加しており、すべての女性がテクノロジーで活躍できる世界を作るために、世界中のコミュニティと連携しています。
Google Developers Experts プログラムは、高度な経験をもち、イベントでの講演、コンテンツの作成、イノベーションあふれるアプリの開発を通してデベロッパーや企業、テック コミュニティを積極的にサポートしている、テクノロジー エキスパートやインフルエンサー、思想的リーダーによるグローバル ネットワークです。エキスパートは、イノベーションあふれるアプリの開発や公開を手伝うことで積極的に貢献し、世界中のデベロッパーやスタートアップ企業のエコシステムをサポートしています。プログラムの詳細はこちらからご覧ください。