さわってみよう Couchbase Lite

2,286 views
2,092 views

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,286
On SlideShare
0
From Embeds
0
Number of Embeds
502
Actions
Shares
0
Downloads
11
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

さわってみよう Couchbase Lite

  1. 1. さわってみよう!Couchbase LiteVineyard Works上津原 一利at Couchbase Meetup #413年5月2日木曜日
  2. 2. 自己紹介★ iPhone App 開発やってます★ どっちかというとCouchbaseファン★ 趣味半分でCouchbase + Node.js★ ブログ:http://ssdkfk.wordpress.com/★ Tw:kazutoshi_u / Fb :kazutoshi.u13年5月2日木曜日
  3. 3. 最近のしごとiOS Mobile BIfor JasperSoft一昨日リリースしました!OSSのBIに興味のある方、お声掛け下さい!13年5月2日木曜日
  4. 4. さて、本題に入って行きましょう13年5月2日木曜日
  5. 5. Couchbase Lite13年5月2日木曜日
  6. 6. Couchbase Liteってなにもん?公式いわく(ざっくり)CouchDBがMySQLCouchbaseがOracleCouchbase LiteはSQLiteみたいな感じ“”Think of it this way: If Apache CouchDB is MySQL, and Couchbase Server is Oracle, thenCouchbase Lite is SQLite.13年5月2日木曜日
  7. 7. 何できるの?★ ドキュメントベースのスマホ組み込みDB★ LiveQueryで状態監視★ CouchDBとのSync★ JavaScriptのViewまで使えちゃう(うまいことやれば)13年5月2日木曜日
  8. 8. なんか良さそう13年5月2日木曜日
  9. 9. あれ?でもTouchDBってあったよね?13年5月2日木曜日
  10. 10. TouchDBはCBLへ★ TouchDBは1.0で一旦リリース完了★ それ以降はCouchbase Liteとして開発中★ 今はTouchDBで言うとVer.1.5★ 今はプレアルファ。夏にはベータに。13年5月2日木曜日
  11. 11. 変わったところ★ CouchCocoaが要らなくなった★ コードがシンプルでわかりやすく★ わかりにくかったクラス名が頭文字統一★ JavaScriptやC#からのアダプタも準備13年5月2日木曜日
  12. 12. つまり高性能で使いやすくなりました13年5月2日木曜日
  13. 13. コード比較CouchDocument* doc = [db untitledDocument];RESTOperation* ope = [doc putProperties: contents];if (![ope wait]){NSLog(@"SAVE error!!");}else{NSLog(@"SAVE success!!");}CBLDocument* doc = [database untitledDocument];NSError* error;if (![doc putProperties: contents error: &error]){NSLog(@"Couldnt save the new item");}ドキュメントを保存する場合TouchDBCouchbaseLite13年5月2日木曜日
  14. 14. コード比較Viewを使ってドキュメントを呼び出す場合TouchDBCouchbaseLiteCouchDesignDocument* design = [db designDocumentWithName: @"Draft"];CouchQuery* query = [design queryViewNamed: @"byDate"];RESTOperation* op = [query start];[op onCompletion: ^{if (op.error) {NSLog(@"erro!");}else{for (CouchQueryRow* row in query.rows) {NSDictionary *dic = row.value;}}}];CBLQuery* query = [[database viewNamed: @"byDate"] query];for (CBLQueryRow* row in query.rows) {NSDictionary* contents = row.value;}13年5月2日木曜日
  15. 15. コード比較Viewを使ってドキュメントを呼び出す場合TouchDBCouchbaseLiteCouchDesignDocument* design = [db designDocumentWithName: @"Draft"];CouchQuery* query = [design queryViewNamed: @"byDate"];RESTOperation* op = [query start];[op onCompletion: ^{if (op.error) {NSLog(@"erro!");}else{for (CouchQueryRow* row in query.rows) {NSDictionary *dic = row.value;}}}];CBLQuery* query = [[database viewNamed: @"byDate"] query];for (CBLQueryRow* row in query.rows) {NSDictionary* contents = row.value;}その差9行!13年5月2日木曜日
  16. 16. LiveQueryLiveQueryは、指定したクエリの結果に変化があった場合、通知をしてくれる機能。ちょっと見てみましょう。13年5月2日木曜日
  17. 17. LiveQuery簡単!self.liveQuery = [[database queryAllDocuments] asLiveQuery];[self.liveQuery addObserver:self forKeyPath:@"rows" options:0 context:NULL];LiveQuery登録- (void) observeValueForKeyPath: (NSString*)keyPath ofObject: (id)objectchange: (NSDictionary*)change context: (void*)context{if (object == self.liveQuery) {for (CBLQueryRow* row in [object rows]) {// update the UI[self allGet];}}}通知受け取り13年5月2日木曜日
  18. 18. CouchDBとSyncNSArray *repls = [database replicateWithURL:[NSURL URLWithString:@"http://127.0.0.1:5984/testdb"] exclusively:YES];13年5月2日木曜日
  19. 19. CouchDBとSyncNSArray *repls = [database replicateWithURL:[NSURL URLWithString:@"http://127.0.0.1:5984/testdb"] exclusively:YES];まさかの1行13年5月2日木曜日
  20. 20. CouchDBとSyncNSArray *repls = [database replicateWithURL:[NSURL URLWithString:@"http://127.0.0.1:5984/testdb"] exclusively:YES];まさかの1行しかもSync後はLiveQueryも動いてくれます13年5月2日木曜日
  21. 21. 13年5月2日木曜日
  22. 22. SQLiteと比べて Good★ 使う手間が少ない★ データをSQL化しなくていい★ 動作が軽快★ DBとのSyncがお手軽★ LiveQueryが使える★ NSDictionaryが返ってくる13年5月2日木曜日
  23. 23. SQLiteと比べて Bad★ コールバック式でちょっと馴染みにくいかも★ Viewの使い方がいまいちわからん★ 設計の仕方もよくわからん13年5月2日木曜日
  24. 24. まとめ★ CouchbaseLiteはスマホDBの新選択肢★ TouchDBはCouchbaseLiteへ★ LiveQuery便利★ Syncも簡単★ 設計、活用法を学べば重宝しそう13年5月2日木曜日
  25. 25. おまけ13年5月2日木曜日
  26. 26. リアルタイムチャートDemo13年5月2日木曜日
  27. 27. Couchbaseの薄い本この薄い本のお陰で、サーバー初心者の僕もリアルタイムチャート作れました!河村さん!どうもありがとうございました!¥50013年5月2日木曜日
  28. 28. 以上ありがとうございました13年5月2日木曜日

×