Mokelab Blog

#80 I/O 2024 - What's new in Android

Google I/O 2024の"What's new in Android"の動画をざっくり解説します。

What's new in AI in Android

Gemini nanoはモバイル向けのGemini。AndroidではAI Core搭載でAndroid 14以上の端末で利用可能。現時点(2024年5月16日時点)ではPixel 8 ProとGalaxy S24のみ。

AI CoreにアクセスするためのSDKがprivate previewなどで用さされている。一部のパートナーに提供されていて、オンデバイスでPDFの要約機能などに使われている。

アダプティブ

Material 3 Adaptive libraryが用意されている。リリース情報

Scaffoldも用意されている。

Android 15

Edge-to-edgeはデフォルトに。Android 14以下向けにenableEdgeToEdge()ActivityonCreate()で呼ぶようにする(公式の解説)。

Predictive backは開発者オプションから削除され、オプトインしているアプリで有効になる。オプトインしているの定義はAndroidManifestで以下の記述をいれているアプリ(公式ドキュメント)。

<application
  ...
  android:enableOnBackInvokedCallback="true"
  ... >
  ...
</application>

ウィジェット

Jetpack Glanceを使って、Jetpack Composeの仕組みでウィジェットを作ろう(公式ドキュメント)

デザインガイドラインも更新された(リンク)。

メディア/カメラ

Android 15にはLow light boostが追加された(公式ドキュメント)。ナイトモードとは違う仕組みらしい。

Camera Xは1.4 beta

Jetpack Compose用のcamera-viewfinder-composeが1.0-alphaとして出た。本記事執筆時点では公式ドキュメントもなく、ソースコードのREADMEにもまだ何も書かれていない状態。今後に期待。

パフォーマンス

本動画だと概要のみだったので、各セッションを見たほうがよさそう。

Vulkan

将来的にOpenGL/ESはANGLE経由のみになる。

セキュリティ

targetSdkをAndroid 15にした場合、Intentの扱いがより安全になる。テストが大変になるのでStrictModeでテストするための機能が追加されている(公式ドキュメント)。

悪意のあるアプリは、他のアプリのアクティビティを「同じタスクで」起動しようとする(起動しているがオーバーレイして他アプリを隠す)。こうすることでバックグラウンドからのアクティビティ起動の制約を回避しようとする。これを阻止するため、UIDのチェックをさせるためのフラグが追加された(公式ドキュメント)。

Android 15ではtarget SDK 24以上でないとアプリのインストール自体が失敗する(Android 14は23以上だった)

アプリの機能として写真選択が必要な場合、パーミッションを取得してギャラリー機能を作るのではなく、Photo Pickerを使おう。クラウドに保存している写真も選択できる。Photo Pickerの使い方はこちら

Play integrity API

あとでかく。。。

Credential Manager API

パスキーはよい(弊社アプリでも使っているので体験してみてください。Android版 / iOS版

Wear OS 5にもCredential Manager APIがくる。

Wear OS 5

Wear OS 5はDeveloper Preview。

新しいComplication typeの追加

Health connect

バックグラウンドでデータ取得するための権限と、履歴を読むための権限が追加された。

//read data from Health Connect while app in the background
<uses-permission
android:name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" />

//access beyond 30 days of data written to Health Connect
<uses-permission
name="android.permission.health.READ_HEALTH_DATA_HISTORY"/>

Android TV

Compose for TVがbetaになった。

TV appのアイコンが丸になった。

Android for cars

Pixel Tablet用に、Android Automotiveが動くシステムイメージが用意された。ボスの説得用にどうぞ。

スタイラス

テキストフィールドに直接ペンでテキストを書けるようになった。この機能自体はAndroid 14から。以下の3つが対応。

インク機能を実現するため、低レイテンシ用のAPIが2つ追加された。

開発者向け(生産性向上)

ComposeコンパイラがKotlin 2からKotlinのリリースにバンドルされるようになった。Composeコンパイラのバージョン指定は今後不要になる。

Strong skip modeの追加。ラムダ式を自動でrememberしてくれたり、引数の比較が変わり、再コンポーズ時にスキップされるケースが増える(公式ドキュメント)。

LazyColumn等の要素用にModifier.animateItem()が追加された。

View systemにあったShared Element transitionがようやくComposeにきた。

Flow layoutも追加された。FlowRowFlowColumnを使う(公式ドキュメント)。

TextFieldなどでリッチコンテンツ(gifなど)を受け取れるようになった。

Textで簡単なHTMLを解釈できるように。このためにTextViewを無理やり使ってた開発者も多いのでは?

アクセシビリティスキャナが強化された。アクセシビリティスキャナは公式ドキュメントをどうぞ。

本サイトではサービス向上のため、Google Analyticsを導入しています。分析にはCookieを利用しています。