Upgrade to Pro — share decks privately, control downloads, hide ads and more …

greenDAO2ObjectBox

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 greenDAO2ObjectBox

Avatar for Yuichi Maekawa

Yuichi Maekawa

February 15, 2017
Tweet

More Decks by Yuichi Maekawa

Other Decks in Programming

Transcript

  1. What is greenDAO and ObjectBox • Made by greenrobot •

    SQLite database • ORM • Based on code generation
  2. • Since 2011 • ~ v2 :Need to make yourself

    DAOgenerator • v3 ~ : Enable annotation • Latest version is v3.2.1
  3. • Two Important concept ◦ Schema: create db and make

    all tables and entities ◦ Entity: add properties and relations to POJO • Daos and entiries are generated by DaoGenerator
  4. v2 architecture DaoGenerator: generated class. Do not white code. DaoMaster:

    generated class. Use to get settion. DaoSession: generated class. Use to get dao. EntityDao: generated class. CRUD from database. Entity: generated entity(It has getter/setter. Editable)
  5. v3 architecture DaoGenerator: generated class. Do not white code. DaoMaster:

    generated class. Use to get settion. DaoSession: generated class. Use to get dao. EntityDao: generated class. CRUD from database. Entity: your entity. Annotate this. And generate code into this.
  6. • A new database based on greenDAO • Do not

    use SQLite • Pretty fast • Latest version is v0.9.7(beta)
  7. ObjectBox • Important concept ◦ Object(POJO) ◦ Box ◦ BoxStore(like

    db) Memo Box some Box some Box some Box BoxStore
  8. v0.9.7(beta) architecture • MyObjectBox: build BoxStore • BoxStore: provide box

    for your object. Likes database. • default.json: crucial ids here. Do not touch. • Memo: your entity. Generated CRUD methods into this. • Memo_: Property class. It is used to access member (ex. Memo_.id)
  9. Convert to ObjectBox(from v3) http://greenrobot.org/objectbox/documentation/introduction/ > Have an app with

    greenDAO? DaoCompat is for you! DaoCompat is an compatibility layer that gives you an greenDAO like API for ObjectBox. http://greenrobot.org/news/objectbox-presentation-thank-you/ > For existing apps using greenDAO Easy switch to ObjectBox
  10. Convert to ObjectBox(from v3) http://greenrobot.org/objectbox/documentation/introduction/ > Have an app with

    greenDAO? DaoCompat is for you! DaoCompat is an compatibility layer that gives you an greenDAO like API for ObjectBox. http://greenrobot.org/news/objectbox-presentation-thank-you/ > For existing apps using greenDAO Easy switch to ObjectBox
  11. Build setting buildscript { repositories { maven { url "http://objectbox.net/beta-repo/"

    } } } dependencies { classpath 'io.objectbox:objectbox-gradle-plugin:0.9.7' } allprojects { repositories { maven { url "http://objectbox.net/beta-repo/" } } }
  12. Build setting apply plugin: 'io.objectbox' dependencies { compile 'org.greenrobot:greendao:3.2.0' compile

    'io.objectbox:objectbox-android:0.9.7' compile 'io.objectbox:objectbox-daocompat:0.9.7' } objectbox { daoCompat true }
  13. Initialize MyObjectBox in Application @Override public void onCreate() { super.onCreate();

    boxStore = MyObjectBox.builder().androidContext(this).build(); //use to old interface daoSession = new DaoSession(boxStore); } public BoxStore getBoxStore() { return boxStore; } public BoxStore getDaoSession() { return daoSession; }