Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

DataStore

一貫して非同期で、トランザクションとしてデータを保存し、SharedPreferences の欠点の一部を解消します。
最新の更新 現在の安定版リリース 次のリリース候補 ベータ版リリース アルファ版リリース
2020 年 11 月 11 日 - - - 1.0.0-alpha03

依存関係の宣言

DataStore への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

DataStore の実装には、Preferences と Proto という 2 つがあります。どちらか一方を選択します。どちらの実装にも、Android なしの依存関係を追加することもできます。

アプリまたはモジュールの build.gradle ファイルに、必要な実装の依存関係を追加します。

Typed

// Typed DataStore (Typed API surface, such as Proto)
dependencies {
  implementation "androidx.datastore:datastore:1.0.0-alpha03"
}
// Alternativey - use the following artifact without an Android dependency.
dependencies {
  implementation "androidx.datastore:datastore-core:1.0.0-alpha03"
}

Preferences

// Preferences DataStore (SharedPreferences like APIs)
dependencies {
  implementation "androidx.datastore:datastore-preferences:1.0.0-alpha03"
}
// Alternativey - use the following artifact without an Android dependency.
dependencies {
  implementation "androidx.datastore:datastore-preferences-core:1.0.0-alpha03"
}

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0.0

バージョン 1.0.0-alpha03

2020 年 11 月 11 日

androidx.datastore:datastore-*:1.0.0-alpha03 がリリースされました。バージョン 1.0.0-alpha03 に含まれるコミットについては、こちらをご覧ください

新機能

  • Preferences で倍精度値がサポートされるようになりました(浮動小数点数より高い精度が必要な場合に便利です)(I5be8fb/169471808

API の変更

  • データストア用の純粋な Kotlin 依存関係を作成し、コンパイルを高速化できるようにしました。androidx.datastore:datastore-core にはコア Kotlin のみの API が含まれ、androidx.datastore:datastore には Android に依存する API(SharedPreferencesMigrationContext.createDataStore コンストラクタを含む)が含まれます(I42d75b/168512698
  • Preferences データストアのターゲットを分割し、Kotlin コンパイルを高速化しました(Ia3c19
  • シリアライザには、ディスク上にデータがない場合に使用されるデフォルト値の新しいプロパティが必要になりました。これにより、カスタム シリアライザの実装が容易になるため、ユーザーは空の入力ストリームを特別扱いする必要がなくなります(空の入力ストリームは JSON で解析されません)。

    • また、writeTo() に提供される出力ストリームが閉じられていないことを確認し、閉じられている場合は例外をスローするようになりました(I16e29
  • SharedPreferencesView のコンストラクタを内部用にしました。元々はテストのために一般公開されていました。テストでは代わりに SharedPreferencesMigration を作成し、これに対してテストする必要があります。(I93891

バグの修正

  • DataStoreFactoryPreferenceDataStoreFactoryproduceFile パラメータがリストの最後のパラメータになり、Kotlin の後置ラムダ構文を使用できるようになりました。(Ibe7f1b/169425442
  • Kotlin の新しい明示的な API 要件に従いました(I5ae1e

バージョン 1.0.0-alpha02

2020 年 10 月 14 日

androidx.datastore:datastore-core:1.0.0-alpha02androidx.datastore:datastore-preferences:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

バグの修正

  • datastore-core にミューテーションに対する保護手段を追加しました。ミューテーションは、proto / preferences でないタイプのデータストアを使用するユーザー(I6aa84)によるデータストアの使用を遮断します。
  • 現在の状態を簡単にデバッグできるようにするため、Preferences.kt に toString メソッドを追加しました(I96006
  • DataStore.Preferences の誤用を防ぐための例外を追加しました(I1134d
  • 起動時にアプリがクラッシュする原因となるバグを修正しました(I69237b/168580258

バージョン 1.0.0-alpha01

2020 年 9 月 2 日

androidx.datastore:datastore-core:1.0.0-alpha01androidx.datastore:datastore-preferences:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれるコミットについては、こちらをご覧ください

新機能

Jetpack DataStore は、SharedPreferences に代わるものとして、改善された新しいデータ ストレージ ソリューションです。DataStore は Kotlin のコルーチンとフローに基づいて構築され、次の 2 種類の実装があります。

  • Proto DataStore: 型付きオブジェクトを保存できます(プロトコル バッファによってサポートされます)
  • Preferences DataStore: Key-Value ペアを保存します

一貫して非同期で、トランザクションとしてデータが保存され、SharedPreferences の欠点の大部分を解消します。