Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Gain an intelligent edge in Enterprise IT and software development
SAVE THE DATES
AUGUST 13-14, 2019 | SYDNEY
AUGUST 20-21, 2019 | SINGAPORE
OCTOBER 1-2, 2019 | LAS VEGAS
4-6 JUNE, 2019 | WARSAW
DEVTALK:
Securely Synchronize Locally Stored Data
with Zebra and Couchbase
Darryn CampbellSW Architect, Zebra
ZEBRA TECHNOLOGIES
Hod GreeleyDeveloper Advocate, Couchbase
Agenda
3
• Introduction: Zebra Technologies & Couchbase
• Zebra DataWedge Overview
• Couchbase Lite Overview
• Demo: Sample app
• Wrap-up
Zebra Technologies
Zebra gives 95% of Fortune 500 companies real-time visibility into their operations through
rugged enterprise devices, printers & scanners as well as provide cloud services &
connected solutions
Zebra Technologies
Zebra Developer Tools for Mobile Devices
EMDK
Android or Xamarin
variants
Native SDK
Native development
only
Enterprise Browser
Wraps system webview
component for lockdown
and config.
Exposes JS API
Hybrid development
only
DataWedge
System service to
capture data for app
consumption
Exposes Intent API
Very flexible approach
Zebra DataWedge
Adding scanning to your app
DataWedge● Profile based configuration of data capture
○ Define input: e.g. Scanner
○ Configure input: e.g. Symbologies, scanner sounds, code lengths etc.
○ Define output: e.g. Intents, Keystroke
○ Configure output: e.g. Intent action
○ Associate the profile with an application or activit(y/ies)
● Control / configure DataWedge via Intent API
○ Feature rich API
○ Capabilities on par with native SDK
● Import / export profiles for mass deployment
• “If you haven’t taken a look at DataWedge since
2016, please take another look”
Adding scanning to your app
DataWedge – How it works
DataWedge API
Application
Intent Plugin
• StartActivity,
SendBroadcast
or StartService
• Sent if enabled
in output plugin
when data is
captured
API (Commands)
• SendBroadcast
only
• Sent to perform
configuration or
query a setting
API (Responses)
• Implicit
Broadcast only
• Sent in response
to API
commands
DataWedge Service
Start ScanEnumerate Array of Scanners
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
500+ Digital Businesses Run on Couchbase
6 of the Top 10E-Commerce Companies
in the US
6 of the Top 10US & European
Broadcast Companies
6 of the Top 10Online Casino Gaming
Companies
The Top 3Credit Reporting Companies
The top 3GDS Companies
3 of the Top 10Airlines
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
E-Commerce Travel GamingFinancial
Svcs.Digital MediaCommunicationsIndustrial IoT Digital Health
Customers Across Every Industry Embracing Couchbase
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
Couchbase Mobile
Security
COUCHBASE LITE SYNC GATEWAY COUCHBASE SERVER
Lightweight embedded NoSQL database
with full CRUD and
query functionality.
Secure web gateway with
synchronization, data access, and
data integration APIs for accessing,
integrating, and synchronizing data
over the web.
Highly scalable, highly available,
high performance NoSQL
database server.
Client Middle Tier StorageWAN LAN
Built-in enterprise level security throughout the entire stack includes user authentication, data access control, secure transport, and full database
encryption.
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
• CRUD
• Query
• Search
• Indexing
• Eventing
• Replicas
• Sync
• Security
Couchbase Lite 2.1 Features
Couchbase LiteEmbedded Database
• Peer-to-Peer
Query & Full
Text Search
• Development experience like
general queries
• Smarter mobile apps using
search queries
• Optimized search with improved
performance & latency
SELECT *
FROM catalog
WHERE description MATCH 'springtime'
AND size = 7
AND color = 'orange'
ORDER BY name
Java
SQ
L
Query query = QueryBuilder
.select()
.from(DataSource.database(db))
.where(Expression.property("type").equalTo(Expression.string("catalog"))
.and(FullTextExpression.index("description").match("springtime"))
.and(Expression.property("size").equalTo(Expression.intValue(7))
.and(Expression.property("color")).equalTo(Expression.string("orange")))
.orderBy(Ordering.expression(Expression.property("name")));
CBLQuery* query = [CBLQueryBuilder
select:@[[CBLQuerySelectResult all]]
from:[CBLQueryDataSource database: self.db]
where:[[[[[CBLQueryExpression property:@"type"]
equalTo:[CBLQueryExpression string:@"catalog"]]
andExpression: [[CBLQueryFullTextExpression indexWithName:@"name"]
match:@"springtime"]]
andExpression: [[CBLQueryExpression property:@"size"]
equalTo:[CBLQueryExpression integer:7]]]
andExpression: [[CBLQueryExpression property:@"color"]
equalTo:[CBLQueryExpression string:@"orange"]]]
orderBy:@[[CBLQueryOrdering expression:[CBLQueryExpression property:@"name"]]]];
Ob
jec
tive
-C
ZEBRA TECHNOLOGIES
Sample Application
DataWedge
Resources
• Sample apps on techdocs:
– API Sample
– Demo App (Pre-installed)
– More coming soon…
• Tutorials:
– DataWedge Intent Example (Android)
– DataWedge Intent Example (Xamarin)
• API
– Full listing
– Overview article
• Needs updating - the challenges highlighted in that article have been now been addressed
• Other articles:
– DataWedge Mass deployment
– Using DataWedge with Cordova or Cordova-based frameworks
– Moving from EMDK Data Capture profiles to DataWedge
Confidential and Proprietary. Do not distribute without Couchbase consent. © Couchbase 2017. All rights reserved.
Couchbase
16
▪ General Docs: http://docs.couchbase.com
▪ Developer Portal: http://developer.couchbase.com
▪ Query Portal: http://query.couchbase.com
▪ Sample Applications and Community Projects
▪ https://github.com/couchbaselabs
▪ Demonstration project: https://github.com/HodGreeley/Zebra-Inventory
▪ Blog: http://blog.couchbase.com
▪ Forum: http://forums.couchbase.com
Resources
Questions?
ZEBRA DEVELOPER PORTAL
http://developer.zebra.com
Sign up for news
Join the ISV program
COUCHBASE
https://developer.couchbase.comhttps://info.couchbase.com/Community-Newsletter-Signup.html