Choosing a backend for your mobile app? Don’t roll the dice!

Post on 20-Aug-2015

4.095 views 0 download

Tags:

Transcript of Choosing a backend for your mobile app? Don’t roll the dice!

studiomagnolia.comCesare Rocchi

Choosing a back end for your mobile app:don’t roll the dice!

_funkyboy

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Needs when choosing a backend

• Features

• Overview of different approaches

Outline

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Who am I?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

UX designer and developer

Saturday, November 30, 13

SWIPE CONFERENCE 2012

upbeat.it

Saturday, November 30, 13

SWIPE CONFERENCE 2012

@_funkyboy

Saturday, November 30, 13

SWIPE CONFERENCE 2012

@funkyboy

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Who are you?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Not apps where mobile is “just a view”

• Apps which are inherently mobile

• From web to app

• App needs a back-end

App Target

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Questions

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Have I to manage it?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• At which level?

• Am I able to do it?

• Have I time to learn?

• Is it worth it?

Have I to manage it?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

What’s the synch model?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Does it match my goals?

• Can I change it if needed?

•What about protocols?

What’s the synch model?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Have I to pay?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Have I to pay?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Who is to pay?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Impact on UX?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Does it break any flow?

• How frequently?

• is it “ok” with that?

Impact on UX?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Lock-in?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• How to migrate data?

• Switching cost?

• Code front-end

• Data compatibility

Lock-in?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• iCloud

• Dropbox

• Custom

• Back-end as a Service (BaaS)

Options

Saturday, November 30, 13

SWIPE CONFERENCE 2012

What is iCloud?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Synchs stuff

Saturday, November 30, 13

SWIPE CONFERENCE 2012

It just works ...

Saturday, November 30, 13

SWIPE CONFERENCE 2012

... when it works.

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Have I to manage it?

•What’s the synch model?

•Who’s to pay?

• Impact on UX?

• Lock-in?

Questions

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Learn the API

• Apple takes care of

• installation

• scalability

Have I to manage it?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

What’s the synch model?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

•Monitors changes

•Works on metadata

• Shreds files

• Supports conflict resolution

Daemon

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Special folder, synched

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Synched when “appropriate”

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Key-value

• Documents

• Core Data

Types of Information

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• The final user

• Your app will use his quota

• 5Gb for free

Who’s to pay?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Impact on UX?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• User expectation

• No control on upload

• “Why isn’t there?”

• Open the app to synch

• User turns off iCloud?

Impact on UX?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Lock-in• Huge

• Only on iOS

• No way to migrate

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Dropbox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• File-based

• Special folder

• Synchronized across devices

• Supports other platforms

Dropbox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Already set up

• installation

• bandwidth

• scalability

Have I to manage it?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Desktop synchronizes continuously

•Mobile apps have to query the backend

• HTTP API

• SDKs for iOS, Android, Ruby, Python

What’s the synch model?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• No conflict resolution (revision #)

• Data serialization is up to you

• No file shredding

What’s the synch model?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• The final user

• Your app will use his disk quota

• 2 Gb for free

Who’s to pay?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Authentication the first time

• User might modify files

• Control on the upload

Impact on UX?

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Lock-in• None

• Each user owns his data

• Personal/team usage

• ... but nothing more

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• box.net

• sugarsync.com

• google drive

• amazon S3

Similar

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Custom

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Saturday, November 30, 13

SWIPE CONFERENCE 2012

IaaS PaaS SaaS

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Data

• Application

IaaS PaaS SaaS• Data

• Application

• Runtime

•Middleware

• OS

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Data

• Application

IaaS PaaS SaaS• Data

• Application

• Runtime

•Middleware

• OS

AWS, Rackspace, ... Heroku, Appfog, ... BaasBox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Data

• Application

• Data

• Application

• Runtime

•Middleware

• OS

IaaS PaaS

AWS, Rackspace, ... Heroku, Appfog, ...

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Data

• Application

PaaS

Saturday, November 30, 13

SWIPE CONFERENCE 2012

•Which language?

•Which DB?

PaaS Questions

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Heroku

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Ruby

• Python

• Java

• Scala

• Closure

• Node.js

Languages

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Postgres

•MySQL (via addon)

•MongoDB (via addon)

DBs

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Essentially a process

•Web

•Worker

• # of dynos + db profile + addons = backend cost

Dyno

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Data

• Application

IaaS PaaS• OS

•Middleware

• Runtime

• Data

• Application

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• OS

•Middleware

• Runtime

• Data

• Application

IaaS

Saturday, November 30, 13

SWIPE CONFERENCE 2012

•Which OS?

•Which language?

•Which DB?

• How many machines?

Questions

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Amazon Web Services

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• CDN

• Storage

• Networking

• DBs

• Services: email, queue managers

• Con: cost estimation

Amazon Web Services

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Buy a server

• pick the hardware

• install OS

• rent space/bandwidth in a farm

Good old way

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Server side frameworks

Saturday, November 30, 13

SWIPE CONFERENCE 2012

BaaS

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Backend for mobile apps

• Files, DB, key-value

• API SDK

• Push notifications

• Analytics

BaaS

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• User management

• account creation/verification

• Login with Twitter/Facebook

• ACL

Baas

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Time to market

• Focus on the front end

Baas

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• cloudmine.me

• stackmob.com

• kinvey.com

• parse.com

• sencha.io

Services

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Blood pact

Saturday, November 30, 13

SWIPE CONFERENCE 2012

BaasBox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• No application server

• No database server

• JVM only requirement

• Runs everywhere

BaasBox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• User management

• ACL

• Assets

• Collections

• Push notifications

BaasBox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

• Download

•./start

BaasBox

Saturday, November 30, 13

SWIPE CONFERENCE 2012

BaasBox on CentOS

yum install java-1.7.0-openjdk

scp baasbox-xx.tar.gz user@host:remotepath

cd remotepath

./start

Saturday, November 30, 13

SWIPE CONFERENCE 2012

PizzaBox

BaasBox

Pizzaiolo Clients

Dev

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Asset

curl --form file=@margherita.png --form name=margherita --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Menu

curl -d "name=menu&meta=[ { "name": "Margherita", "id" : "margherita", "price": 5, "ingredients": "Pizza con pomodoro e mozzarella" }, ... ]" --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Create ordercurl -d "{ "list": {"margherita": 2,"quattrostagioni": 2}, "user": { "name": "Cesare", "surname": "Rocchi", "address": "Via delle vie 12, Roma", ... }, "time": "2013-01-02Z14:21", "total": 12.5, }"

-H X-BAASBOX-APPCODE:1234567890 --user cesare:cesare http://localhost:9000/document/orders

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Now we are working on• Service

• Business analytics

Saturday, November 30, 13

SWIPE CONFERENCE 2012

Contacts• http://www.baasbox.com

• twitter.com/baasbox

• facebook.com/baasbox

• github.com/baasbox

• info@baasbox.com

Saturday, November 30, 13

SWIPE CONFERENCE 2012

jobs@baasbox.com

Saturday, November 30, 13