Android Kotlin基礎講座 09.1:レポジトリー
目次
まとめ
- キャッシングとはネットワークから取得したデータを端末のストレージに保存するプロセスのことを言います。キャッシングによってアプリは端末がオフラインのときでもデータにアクセスすることができるようになります。
- 構造化されたデータを端末のファイルシステムに保存する最も効率的な方法は、ローカルのSQLiteデータベースを使う方法です。RoomはSQLiteオブジェクトマッピングライブラリで、SQLite上に抽象化レイヤーを提供するものです。
Roomを使うことはオフラインキャッシングを実装するために推奨されたベストプラクティスです。 - レポジトリークラスはRoomデータベースやウェブサービスのようなデータソースをアプリの他の部分から切り離す役割を果たしています。レポジトリークラスはデータアクセスのためのクリーンなAPIをアプリの他の部分に提供します。
- レポジトリーを使うことはコードの分離とアーキテクチャのためのベストプラクティスです。
- オフラインキャッシュを設計する際は、アプリのネットワーク、ドメイン、データベースオブジェクトを分離するのがベストプラクティスです。この手法は概念の分離の一例です。
- アプリをオフライン対応にするためには、Roomを使ってローカルデータベースを追加します。さらにレポジトリーを実装してRoomデータベースの管理・アクセスをします。ViewModelで、ネットワークからデータを読み取る代わりに、レポジトリーから直接データを取得・表示します。
- データベースのリフレッシュ手法を使って、ローカルデータベースにデータを挿入したり更新します。データベースのリフレッシュでは、ローカルデータベースがネットワークからのデータと同期するために更新、またはリフレッシュされます。
- データベース内のデータに変更があった際に、UIデータを自動で更新させるためには、DAO内でLiveData型の値を返す監視可能なクエリを使います。Roomデータベースが更新されると、Roomはバックグラウンドでクエリを実行して紐づけられたLiveDataを更新します。
お疲れさまでした。次の講座は 9.2 WorkManagerです。
おすすめ書籍
Kotlinの文法をまず学びたい!という方には以下の書籍がおすすめです。Kotlinは日本語書籍がまだ豊富とは言えない状況ですが、細かく解説されており、Kotlin入門者のかたでもつまずくことなく学習できると思います。
[itemlink post_id=”1743″]実際にアプリを作りながら覚えていきたい!という方には以下もお勧めです。はじめに上の書籍で文法をさらっと学んでから取り組むのがお勧めです。
[itemlink post_id=”1745″]