I have no experience with android apps and just started working on one that needs to work with relational data. The relational data has multiple many-to-many relationships and the inbuilt ORM (Room) is leads to class explosion.
While looking at ORM libraries for android, there seem to be many that are out of date:
From 5 of the Best Android ORMs (2014) and AlexeyZatsepin/Android-ORM-benchmark (2017)
- ORMLite: 3 years old and the M2M example makes me feel quite queasy
- SugarORM: description explicitly only mentions 1:1, 1:n
- GreenDAO is unmaintained but replaced by ObjectBox which I haven’t yet looked at
- Active Android: abandoned
- Realm redirects to MongoDB 💀
- Freezer: abandoned
- DBFlow: no documentation and 3 seemingly abandoned
- Requery: 4 years old (abandoned?). Actually my favorite in terms of API
- Sprinkles: 10 years old, dead
I’m leaning towards Requery because I like its API the most (hides SQL the most), but haven’t looked at ObjectBox yet.
I have used ObjectBox in dart and it does support mtm relationships (you may need to define an intermediate model for the relationship. I can’t remember off the top of my head). It worked great for me with only 1 or 2 gotchas that weren’t well documented.
Thanks. It does look like the right library to use. A little surprising that it seems to be the only one that’s up to date, but at least it exists!