Room Persistent Library + RxJava
2218 ワード
Roomとは?
Googleが今年の春頃に発表したAndroid Architecture Componentsに含まれている、ORM(永続化、オブジェクトマッピング)ライブラリです。
Roomの良さげなところ
- 構成がDDDっぽい
- Entity/Dao/Databaseという3つのレイヤー構成になっていて、若干DDDぽさがあります
- Daoにクエリをかける
- Daoの部分はアノテーションにクエリを書いて諸々CRUD処理を行えます
- MyBatisっぽさを僕は感じました
- メソッドの結果としてFlowableを返せる
- RxJavaと自然に連携させられます
@Query("SELECT * FROM connpass_feed_item")
Flowable<List<ConnpassFeedItem>> getAll();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(ConnpassFeedItem... items);
サンプル
- Entity/Dao/Databaseという3つのレイヤー構成になっていて、若干DDDぽさがあります
- Daoの部分はアノテーションにクエリを書いて諸々CRUD処理を行えます
- MyBatisっぽさを僕は感じました
- RxJavaと自然に連携させられます
@Query("SELECT * FROM connpass_feed_item")
Flowable<List<ConnpassFeedItem>> getAll();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(ConnpassFeedItem... items);
RxJava/Room両方を組み合わせたサンプルプロジェクトを置いておきますね。Entity/DaoをJavaで書いてますが、一応kotlinでもかけるようです(ただ、AnnotationProcessorを使うので少しはまりやすいという情報が)
感想
RxJavaと組み合わせていい感じに使えるSQLiteラッパーを探していたのですが、Roomがあまりにドンピシャで求めていたもので過ぎて興奮しすぎたので一度記事を書いてクールダウンしようと思い投稿しました。
まだalpha版という立ち位置らしいですが、おそらくRxJavaと組み合わせていく定番ライブラリになるのではないかと思ってます。
Author And Source
この問題について(Room Persistent Library + RxJava), 我々は、より多くの情報をここで見つけました https://qiita.com/_mk2/items/d7c852ca63d312965025著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .