Androidが「折りたたみスマホ」を正式にサポート、アプリ内アップデートAPIなど新機能も登場
Googleは2018年11月7日と8日の2日間、アメリカ・カリフォルニア州マウンテンビューで開発者向けサミット「Android Dev Summit」を開催しています。この中で、Googleは開発者向けにAndroidの新機能をいくつか明かしており、折りたたみスマートフォンを正式にサポートすることもアナウンスしました。
Android Developers Blog: Unfolding right now at #AndroidDevSummit!
https://android-developers.googleblog.com/2018/11/unfolding-right-now-at-androiddevsummit.html
We just announced support for foldables at #AndroidDevSummit, a new form factor coming next year from Android partners.
— Android Developers (@AndroidDev) 2018年11月7日
Android apps run seamlessly as the device folds, achieving this form factor's chief feature: screen continuity. pic.twitter.com/NAfOmCOY26
◆折りたたみスマートフォンのサポート
2008年の登場から早くも10年の歳月が経過したAndroidは、Android 1.6からさまざまなディスプレイサイズや画素密度の端末に対応してきました。そして、記事作成時点ではAndroid TVやAndroid Auto、Wear OSなどスマートフォン以外の端末にも対応しており、さらにはChromebook上でAndroidアプリを利用することまで可能となっています。
そんな中、Androidは複数のスマートフォンメーカーが開発を進めている「折りたたみスマートフォン」へのサポートを正式発表しています。以下の画像をクリックすると、折りたたみスマートフォンに対応して画面がどのように変化するかをチェック可能。ディスプレイを内側に折りたたむケースと、外側に折りたたむケースの両方に対応していることがわかります。
折りたたみスマートフォンは、開いた状態だと「タブレットのような大画面端末」となり、折りたたんだ状態だと「スマートフォンのような縦長画面端末」になります。これを「タブレットモード」と「スマートフォンモード」と呼ぶとします。折りたたみスマートフォンを実現する方法はさまざまですが、大きく分けると1つの画面でタブレットモードとスマートフォンモードの両方に対応するものと、2つの画面で2つのモードに対応する方法があります。
例えば、世界初の折りたたみスマートフォンである「FlexPai」は、ひとつのディスプレイでタブレットモードとスマートフォンモードの両方の画面を表示できますが……
AppleやSamsungより先に登場した世界初折りたたみ式スマホ「FlexPai」 - GIGAZINE
Samsungが発表した折りたたみ可能なディスプレイ「Infinity Flex Display」を採用したスマートフォンは、タブレットモードとスマートフォンモードでそれぞれ別のディスプレイを使用するものと思われます。
Samsungの折りたたみスマホの仕様が明らかに、デモ機での折りたたみ動作や専用ディスプレイ「Infinity Flex Display」も - GIGAZINE
このどちらの方式を採用していたとしても、スマートフォンモードからタブレットモード、あるいはその反対への移行をよりシームレスに行えるように「Androidの最適化を行っている」とのこと。
◆急成長中の開発言語Kotlinをアップデート
2017年にAndroidの開発言語として正式に採用されたKotlinは、なんと世界中の11万8000以上のプロジェクトで使用されるまでに成長しているそうです。この数字は2017年時点の数字の10倍で、「GitHub上のコントリビューター数の増加」だけで見れば最も成長している開発言語となっています。さらに、スタック・オーバーフローの「最も愛されている開発言語ランキング」において、2位に選ばれてもいます。Android開発チームの調査によると、Kotlinを使用する開発者の数が増えるにつれ、満足度も高くなっているとのこと。
そんなKotlinは、新しい言語機能やAPI、バグ修正、パフォーマンスの向上をもたらす最新バージョンKotlin 1.3をリリースしています。
Kotlin 1.3に関する詳細は以下のページから確認できます。
Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more | Kotlin Blog
https://blog.jetbrains.com/kotlin/2018/10/kotlin-1-3/
◆Android Jetpackの進化
Google I/O 2018の中で、Android開発を加速させるための新しいAPI「Android Jetpack」が発表されました。Android Jetpackはサポートライブラリとアーキテクチャという基盤上に構築されたもの。既に、アプリやゲームのトップ1000のうち、80%が開発にAndroid Jetpackを利用しているそうです。
Googleは2018年の夏に、Android Jetpackのオリジナル版とも呼べるAndroid拡張ライブラリAndroidXをオープンソースのAOSPへと移動させました。その結果、リアルタイムで実装された機能を確認したり、バグ修正を確認したりすることが可能となっています。
また、Android開発チームは、Android Jetpackに新しい2つのアーキテクチャコンポーネントライブラリを追加する予定であることも発表。追加されるのは「Navigation」と「Work Manager」で、どちらも2018年11月中にはベータ版が利用可能となるそうです。
「Navigation」は、単一のアクティビティを使用して、開発者のアプリケーションにAndroidのナビゲーション機能を簡単に実装する方法を提供するためのもの。Android向けの統合開発環境(IDE)であるAndroid Studio上には「Navigation Editor」が追加され、ナビゲーションアーキテクチャを構築可能となります。これによりナビゲーションボイラープレートが不要となり、原子ナビゲーション操作やアニメーションの移行などが容易になるとのこと。
「Work Manager」は、最も効率的な方法でバックグラウンドタスクを実行できるようにするもの。アプリケーションの状態とデバイスAPIレベルに基づき、最適なソリューションを提供してくれるそうです。
さらに、アプリの小さな切れ端のようなものでコンテンツやアクションを表示できる「Slices」もあります。別のアプリを開きながら、フライトを予約したり、ムービーを再生したり、電話をかけたりすることが可能になるというもの。「Slices」も早い時期に公開したいと考えているそうですが、正しく動作させるために時間をかけて開発を進めたいとAndroidの開発チームは記しています。なお、「Slices」はDoistやKayakなどで公開EAPに移行しており、Google検索結果上でも「Slices」の実験を行っているとのこと。
◆Android Studio
Android開発チームによると、データ収集に同意してくれたユーザーのアプリ開発にかかる時間を調査したところ、Android Studioの各リリースごとに、開発時間を20%ずつ短縮することに成功しているとのこと。しかし、同時にビルド時間が徐々に遅くなっていることも明らかになっています。
これがどういうことか調査したところ、Android Studioはリリースごとに機能が進化し、使い勝手が向上している反面、OSやカスタムプラグイン、言語など複数の要素の組み合わせが拡大しているため、一部のユーザーの間で「目的のプラグインを追加するのに最大45%も遅くなっていた」などの事態が発生していたそうです。ここでようやく開発チームはビルドのプロファイリングと分析を行うためのツールを作成することを理解したそうです。
そんな反省点を踏まえたAndroid Studio 3.3のベータ3が、2018年11月8日から配信されています。
◆Android App Bundle
Androidアプリのデータサイズは2012年から5倍以上に増加しています。しかし、アプリのデータサイズが大きくなると、インストール時の変換率が低下し、アップデート率も低下し、アンインストール率も低下するという弊害が起きます。そこで、開発チームは必要なコードとリソースのみを提供する新しいパブリッシングフォーマットであるAndroid App Bundleを構築しました。平均的なアプリでは一般的なAPKに比べ、35%もデータサイズを節約できるとのこと。また、複数のAPKを用いるような場合であっても、各リリースで時間と労力を節約することにつながるそうです。
Android App BundleはAndroid Studio 3.2で完全にサポートされたもので、記事作成時点ではYouTube・Googleマップ・Googleフォト・GoogleニュースなどのGoogleアプリに加え、何十億種類ものアプリがAndroid App Bundleを用いてインストールされています。
このAndroid App Bundleが非圧縮のネイティブライブラリをサポートするようになりました。開発者側の手間が省け、ネイティブライブラリを使用するアプリは、ダウンロードサイズが平均8%も小さくなり、M+デバイスのディスク上では16%もデータサイズが小さくなります。
Android App Bundleを用いればアプリのモジュール化も可能となります。Dynamic Deliveryを利用すれば、オンデマンドではなく、インストール時に任意のアプリの機能をロードすることが可能となります。これにより、単一のデバイスで「たった1度しか使用されないのに大きなサイズのデータ」を永遠に保持する必要がなくなります。Dynamic Delivery機能は、アプリが要求したときに動的にインストールおよびアンインストール可能です。
◆アプリ内アップデートAPI
ユーザーがアプリの最新かつ最高のバージョンを確実に使用できるようにするため、アプリ内アップデートAPI(In-app Updates API)の提供もスタート。初期のアクセスパートナーから順番にAPIはテストされており、すぐに全ての開発者向けに公開される予定です。
このAPIには2つのオプションがあり、1つ目は「更新プログラムがすぐに適用されることをユーザーが良しとしないと予想される場合でも、重要な更新プログラムはフルスクリーンで表示する」というもの。2つ目のオプションは、アップデートがダウンロードされている間、ユーザーはアプリを使い続けることができるというもの。2つの違いを示したのが以下の画像で、左が1つ目のオプション、右が2つ目のオプションを示しています。
◆Instant Apps
開発チームはインストール不要ですぐ使えるInstant Appsを、これまで以上に増やすとも記しています。そのため、Instant Appsのサイズ制限を10MBまで引き上げています。
Android Studio 3.3のベータ版では、Instant Apps対応のアプリバンドルが作成可能となっています。つまり、従来のインストールベースのアプリとInstant Appsの両方の体験を1つのAndroid Studioプロジェクトから構築・展開し、1つのAndroid App Bundleに含めることが可能となるわけです。
・関連記事
Samsungの折りたたみスマホの仕様が明らかに、デモ機での折りたたみ動作や専用ディスプレイ「Infinity Flex Display」も - GIGAZINE
AppleやSamsungより先に登場した世界初折りたたみ式スマホ「FlexPai」 - GIGAZINE
5分でわかるGoogle I/O 2018デベロッパー・キーノート、膨大な新機能やアップデートを凝縮したムービーが公開中 - GIGAZINE
・関連コンテンツ