ActiveAndroidからOrmaに移行した

ActiveAndroidというActive Record形式のORMがAndroidにあるのですが、2014/8/7で開発が停止しています。

確かTwiEgoにActiveAndroidを導入したのは2015年で、その頃はそんなことも知らなかったわけです。

 

そんなにDBにアクセスしないアプリとは言え、開発が滞ってるライブラリを使うのも良くないし、ActiveAndroidの速度も遅いなと思っていました。

と、思いながらORMを探していた所、Android OrmaというORMを見つけました。

ORMA(ndroid)?

 

Realmも考えましたが、既存の環境からNoSQLに移行するのは割りと面倒なのでパス。

とりあえず、Github上のREADME.mdと、ここらへんを読んでおけば移行できます。

gfx.hatenablog.com

gfx.hatenablog.com

 

一つハマったことが。

ActiveAndroidではTypeSerializerを作って、List<String>をカンマで区切ってデータベースに保存してました。

OrmaではList<String>のシリアライズにはデフォルトで対応しているのですが、既存のデータがあるので、その辺どうするか考えました。

結局、Modelクラスにて、List<String>をStringにし(SQLではTEXTで保存されてるはず)、専用のgettter/setterを作って、そこでシリアライズ/デシリアライズさせました。プチ魔改造だが仕方ない…。

 

でもそこまで苦労せず移行できたので良かった!

しかも、速度は速いし、SQLの操作が圧倒的にActiveAndroidよりしやすいので良いですね!