how-to couchbase mobile series: creating apps for the travel industry
TRANSCRIPT
Couchbase Mobile in TravelZack Gramana
About Me
Zack Gramana
Senior Mobile Software
Engineer
@zgramana
Who is Couchbase?
Couchbase at a Glance
Fastest growing NoSQL
database company
4x growth in 2013
Mission critical use at
Internet scale
400+ customers; 10,000+ paid
production nodes deployed;
worldwide customer base
Leader in scalability &
performance
Easily & reliable scale your app;
Get consistent low latency &
high throughput
Worldwide operations
with 250+ employees
100+ in engineering; Offices in US,
UK, India, Japan, China (soon)
Enterprise Customers
> 400 customers; > 10,000 production nodes deployed
Services and Consumer Enterprises
What is the business problem?
Today’s Mobile Apps
7
Try again later.
No Internet
please wait…
How does this affect what people think about your app?
8
Doesn’t work a lot of the time and when
it does it’s slow.
How does this affect application uninstall rates?
9
0%
20%
40%
60%
80%
100%
Un
insta
ll R
ate
Freezing
Crashing
Slow Responsiveness
Source: uSamp
Data Location is the Problem
10
Local Data + Sync is the Solution
11
What does this mean for your apps?
12
Always work both online & offline
Always be blazing fast
Built with orders of magnitude less code
Users will absolutely love your apps
What is Couchbase Mobile?
Couchbase Lite Sync Gateway
Couchbase Lite
NoSQL mobile database.
Runs in-process.
Small footprint.
Document-Oriented Database
o Key-value collections, with versioning
o Schemaless
o Code fast. Run fast
{"session": {
"Id": "session-1011","Location": "TBA","SpeakerIds": [
"speaker-zack-gramana"],"Time": "2014-10-06T15:20:00","Title": "Building the Mobile Apps with Couchbase Mobile","Track": "Mobile"
},"type": "session"
}
o Build indexes in your native language
o Results are persisted for fast querying
o Just set breakpoints to debug!
MapReduce Indexes
o Listen/Observe for changes.
o Databases, queries, replications—even documents.
o Cuts down done on a ton of cruft code.
Change Notifications
doc.Change += (sender, e) => {
if (e.Change.IsConflict){
// well then resolve it!}
};
Sync
o Full multi-master replication.
o Continuous or ad-hoc in either direction.
o Change notifications & conflict detection.
Cocoapods
Maven Central
Nuget
Github
o Authentication
o Authorization
o Data orchestration
Sync Gateway
27
o requireUser (username)
o requireRole (rolename)
o requireAccess (channels)
Sync Function
o channel (name)
o access (username, channelname)
o role (username, rolename)
Sync Function
Travel Industry Mobile Challenges
Travel Industry Mobile Challenges
“Orbitz noted that
‘over 70% of reservations
coming through
smartphones are being
done within a day of check-
in’”
Changing Market
Behavior
Travel Industry Mobile Challenges
“Expedia reported that
68% of its mobile hotel
reservations are done
within 24 hours of the
planned stay”
Changing Market
Behavior
Travel Industry Mobile Challenges
“business travelers are
more likely to actually book
their travel on mobile”
Changing Market
Behavior
Travel Industry Mobile Challenges
“The challenge for hotels
[is taking] a wide variety of
different options and
whittling them
down…quickly”
Customer Retention
Travel Industry Mobile Challenges
“the mobile user appears
to view travel sites as
companion channels and
not a single or sole
channel”
Brand Awareness
Travel Industry Mobile Challenges
How well do users rate
your presence in the
mobile app stores?
Brand Awareness
Travel Industry Mobile Challenges
Targeting multiple
platforms
Efficient bandwidth
usage
Mobile data security
Reduce Costs
Solutions
Store availability data locally
Solutions
Push changes to data immediately
Solutions
Content delivery
Solutions
Secure financial transactions
Solutions
GeoJson-aware queries
Next Steps
Couchbase Developer Portal
developer.couchbase.com/mobile
Forums
forums.couchbase.com
Mailing List
groups.google.com/d/forum/mobile-
couchbase
Questions and Answers