Android Kotlin基礎講座 09.1:レポジトリー

Android Kotlin基礎講座

まとめ

  • キャッシングとはネットワークから取得したデータを端末のストレージに保存するプロセスのことを言います。キャッシングによってアプリは端末がオフラインのときでもデータにアクセスすることができるようになります。
  • 構造化されたデータを端末のファイルシステムに保存する最も効率的な方法は、ローカルのSQLiteデータベースを使う方法です。RoomはSQLiteオブジェクトマッピングライブラリで、SQLite上に抽象化レイヤーを提供するものです。

    Roomを使うことはオフラインキャッシングを実装するために推奨されたベストプラクティスです。
  • レポジトリークラスはRoomデータベースやウェブサービスのようなデータソースをアプリの他の部分から切り離す役割を果たしています。レポジトリークラスはデータアクセスのためのクリーンなAPIをアプリの他の部分に提供します。

  • レポジトリーを使うことはコードの分離とアーキテクチャのためのベストプラクティスです。
  • オフラインキャッシュを設計する際は、アプリのネットワーク、ドメイン、データベースオブジェクトを分離するのがベストプラクティスです。この手法は概念の分離の一例です。
  • アプリをオフライン対応にするためには、Roomを使ってローカルデータベースを追加します。さらにレポジトリーを実装してRoomデータベースの管理・アクセスをします。ViewModelで、ネットワークからデータを読み取る代わりに、レポジトリーから直接データを取得・表示します。
  • データベースのリフレッシュ手法を使って、ローカルデータベースにデータを挿入したり更新します。データベースのリフレッシュでは、ローカルデータベースがネットワークからのデータと同期するために更新、またはリフレッシュされます。
  • データベース内のデータに変更があった際に、UIデータを自動で更新させるためには、DAO内でLiveData型の値を返す監視可能なクエリを使います。Roomデータベースが更新されると、Roomはバックグラウンドでクエリを実行して紐づけられたLiveDataを更新します。

お疲れさまでした。次の講座は 9.2 WorkManagerです。

プロフィール

プロフィール
コードラボJP

大学卒業後SEに就職、現在は退職しフリーランスとして活動中。
『初心者でも挫折せずに一人でプログラミングを学べる』をモットーに、コードラボJPを開設
お問い合わせ等はcodelabsjp@gmail.comまで

コードラボJPをフォローする
タイトルとURLをコピーしました