- A Couch to Goconf.couchdb.org/couchdb-conf-berlin-january-2013/...Katrin Apel (@kaalita) product...

Preview:

Citation preview

- A Couch to Go

Image source: http://hiconsumption.com/tag/driving-experience/

Friday, January 25, 13

Katrin Apel (@kaalita)

product manager -> iOS developer

I <3 CouchDB

Friday, January 25, 13

Nooo, I have to write a backend for my app!

Image source: http://hiconsumption.com/tag/driving-experience/

Friday, January 25, 13

Image source: http://www.funnycutepics.com/funny/chill/

Friday, January 25, 13

Friday, January 25, 13

NO INTERNET

Friday, January 25, 13

SLOW & LOSSY INTERNET

Friday, January 25, 13

EXPENSIVE

Friday, January 25, 13

WHAT DID I WANT?

* Same API for Online and Offline access

* Readymade syncing solution

Friday, January 25, 13

TouchDB is a lightweight Apache CouchDB-compatible database engine suitable for embedding into mobile or desktop apps.

Friday, January 25, 13

CouchDB API

SQL Lite

Objective C

Friday, January 25, 13

CouchDB API

SQL Lite

Objective C

CouchDB HTTP Protocol

CouchDB API

Friday, January 25, 13

CouchDB API

SQL Lite

Objective C

CouchDB HTTP Protocol

CouchDB API CouchDB API

Friday, January 25, 13

CouchDB API

SQL Lite

Objective C

CouchDB HTTP Protocol

CouchDB API CouchDB API CouchDB API

PouchDB ?

Friday, January 25, 13

I will synch data with everything that speaks CouchDB!

Friday, January 25, 13

PERFECT FOR EMBEDDING

Small: ~350 kbytesQuick startup time: < 100ms

Supported systems:* iOS >= 5.0* Mac OS X* Android 2.2

Friday, January 25, 13

EASY SETUP#import <CouchCocoa/CouchCocoa.h>

// Creating TouchDB serverCouchTouchDBServer* server = [CouchTouchDBServer sharedInstance]; // Creating a local databaseself.database = [server databaseNamed: @"memories"];

// Creating the replicationsNSArray* repls =

[self.database replicateWithURL: _couchSyncURL exclusively: YES];

_pull = [repls objectAtIndex: 0];_pull.continuous = YES;_push = [repls objectAtIndex: 1];_push.continuous = YES;

Friday, January 25, 13

FEATURING:

Friday, January 25, 13

Views

Friday, January 25, 13

Attachments

Friday, January 25, 13

Replication

Friday, January 25, 13

IMAGINEThere’s no server

Image source: http://hiconsumption.com/tag/driving-experience/

Peer to peer sync

Friday, January 25, 13

DEMO TIME

Friday, January 25, 13

• Current version: 1.0.1.• Developed by Jens Alfke from CouchBase• Source Code on Github:

https://github.com/couchbaselabs/TouchDB-iOS• Getting help:

https://groups.google.com/forum/#!forum/mobile-couchbase

Friday, January 25, 13

I <3 CouchDB

Every platform should have an embedded Couch!

Friday, January 25, 13

Friday, January 25, 13

Recommended