現役プログラマのプログラミング教室@岡崎市康生, Android/iOS(Swift/Kotlin)のアプリ開発、デジタル漫画制作を主軸事業としています。

kotlin Realmを使ってみてDateが使えないことがわかったので対策してみました

かねてより気になっていたのでネット検索したところ、そろそろJava Realmからkotlin Realmにしてもよいんじゃないかと思い、現行プロジェクトに採用してみました。

大きくは変わってはいませんが、まだ8,9割かなと思う感覚もありつつ、マイグレーションのオートなど気になる機能もあり。なかなか良さそうな感じです。

今の所致命的な問題はでておりませんが、ここだけハマったのでご報告です。

Date使えないってよ?

JavaRealmと同じく賞味期限としてDate型を入れて構築していたのですが

デバッグすると何もしていないのに日付が更新されるのです。オプショナルでnullいれるとずっとnullのまま。直前に更新してもnullのまま。でもエラーはでないのです。

try-catchも試しましたがエラーはでない。何食わぬ顔で更新されるのです。

Date使えないと判断し対策

誰もが思いつくとは思いますが、とりあえずgetterとsetterを設置して対応することにしました。

検索を考えるとintegerで保持がいいと思いますが、LocalDateTimeの使いやすいStringで保持のパターンを記載してみました。

問題なく動作しておりますが、検索するのであればintegerで持つほうが使いやすいかなと思いますので、また書き換えてみようと思います。

でもエラーが出ないってのは不具合なのでしょうか?

もしかしたら、しれっとバージョンあがると直ってるかもしれません。

またkotlin realm同志の方でもっとよい方法ご存知であればお教えいただけますと幸いです!