Android 2.3 Canary 2 で試す realm-android
はじめに
今日から Advent Carender な時期ですよね〜
それはさておき、下記の情報を参考にしながら導入しようとして見たメモ
試した環境は
- Android Studio 2.3 Canary 2
- android gradle plugin 2.3.+
- data-binding も併用
ところが android gradle plugin 2.3.+ では・・
- aptプラグイン 1.8 指定が息をしていません
- gradle plugin 2.2.+ では併用記述が可能だったのですが・・・
- annotationProcessor のみが有効になっているようです
をみると近いうちに正式サポートされそうですが
最新版の
- root/build.gradle
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.+' classpath 'io.realm:realm-gradle-plugin:2.2.0' } }
- app/build.gradle
apply plugin: 'com.android.application' // androidの後である必要がある apply plugin: 'realm-android'
な記述では駄目なようでした・・
で現時点ではどうすればいいか
plugin指定方式から classpath指定にして暫定的に凌ぐ
app/build.gradle
apply plugin: 'com.android.application' // androidの後である必要がある //apply plugin: 'realm-android' //残念ながらコメント・・・ dependencies { compile 'io.realm:realm-android:0.87.5' }
なんか痛し痒しですね・・
最新版とか使うと、やはり大きく挙動が違うのかなー
使ってみた所感
RealmObject を extendsしたクラスに制限ありすぎ。。
- _XXX フィールドは駄目
- 全メンバーはprivate only
- Getter/Setterを延々と書かないと駄目。。
- RealmObjectを継承したクラスを更に継承しては駄目
Realmを利用しただけでアプリの使用メモリが増えて挙動が重くなった気がする・・*1
端末のDBの中身はやはり見づらい・・
の記事見て、android realm browser を組み込みました。*2
理想はdebugビルドのときのみの方がいいんですが、、、
結局使い勝手的に
- 通常操作用DTO <=>RealmObject継承互換DTO な変換関数を作って利用する感じかな。。
- autoincrement がたしかに無いので,下記のページの情報は助かりました。。
- 簡単にできましたblogが多すぎて、草が生えそうな感じなんですよね。。(苦笑
最新版へのマイグレーション情報は?
realmの公式サイト見てもいまいちコードのマイグレーション情報みたいなのでてこないので
厳し目な気もしないでもない。下記あたりの情報参考にすればいい認識なんでしょうかね?
ここらへんは Realmに知見がある sakura_bird1 さん辺りにお話を聞いてみたいかもです。