LoginSignup
6
7

More than 5 years have passed since last update.

Room Persistent Library + RxJava

Posted at

Roomとは?

Googleが今年の春頃に発表したAndroid Architecture Componentsに含まれている、ORM(永続化、オブジェクトマッピング)ライブラリです。

desktoproom-2x.jpg

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);

サンプル

RxJava/Room両方を組み合わせたサンプルプロジェクトを置いておきますね。Entity/DaoをJavaで書いてますが、一応kotlinでもかけるようです(ただ、AnnotationProcessorを使うので少しはまりやすいという情報が)

感想

RxJavaと組み合わせていい感じに使えるSQLiteラッパーを探していたのですが、Roomがあまりにドンピシャで求めていたもので過ぎて興奮しすぎたので一度記事を書いてクールダウンしようと思い投稿しました。

まだalpha版という立ち位置らしいですが、おそらくRxJavaと組み合わせていく定番ライブラリになるのではないかと思ってます。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7