web-dev-qa-db-ja.com

AndroidのレルムVSルーム

アプリを作成していますが、その中にデータベースを使用する必要があります。 Roomは現在新しくてホットなので、使用することを検討しています。しかし、私はレルムについても多くの素晴らしいことを聞いたことがあります。誰かがそれぞれを使用することの可能な利点を指摘できますか?

調査を行ってドキュメントを読みましたが、自分で理解する経験はありません

会議室ドキュメント

レルムドキュメント

編集

しばらく経ちましたが、Roomを使用するもう1つの理由を指摘できます。 RealmとTransformationsを使用してLiveDataと結び付けることはできますが、Roomを使用するとDBのLiveData(およびプラグインを使用したRXJavaタイプ)を直接返すことができます。

編集2:

最初の編集に加えて、RoomにはKotlinのコルーチンのファーストクラスサポートが追加されているため、コルーチンを使用する場合はNice-have-> https://medium.com/androiddevelopers/room -coroutines-422b786dc4c5

49
Rainmaker

レルム

比較的高速で便利なライブラリであり、すべてのリンクが単純に実装されます。これは、データベースのオブジェクト指向に関連しています。優れたドキュメント。おそらく、現時点でモバイルデバイスにデータを保存するための最良のオプションの1つであり、マイナスはapkファイルのサイズを2.5 MBだけ増やすことができます。

ルーム

Android OSでデータベースを操作するのに最適なものとして、Google I/O 2017で提示された興味深いソリューション。明示的なsql-requestsを使用する必要があるという事実にもかかわらず、ライブラリは非常に便利であることが判明し、個人的に気に入っています。パフォーマンスについてはリードしているので、この特定のライブラリを選択することをお勧めします。これの大きな利点は、ビルトインSQLiteデータベースに基づいています。 Googleから提出されたこのソリューションは、すぐに普及するため、それに伴って発生する問題の解決策を見つけるのに問題はありません。

レルムはより多くのRAMを使用し、apkサイズ、ビルド時間を増やします。だから私は部屋が好きです。

比較があります: https://github.com/AlexeyZatsepin/Android-ORM-benchmark

64
Alexey Zatsepin

データベース用のライブラリを使用するようにプッシュした主な理由は、オブジェクトをモデリングし、CRUDを簡単にしたという事実です。 Realm で良い経験ができました。セットアップと作業が本当に簡単です、高速かつ柔軟ですが、ライブラリのサイズが問題でした。ビルドターゲットABIでAPKを分割することでAPKサイズを縮小することは可能ですが、SQLiteに基づいているため、 GreenDao 他のライブラリと同様にいくつかの欠点がありますが、私にとっては最良の選択肢でした。

正直なところ、私はまだRoomを試しませんでしたが、ドキュメントを簡単に見ると、より柔軟で開発者にとって使いやすいことがわかります。Googleファンとして、Googleのライブラリを使用することを好みます!前に言ったように、ネイティブSQLite上のレイヤーよりも新しいデータベースライブラリ全体の方が好きです。

私は次のプロジェクトでRoomを試し、後でアップデートで私の経験を共有します。

7