SlideShare a Scribd company logo
1 of 32
Download to read offline
CouchbaseLiteが
さらに使いやすくなってた
上津原 一利
!

at Couchbase Meet Up
2013/12/12
自己紹介
• 転職しました
• Couchbase Liteネタ担当
• iOSアプリ開発
• でも何故か今はOculus Riftやってます
• http://ssdkfk.wordpress.com/
• 前回のスライドは1023PV(9ヶ月で)
本題
Couchbase Lite Beta 1.0
いつの間にか出てました ※2013/9/13
便利になってる!
やったね!

CouchbaseとのSyncもできるようになってた!
!

UITableView用のデータソースの提供が!
便利!
具体的には
(※目に見えて明らかに追加されたもの)

• CBLUITableSourceが追加
• Couchbase Sync Gatewayを利用して

Couchbaseと同期。Facebook認証なども

• etc…
ただ、ちょっとその前に…

CBLModel
前回の発表では
ドキュメントの作成は…
DocumentはNSDictionary(連想配列)で作り
Databaseにputする
と言いましたが…
今回
CBLModelを作成しプロパティを設定
モデルをインスタンス化し、値を入れてSave
が、スマート
AppDelegate *ap = (AppDelegate *)[[UIApplication sharedApplication] delegate];
// ドキュメントを追加
NSDictionary *contents =
@{@"text"
: @"Hello couchbase Lite",
@"check"
: [NSNumber numberWithBool:NO],
@"created_at" : [CBLJSON JSONObjectWithDate: [NSDate date]]};
// 無記名ドキュメントの取得
CBLDocument* doc = [ap.database untitledDocument];
// ドキュメントの追加
NSError* error;
if (![doc putProperties: contents error: &error]){
// 失敗
}

前回

AppDelegate *ap = ApplicationDelegate;
ExampleModel *model = [[ExampleModel alloc] initWithNewDocumentInDatabase:ap.database];
model.text = @"Hello CouchbaseLite!";
model.created_at = [NSDate new];
model.check = NO;
NSError *err;
if (![model save:&err]) {
NSLog(@"Save Error!");
}

今回
モデルクラス
ExampleModel.h
@interface ExampleModel : CBLModel

!

@property (nonatomic, copy) NSString *text;
@property (nonatomic, strong) NSDate *created_at;
@property (assign) BOOL check;

!

@end

ExampleModel.m
@implementation ExampleModel

!

@dynamic text,created_at,check;

!

@end
CBLModelで使えるクラス
・NSNumber

・int

・NSNull

・double

・NSString

・BOOL

・NSArray

・NSData

・NSDictionary.

・NSDate
・NSDecimalNumber
・CBLModel

CBLModel
が入る!
CBLModelにCBLModelが入れられる
!

つまり
!

リレーションを組むことが可能!
具体的には
@class ExampleModel;

!

@interface SecondModel : CBLModel

!

@property (assign) ExampleModel *model1;
@property (nonatomic, copy) NSString *comment;

!

@end

{
text : "Hello CouchbaseLite!",
created_at : "2013-12-12",
check : false,
comment : "Wonderful!",
}

もちろん、コード内ではプロパティ通りに
クラスに格納されて返ってきます

使いやすい!
こっちのが断然便利なので
CBLModelをがんがん
使ったほうがいいと思います
CBLUITableSource
CBLTableViewSourceって

• UITableView
• UITableDataSource
• LiveQuery

こいつらが全部
まとまったやつ
つまり何が便利?
使わなかったら

使ったら

• UITableView実装

• CBLTableView実装

• LiveQuery実装
• 再描画実装
カスタム性
CBLTableDelegateで
- (UITableViewCell *)couchTableSource:(CBLUITableSource*)source
cellForRowAtIndexPath:(NSIndexPath *)indexPath;

!

- (void)couchTableSource:(CBLUITableSource*)source
willUpdateFromQuery:(CBLLiveQuery*)query;

!

- (void)couchTableSource:(CBLUITableSource*)source
updateFromQuery:(CBLLiveQuery*)query
previousRows:(NSArray *)previousRows;

!

- (void)couchTableSource:(CBLUITableSource*)source
willUseCell:(UITableViewCell*)cell
forRow:(CBLQueryRow*)row;

!

- (bool)couchTableSource:(CBLUITableSource*)source
deleteRow:(CBLQueryRow*)row;

!

- (void)couchTableSource:(CBLUITableSource*)source
deleteFailed:(NSError*)error;
使うには?
ブログにまとめました

Couchbase LiteのCBLUITableSourceを
動かしてみた
※カスタムはまだです
CouchbaseとSync
やっときた
今までCouchDBのみとSyncだったけど
!

ついにCouchbaseとSync出来るように!
Couchbase sync gateway

ゲートウェイが必要
http://www.couchbase.com/communities/
couchbase-sync-gateway
でもCouchDBと同じように実装すると
PushはできてもPullができない…
NSArray *repls = [ap.database replicateWithURL:[NSURL URLWithString:@"http://127.0.0.1:4984/sync_gateway"]
exclusively:YES];

!

self.pull = [repls objectAtIndex: 0];
self.push = [repls objectAtIndex: 1];
// completeではなく、modeを取得する
// completeの場合、completeしない場合があるため。
[_pull addObserver:self
forKeyPath:@"mode"
options:0
context:NULL];
[_push addObserver:self
forKeyPath:@"mode"
options:0
context:NULL];
できたそうです。
config.json

子、曰く

{
"interface":":4984",
"adminInterface":":4985",
"log":["REST"],
"databases":{
"sync_gateway":{
"server":"http://couchbase-jp:8091",
"bucket":"sync_gateway",
"sync":`function(doc) {channel(doc.channels);}`
},
"todo":{
"server":"http://couchbase-jp:8091",
"bucket":"todo",
"sync":`function(doc) {channel("public");}`,
"users": {
"GUEST": {
"disabled": false,
"admin_channels":["public"]
}
}
}
}
}
だそうです
(まだ僕は動かせてません)
まとめ
• 結構使いやすいものになってきた
• 問題は、SQLiteとの使い分け
• メリットはAPIなしでのSyncが可能な点
• クエリだけでなくCouchbaseの知識は必要
• でもサーバーサイド覚えるよりは楽だよね?
まずは事例を
企業レベルではちょっとハードルが高いから
個人デベロッパーから使っていって
実績を作っていきましょう。
年末になにか作って
また何か報告します。
おしまい

More Related Content

What's hot

AWS で concrete5 を 簡単起動!
AWS で concrete5 を 簡単起動!AWS で concrete5 を 簡単起動!
AWS で concrete5 を 簡単起動!Kazue Igarashi
 
Introduction to DocumentDB
Introduction to DocumentDBIntroduction to DocumentDB
Introduction to DocumentDBTakekazu Omi
 
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみたReactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみたTsuyoshi Maeda
 
VYATTA USERS MEETING Spring 2014
VYATTA USERS MEETING Spring 2014VYATTA USERS MEETING Spring 2014
VYATTA USERS MEETING Spring 2014Hiroyasu Suzuki
 
Microsoft Azure で "無料で" 運営する勉強会申し込みサイト
Microsoft Azure で "無料で" 運営する勉強会申し込みサイトMicrosoft Azure で "無料で" 運営する勉強会申し込みサイト
Microsoft Azure で "無料で" 運営する勉強会申し込みサイトJun-ichi Sakamoto
 
AWS CLIでEC2の利用料金を節約する
AWS CLIでEC2の利用料金を節約するAWS CLIでEC2の利用料金を節約する
AWS CLIでEC2の利用料金を節約するYasuyuki Sato
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Yu Komiya
 
世界ファイルサーバのご提案
世界ファイルサーバのご提案世界ファイルサーバのご提案
世界ファイルサーバのご提案Serverworks Co.,Ltd.
 
Amazon WorkSpacesをつかってみた
Amazon WorkSpacesをつかってみたAmazon WorkSpacesをつかってみた
Amazon WorkSpacesをつかってみたGenta Watanabe
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadogNaoya Nakazawa
 
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングAWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングTakuro Sasaki
 

What's hot (20)

Vyatta AWS
Vyatta AWSVyatta AWS
Vyatta AWS
 
AWS で concrete5 を 簡単起動!
AWS で concrete5 を 簡単起動!AWS で concrete5 を 簡単起動!
AWS で concrete5 を 簡単起動!
 
Introduction to DocumentDB
Introduction to DocumentDBIntroduction to DocumentDB
Introduction to DocumentDB
 
Reactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみたReactとbabelで簡易タスク管理ツール作ってみた
Reactとbabelで簡易タスク管理ツール作ってみた
 
VYATTA USERS MEETING Spring 2014
VYATTA USERS MEETING Spring 2014VYATTA USERS MEETING Spring 2014
VYATTA USERS MEETING Spring 2014
 
Enterprize aws
Enterprize awsEnterprize aws
Enterprize aws
 
Microsoft Azure で "無料で" 運営する勉強会申し込みサイト
Microsoft Azure で "無料で" 運営する勉強会申し込みサイトMicrosoft Azure で "無料で" 運営する勉強会申し込みサイト
Microsoft Azure で "無料で" 運営する勉強会申し込みサイト
 
200k/sec
200k/sec200k/sec
200k/sec
 
Jekyll de blog
Jekyll de blogJekyll de blog
Jekyll de blog
 
2015 cas ub
2015 cas ub2015 cas ub
2015 cas ub
 
AWS CLIでEC2の利用料金を節約する
AWS CLIでEC2の利用料金を節約するAWS CLIでEC2の利用料金を節約する
AWS CLIでEC2の利用料金を節約する
 
AWS 2014
AWS 2014AWS 2014
AWS 2014
 
Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話Lvsをvpc上に構築してみた話
Lvsをvpc上に構築してみた話
 
世界ファイルサーバのご提案
世界ファイルサーバのご提案世界ファイルサーバのご提案
世界ファイルサーバのご提案
 
Amazon WorkSpacesをつかってみた
Amazon WorkSpacesをつかってみたAmazon WorkSpacesをつかってみた
Amazon WorkSpacesをつかってみた
 
はじめての datadog
はじめての datadogはじめての datadog
はじめての datadog
 
OSC 2012.Cloud
OSC 2012.CloudOSC 2012.Cloud
OSC 2012.Cloud
 
Awsをつかってみた
AwsをつかってみたAwsをつかってみた
Awsをつかってみた
 
serverless
serverlessserverless
serverless
 
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングAWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
 

Similar to Couchbase liteが更に使いやすくなってた

Couchbase liteハンズオン
Couchbase liteハンズオンCouchbase liteハンズオン
Couchbase liteハンズオンssd kfk
 
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"t8kobayashi
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutesYohei Sasaki
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
Introduce couchbase server
Introduce couchbase serverIntroduce couchbase server
Introduce couchbase serverKoji Kawamura
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみようKazuto Kusama
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみたKazuto Kusama
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoYohei Sasaki
 

Similar to Couchbase liteが更に使いやすくなってた (8)

Couchbase liteハンズオン
Couchbase liteハンズオンCouchbase liteハンズオン
Couchbase liteハンズオン
 
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutes
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
Introduce couchbase server
Introduce couchbase serverIntroduce couchbase server
Introduce couchbase server
 
CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみよう
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
 
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall TokyoCouchDB+OpenSocial - OSC 2009/Fall Tokyo
CouchDB+OpenSocial - OSC 2009/Fall Tokyo
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

Couchbase liteが更に使いやすくなってた