choosing a backend for your mobile app? don’t roll the dice!

86
studiomagnolia.com Cesare Rocchi Choosing a back end for your mobile app: don’t roll the dice! _funkyboy Saturday, November 30, 13

Upload: codemotion

Post on 20-Aug-2015

4.100 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 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

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

SWIPE CONFERENCE 2012

• Needs when choosing a backend

• Features

• Overview of different approaches

Outline

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Who am I?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

UX designer and developer

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

upbeat.it

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

@_funkyboy

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

@funkyboy

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Who are you?

Saturday, November 30, 13

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

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

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

SWIPE CONFERENCE 2012

Questions

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Have I to manage it?

Saturday, November 30, 13

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

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

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

SWIPE CONFERENCE 2012

What’s the synch model?

Saturday, November 30, 13

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

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

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

SWIPE CONFERENCE 2012

Have I to pay?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Have I to pay?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Who is to pay?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Impact on UX?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Does it break any flow?

• How frequently?

• is it “ok” with that?

Impact on UX?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Lock-in?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• How to migrate data?

• Switching cost?

• Code front-end

• Data compatibility

Lock-in?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• iCloud

• Dropbox

• Custom

• Back-end as a Service (BaaS)

Options

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

What is iCloud?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Synchs stuff

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

It just works ...

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

... when it works.

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Saturday, November 30, 13

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

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

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

SWIPE CONFERENCE 2012

• Learn the API

• Apple takes care of

• installation

• scalability

Have I to manage it?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

What’s the synch model?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

•Monitors changes

•Works on metadata

• Shreds files

• Supports conflict resolution

Daemon

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Special folder, synched

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Synched when “appropriate”

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Key-value

• Documents

• Core Data

Types of Information

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• The final user

• Your app will use his quota

• 5Gb for free

Who’s to pay?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Impact on UX?

Saturday, November 30, 13

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

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

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

SWIPE CONFERENCE 2012

Lock-in• Huge

• Only on iOS

• No way to migrate

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Dropbox

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• File-based

• Special folder

• Synchronized across devices

• Supports other platforms

Dropbox

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Already set up

• installation

• bandwidth

• scalability

Have I to manage it?

Saturday, November 30, 13

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

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

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

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

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

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

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

SWIPE CONFERENCE 2012

• Authentication the first time

• User might modify files

• Control on the upload

Impact on UX?

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Lock-in• None

• Each user owns his data

• Personal/team usage

• ... but nothing more

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• box.net

• sugarsync.com

• google drive

• amazon S3

Similar

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Custom

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

IaaS PaaS SaaS

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Data

• Application

IaaS PaaS SaaS• Data

• Application

• Runtime

•Middleware

• OS

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Data

• Application

IaaS PaaS SaaS• Data

• Application

• Runtime

•Middleware

• OS

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

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Data

• Application

• Data

• Application

• Runtime

•Middleware

• OS

IaaS PaaS

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

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Data

• Application

PaaS

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

•Which language?

•Which DB?

PaaS Questions

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Heroku

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Ruby

• Python

• Java

• Scala

• Closure

• Node.js

Languages

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Postgres

•MySQL (via addon)

•MongoDB (via addon)

DBs

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Essentially a process

•Web

•Worker

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

Dyno

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Data

• Application

IaaS PaaS• OS

•Middleware

• Runtime

• Data

• Application

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• OS

•Middleware

• Runtime

• Data

• Application

IaaS

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

•Which OS?

•Which language?

•Which DB?

• How many machines?

Questions

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Amazon Web Services

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• CDN

• Storage

• Networking

• DBs

• Services: email, queue managers

• Con: cost estimation

Amazon Web Services

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Buy a server

• pick the hardware

• install OS

• rent space/bandwidth in a farm

Good old way

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Server side frameworks

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

BaaS

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Backend for mobile apps

• Files, DB, key-value

• API SDK

• Push notifications

• Analytics

BaaS

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• User management

• account creation/verification

• Login with Twitter/Facebook

• ACL

Baas

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Time to market

• Focus on the front end

Baas

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• cloudmine.me

• stackmob.com

• kinvey.com

• parse.com

• sencha.io

Services

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Blood pact

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

BaasBox

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• No application server

• No database server

• JVM only requirement

• Runs everywhere

BaasBox

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• User management

• ACL

• Assets

• Collections

• Push notifications

BaasBox

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

• Download

•./start

BaasBox

Saturday, November 30, 13

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

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

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

SWIPE CONFERENCE 2012

PizzaBox

BaasBox

Pizzaiolo Clients

Dev

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Asset

curl --form [email protected] --form name=margherita --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset

Saturday, November 30, 13

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

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

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

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

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

SWIPE CONFERENCE 2012

Now we are working on• Service

• Business analytics

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

Contacts• http://www.baasbox.com

• twitter.com/baasbox

• facebook.com/baasbox

• github.com/baasbox

[email protected]

Saturday, November 30, 13

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

SWIPE CONFERENCE 2012

[email protected]

Saturday, November 30, 13