X

Google I/O Developer Keynote Android開発のまとめ

2018年5月8日(現地時刻)に開催されたGoogle I/OのDeveloper KeynoteからAndroid関係のトピックをお伝えします。Google I/Oの午前中のキーノートはAIを中心とした内容でした。Developer Keynoteでは理想を実現するための開発環境、新機能を中心に紹介しています。

本記事を読んで概要を理解した後に気になる機能があれば更にGoogleのAndroid Developers Blogを読むと便利です。

上記のGoogle I/O 2018: What’s new in Androidの記事がよくまとまっていますが、ほかにも沢山の記事を公開しています。

Androidの新機能を3つの軸で紹介

Developer KeynoteではGoogle Playでのアプリケーション公開機能の改善、開発環境の更新、ユーザーエンゲージメントを高める新機能という3つの軸で紹介しています。

ダウンロードサイズを劇的に改善するAndroid App Bundle

Android App Bundleはアプリケーションに手を加えることなくAPKサイズを小さくするGoogle Playストアの最適化機能です。

現代のアプリ開発はどうしても多機能になります。サポートすべき機種、画面サイズが多く、それだけでもリソースを沢山消費します。APKサイズが増加する一方ですが、ダウンロード時間がながいアプリケーションはGoogle Playストアでみつけてもなかなかダウンロードしてもらえません。

この図からはアプリのサイズがおおきくなるにつれ、コンバージョンが下がっていることがわかります。

Android App Bundleではユーザーの端末に必要なリソースだけを利用することで、ダウンロードサイズを小さくする機能です。開発者はGoogle Play Developer ConsoleにKeystoreを預けるだけで利用可能です(本日5月8日にリリースしています)。App BundleではアップロードされたAPKをunpackし、必要なリソースのみを含んだAPKを生成して、受け取った鍵で署名しています。ユーザーは本当に必要なリソースのみをダウンロードするため、待ち時間が短くなるメリットがあります。

アプリ開発を加速するJetpackとAndroid Studio 3.2 Canary

素早いアプリ開発サイクルを維持するためには、開発環境とアプリケーションのコードに関心を払うべきでしょう(ボイラープレートを廃して創造性を維持する必要があります)。Developer Keynoteではリリースされたアプリケーションのうち35%がKotlinを採用していることを明らかにしました。

プログラミング言語Kotlinのサポートだけではなく、アプリ開発環境を改善するべくArchitecture Componentsと関連する機能をまとめた新しいアプリケーションウィザードのAndroid Jetpack、Jetpackをはじめとした新機能が使えるAndroid Studio 3.2を発表しています。

Android JetpackはArchitecture Componentsやサポートライブラリ(AppComaptなど)複数のライブラリをまとめて導入するプロジェクト構成です。Androidプラットフォームに特化した部分を隠蔽し、ライフサイクルなどを意識せずアプリのコアとなるロジックを組み立てることに集中できる機能といえます。

Android Studio 3.2 Canaryのレイアウトエディタにアプリの画面遷移をわかりやすく記述するNavigation Editorが登場しました。画面を構成するレイアウトファイルを並べ、遷移先を矢印でつなぎます。ここで指定した遷移はJetpackのNavigation Componentに対応しているため、GUIエディタ上でナビゲーション構造を構築できます。


エミュレータを高速化し、1秒〜2秒で起動するようになりました。3Dレンダリングも実用レベルまで改善しているため、ARやVRといったより重い処理もエミュレータ上で確認できます。いままでは起動待ちがありましたが、高速なレスポンスでさまざまな端末を試せるため、検証にも便利です。

エンゲージメントを高めるAndroid Slices

Android Slicesは検索、AIとの対話に最適化したアプリのための拡張機能です。ユーザーとアプリケーションの接点をふやし、アプリを起動していない状況でも利用を促せる機能です。ユーザーがアプリケーションを日常的に使うタッチポイントが増えることに繋がります。結局、起動しなくなって使われなくなるアプリが多いという現状を踏まえた新しいサジェスト(に対応するための機能)といえます。

RemoteViewのように表示でき、さまざまな文脈(Googleアシスタントとの会話中や検索結果など)でアプリケーションの機能を使いやすくします。

Slices以外にもApp ActionsなどAI(またはAIがもたらす新しい体験)に対応した機能が増えています。

Androidアプリ開発を効率化するためにはプラットフォームであるAndroidの進化と開発環境のサポート強化の両方が求められています。これは制作するアプリそのものが複雑になっていることやユーザーを取り巻くトレンドや環境(たとえばMaterial Design自体がMaterial Theamingに進化していることもトレンドへの対応といえるでしょう)に適応して振る舞いを変えてメンテナンスしていくという、時代の変化に迫られている点に起因しています。JetpackやサポートライブラリのrenameとなるAndroidXなどの機能は変化に対応するために提供されており、開発を手助けしてくれる存在です。

mhidaka: Software Engineerだよ。DroidKaigi Organizer / Androidと組込とRe:VIEW。techbooster主宰。mhidaka's writings http://booklog.jp/users/mhidaka 技術書典! http://techbookfest.org