Your SlideShare is downloading. ×
0
Choosing a back end
for your mobile app:
don’t roll the dice!

Cesare Rocchi
studiomagnolia.com
_funkyboy
Saturday, Novemb...
Outline
• Needs when choosing a backend
Features
•
Overview of different approaches
•

SWIPE CONFERENCE 2012
Saturday, Nov...
Who am I?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
UX designer and developer

SWIPE CONFERENCE 2012
Saturday, November 30, 13
upbeat.it

SWIPE CONFERENCE 2012
Saturday, November 30, 13
@_funkyboy

SWIPE CONFERENCE 2012
Saturday, November 30, 13
@funkyboy

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Who are you?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
App Target
• Not apps where mobile is “just a view”
Apps which are inherently mobile
•
From web to app
•
• App needs a bac...
Questions

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Have I to manage it?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Have I to manage it?
• At which level?
Am I able to do it?
•
Have I time to learn?
•
• Is it worth it?

SWIPE CONFERENCE 2...
What’s the synch model?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
What’s the synch model?
• Does it match my goals?
Can I change it if needed?
•
What about protocols?
•

SWIPE CONFERENCE 2...
Have I to pay?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Have I to pay?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Who is to pay?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Impact on UX?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Impact on UX?
• Does it break any flow?
How frequently?
•
is it “ok” with that?
•

SWIPE CONFERENCE 2012
Saturday, November...
Lock-in?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Lock-in?
• How to migrate data?
Switching cost?
•
Code front-end
•
• Data compatibility

SWIPE CONFERENCE 2012
Saturday, N...
Options
• iCloud
Dropbox
•
Custom
•
• Back-end as a Service (BaaS)

SWIPE CONFERENCE 2012
Saturday, November 30, 13
What is iCloud?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Synchs stuff

SWIPE CONFERENCE 2012
Saturday, November 30, 13
It just works ...

SWIPE CONFERENCE 2012
Saturday, November 30, 13
... when it works.

SWIPE CONFERENCE 2012
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
Questions
• Have I to manage it?
What’s the synch model?
•
Who’s to pay?
•
• Impact on UX?
• Lock-in?
SWIPE CONFERENCE 201...
Have I to manage it?
• Learn the API
Apple takes care of
•
installation
•
• scalability

SWIPE CONFERENCE 2012
Saturday, N...
What’s the synch model?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Daemon
• Monitors changes
Works on metadata
•
Shreds files
•
• Supports conflict resolution

SWIPE CONFERENCE 2012
Saturday,...
Special folder, synched

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Synched when “appropriate”

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Types of Information
• Key-value
Documents
•
Core Data
•

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Who’s to pay?
• The final user
Your app will use his quota
•
5Gb for free
•

SWIPE CONFERENCE 2012
Saturday, November 30, 1...
Impact on UX?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Impact on UX?
• User expectation
No control on upload
•
“Why isn’t there?”
•
• Open the app to synch
• User turns off iClo...
Lock-in
• Huge
Only on iOS
•
No way to migrate
•

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Dropbox

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Dropbox
• File-based
Special folder
•
Synchronized across devices
•
• Supports other platforms

SWIPE CONFERENCE 2012
Satu...
Have I to manage it?
• Already set up
installation
•
bandwidth
•
• scalability

SWIPE CONFERENCE 2012
Saturday, November 3...
What’s the synch model?
• Desktop synchronizes continuously
Mobile apps have to query the backend
•
HTTP API
•
• SDKs for ...
What’s the synch model?
• No conflict resolution (revision #)
Data serialization is up to you
•
No file shredding
•

SWIPE C...
Who’s to pay?
• The final user
Your app will use his disk quota
•
2 Gb for free
•

SWIPE CONFERENCE 2012
Saturday, November...
Impact on UX?
• Authentication the first time
User might modify files
•
Control on the upload
•

SWIPE CONFERENCE 2012
Satur...
Lock-in
• None
Each user owns his data
•
Personal/team usage
•
• ... but nothing more

SWIPE CONFERENCE 2012
Saturday, Nov...
Similar
• box.net
sugarsync.com
•
google drive
•
• amazon S3

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Custom

SWIPE CONFERENCE 2012
Saturday, November 30, 13
SWIPE CONFERENCE 2012
Saturday, November 30, 13
IaaS

PaaS

SaaS

SWIPE CONFERENCE 2012
Saturday, November 30, 13
IaaS

PaaS

• Data
Application
•
Runtime
•
• Middleware
• OS

SaaS

• Data
Application
•

SWIPE CONFERENCE 2012
Saturday, ...
IaaS

PaaS

• Data
Application
•
Runtime
•
• Middleware
• OS

• Data
Application
•

AWS, Rackspace, ...

Heroku, Appfog, ....
IaaS

PaaS

•
Application
•
• Runtime
• Middleware
OS
•

•
• Application

Data

AWS, Rackspace, ...

Data

Heroku, Appfog,...
PaaS
•
• Application
Data

SWIPE CONFERENCE 2012
Saturday, November 30, 13
PaaS Questions
• Which language?
Which DB?
•

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Heroku

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Languages
• Ruby
Python
•
Java
•
• Scala
• Closure
Node.js
•
SWIPE CONFERENCE 2012
Saturday, November 30, 13
DBs
• Postgres
MySQL (via addon)
•
MongoDB (via addon)
•

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Dyno
• Essentially a process
Web
•
Worker
•
• # of dynos + db profile + addons = backend cost

SWIPE CONFERENCE 2012
Saturd...
IaaS

PaaS

•
• Middleware
• Runtime
Data
•
Application
•

•
• Application

OS

Data

SWIPE CONFERENCE 2012
Saturday, Nove...
IaaS
• OS
Middleware
•
Runtime
•
• Data
• Application
SWIPE CONFERENCE 2012
Saturday, November 30, 13
Questions
• Which OS?
Which language?
•
Which DB?
•
• How many machines?

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Amazon Web Services

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Amazon Web Services
• CDN
Storage
•
Networking
•
• DBs
• Services: email, queue managers
Con: cost estimation
•
SWIPE CONF...
Good old way
• Buy a server
pick the hardware
•
install OS
•
• rent space/bandwidth in a farm

SWIPE CONFERENCE 2012
Satur...
Server side frameworks

SWIPE CONFERENCE 2012
Saturday, November 30, 13
BaaS

SWIPE CONFERENCE 2012
Saturday, November 30, 13
BaaS
• Backend for mobile apps
Files, DB, key-value
•
API SDK
•
• Push notifications
• Analytics
SWIPE CONFERENCE 2012
Satu...
Baas
• User management
account creation/verification
•
Login with Twitter/Facebook
•
• ACL

SWIPE CONFERENCE 2012
Saturday,...
Baas
• Time to market
Focus on the front end
•

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Services
• cloudmine.me
stackmob.com
•
kinvey.com
•
• parse.com
• sencha.io
SWIPE CONFERENCE 2012
Saturday, November 30, 1...
Blood pact

SWIPE CONFERENCE 2012
Saturday, November 30, 13
BaasBox

SWIPE CONFERENCE 2012
Saturday, November 30, 13
BaasBox
• No application server
No database server
•
JVM only requirement
•
• Runs everywhere

SWIPE CONFERENCE 2012
Satur...
BaasBox
• User management
ACL
•
Assets
•
• Collections
• Push notifications
SWIPE CONFERENCE 2012
Saturday, November 30, 13
BaasBox
• Download

•

./start

SWIPE CONFERENCE 2012
Saturday, November 30, 13
BaasBox on CentOS
yum install java-1.7.0-openjdk
scp baasbox-xx.tar.gz user@host:remotepath
cd remotepath
./start
SWIPE CO...
PizzaBox

Dev

BaasBox
Pizzaiolo

Clients
SWIPE CONFERENCE 2012

Saturday, November 30, 13
Asset
curl --form file=@margherita.png
--form name=margherita
--user admin:admin
-H X-BAASBOX-APPCODE:1234567890
http://loc...
Menu
curl -d "name=menu&meta=[

 {

 
 "name": "Margherita",

 
 "id" : "margherita",

 
 "price": 5,

 
 "ingredients": "...
Create order
curl -d "{
"list": {"margherita": 2,"quattrostagioni": 2},
"user": {
"name": "Cesare",
"surname": "Rocchi",
"...
Now we are working on
• Service
Business analytics
•

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Contacts
• http://www.baasbox.com
twitter.com/baasbox
•
facebook.com/baasbox
•
• github.com/baasbox
• info@baasbox.com
SWI...
jobs@baasbox.com

SWIPE CONFERENCE 2012
Saturday, November 30, 13
Upcoming SlideShare
Loading in...5
×

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

4,042

Published on

Although usually not noticed by the final users, the backend is an important piece in the context of a mobile application.
In the past building a back-end meant renting some hardware or virtual machine, setting up the operative system, configuring the server, database, storage and writing the back-end logic. Nowadays great services that allow to quickly setup a back-end are spreading.
I will provide an overview of the services which allow developers to integrate their mobile applications with back-end functionalities and I will illustrate the features of BaasBox, an open source back end.

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,042
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
13
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

  1. 1. Choosing a back end for your mobile app: don’t roll the dice! Cesare Rocchi studiomagnolia.com _funkyboy Saturday, November 30, 13
  2. 2. Outline • Needs when choosing a backend Features • Overview of different approaches • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  3. 3. Who am I? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  4. 4. UX designer and developer SWIPE CONFERENCE 2012 Saturday, November 30, 13
  5. 5. upbeat.it SWIPE CONFERENCE 2012 Saturday, November 30, 13
  6. 6. @_funkyboy SWIPE CONFERENCE 2012 Saturday, November 30, 13
  7. 7. @funkyboy SWIPE CONFERENCE 2012 Saturday, November 30, 13
  8. 8. Who are you? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  9. 9. App Target • Not apps where mobile is “just a view” Apps which are inherently mobile • From web to app • • App needs a back-end SWIPE CONFERENCE 2012 Saturday, November 30, 13
  10. 10. Questions SWIPE CONFERENCE 2012 Saturday, November 30, 13
  11. 11. Have I to manage it? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  12. 12. Have I to manage it? • At which level? Am I able to do it? • Have I time to learn? • • Is it worth it? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  13. 13. What’s the synch model? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  14. 14. What’s the synch model? • Does it match my goals? Can I change it if needed? • What about protocols? • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  15. 15. Have I to pay? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  16. 16. Have I to pay? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  17. 17. Who is to pay? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  18. 18. Impact on UX? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  19. 19. Impact on UX? • Does it break any flow? How frequently? • is it “ok” with that? • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  20. 20. Lock-in? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  21. 21. Lock-in? • How to migrate data? Switching cost? • Code front-end • • Data compatibility SWIPE CONFERENCE 2012 Saturday, November 30, 13
  22. 22. Options • iCloud Dropbox • Custom • • Back-end as a Service (BaaS) SWIPE CONFERENCE 2012 Saturday, November 30, 13
  23. 23. What is iCloud? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  24. 24. Synchs stuff SWIPE CONFERENCE 2012 Saturday, November 30, 13
  25. 25. It just works ... SWIPE CONFERENCE 2012 Saturday, November 30, 13
  26. 26. ... when it works. SWIPE CONFERENCE 2012 Saturday, November 30, 13
  27. 27. SWIPE CONFERENCE 2012 Saturday, November 30, 13
  28. 28. SWIPE CONFERENCE 2012 Saturday, November 30, 13
  29. 29. SWIPE CONFERENCE 2012 Saturday, November 30, 13
  30. 30. Questions • Have I to manage it? What’s the synch model? • Who’s to pay? • • Impact on UX? • Lock-in? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  31. 31. Have I to manage it? • Learn the API Apple takes care of • installation • • scalability SWIPE CONFERENCE 2012 Saturday, November 30, 13
  32. 32. What’s the synch model? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  33. 33. Daemon • Monitors changes Works on metadata • Shreds files • • Supports conflict resolution SWIPE CONFERENCE 2012 Saturday, November 30, 13
  34. 34. Special folder, synched SWIPE CONFERENCE 2012 Saturday, November 30, 13
  35. 35. Synched when “appropriate” SWIPE CONFERENCE 2012 Saturday, November 30, 13
  36. 36. Types of Information • Key-value Documents • Core Data • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  37. 37. Who’s to pay? • The final user Your app will use his quota • 5Gb for free • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  38. 38. Impact on UX? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  39. 39. Impact on UX? • User expectation No control on upload • “Why isn’t there?” • • Open the app to synch • User turns off iCloud? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  40. 40. Lock-in • Huge Only on iOS • No way to migrate • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  41. 41. Dropbox SWIPE CONFERENCE 2012 Saturday, November 30, 13
  42. 42. Dropbox • File-based Special folder • Synchronized across devices • • Supports other platforms SWIPE CONFERENCE 2012 Saturday, November 30, 13
  43. 43. Have I to manage it? • Already set up installation • bandwidth • • scalability SWIPE CONFERENCE 2012 Saturday, November 30, 13
  44. 44. What’s the synch model? • Desktop synchronizes continuously Mobile apps have to query the backend • HTTP API • • SDKs for iOS, Android, Ruby, Python SWIPE CONFERENCE 2012 Saturday, November 30, 13
  45. 45. What’s the synch model? • No conflict resolution (revision #) Data serialization is up to you • No file shredding • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  46. 46. Who’s to pay? • The final user Your app will use his disk quota • 2 Gb for free • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  47. 47. Impact on UX? • Authentication the first time User might modify files • Control on the upload • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  48. 48. Lock-in • None Each user owns his data • Personal/team usage • • ... but nothing more SWIPE CONFERENCE 2012 Saturday, November 30, 13
  49. 49. Similar • box.net sugarsync.com • google drive • • amazon S3 SWIPE CONFERENCE 2012 Saturday, November 30, 13
  50. 50. Custom SWIPE CONFERENCE 2012 Saturday, November 30, 13
  51. 51. SWIPE CONFERENCE 2012 Saturday, November 30, 13
  52. 52. IaaS PaaS SaaS SWIPE CONFERENCE 2012 Saturday, November 30, 13
  53. 53. IaaS PaaS • Data Application • Runtime • • Middleware • OS SaaS • Data Application • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  54. 54. IaaS PaaS • Data Application • Runtime • • Middleware • OS • Data Application • AWS, Rackspace, ... Heroku, Appfog, ... SaaS BaasBox SWIPE CONFERENCE 2012 Saturday, November 30, 13
  55. 55. IaaS PaaS • Application • • Runtime • Middleware OS • • • Application Data AWS, Rackspace, ... Data Heroku, Appfog, ... SWIPE CONFERENCE 2012 Saturday, November 30, 13
  56. 56. PaaS • • Application Data SWIPE CONFERENCE 2012 Saturday, November 30, 13
  57. 57. PaaS Questions • Which language? Which DB? • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  58. 58. Heroku SWIPE CONFERENCE 2012 Saturday, November 30, 13
  59. 59. Languages • Ruby Python • Java • • Scala • Closure Node.js • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  60. 60. DBs • Postgres MySQL (via addon) • MongoDB (via addon) • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  61. 61. Dyno • Essentially a process Web • Worker • • # of dynos + db profile + addons = backend cost SWIPE CONFERENCE 2012 Saturday, November 30, 13
  62. 62. IaaS PaaS • • Middleware • Runtime Data • Application • • • Application OS Data SWIPE CONFERENCE 2012 Saturday, November 30, 13
  63. 63. IaaS • OS Middleware • Runtime • • Data • Application SWIPE CONFERENCE 2012 Saturday, November 30, 13
  64. 64. Questions • Which OS? Which language? • Which DB? • • How many machines? SWIPE CONFERENCE 2012 Saturday, November 30, 13
  65. 65. Amazon Web Services SWIPE CONFERENCE 2012 Saturday, November 30, 13
  66. 66. Amazon Web Services • CDN Storage • Networking • • DBs • Services: email, queue managers Con: cost estimation • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  67. 67. Good old way • Buy a server pick the hardware • install OS • • rent space/bandwidth in a farm SWIPE CONFERENCE 2012 Saturday, November 30, 13
  68. 68. Server side frameworks SWIPE CONFERENCE 2012 Saturday, November 30, 13
  69. 69. BaaS SWIPE CONFERENCE 2012 Saturday, November 30, 13
  70. 70. BaaS • Backend for mobile apps Files, DB, key-value • API SDK • • Push notifications • Analytics SWIPE CONFERENCE 2012 Saturday, November 30, 13
  71. 71. Baas • User management account creation/verification • Login with Twitter/Facebook • • ACL SWIPE CONFERENCE 2012 Saturday, November 30, 13
  72. 72. Baas • Time to market Focus on the front end • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  73. 73. Services • cloudmine.me stackmob.com • kinvey.com • • parse.com • sencha.io SWIPE CONFERENCE 2012 Saturday, November 30, 13
  74. 74. Blood pact SWIPE CONFERENCE 2012 Saturday, November 30, 13
  75. 75. BaasBox SWIPE CONFERENCE 2012 Saturday, November 30, 13
  76. 76. BaasBox • No application server No database server • JVM only requirement • • Runs everywhere SWIPE CONFERENCE 2012 Saturday, November 30, 13
  77. 77. BaasBox • User management ACL • Assets • • Collections • Push notifications SWIPE CONFERENCE 2012 Saturday, November 30, 13
  78. 78. BaasBox • Download • ./start SWIPE CONFERENCE 2012 Saturday, November 30, 13
  79. 79. BaasBox on CentOS yum install java-1.7.0-openjdk scp baasbox-xx.tar.gz user@host:remotepath cd remotepath ./start SWIPE CONFERENCE 2012 Saturday, November 30, 13
  80. 80. PizzaBox Dev BaasBox Pizzaiolo Clients SWIPE CONFERENCE 2012 Saturday, November 30, 13
  81. 81. Asset curl --form file=@margherita.png --form name=margherita --user admin:admin -H X-BAASBOX-APPCODE:1234567890 http://localhost:9000/admin/asset SWIPE CONFERENCE 2012 Saturday, November 30, 13
  82. 82. 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 SWIPE CONFERENCE 2012 Saturday, November 30, 13
  83. 83. Create order curl -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
  84. 84. Now we are working on • Service Business analytics • SWIPE CONFERENCE 2012 Saturday, November 30, 13
  85. 85. Contacts • http://www.baasbox.com twitter.com/baasbox • facebook.com/baasbox • • github.com/baasbox • info@baasbox.com SWIPE CONFERENCE 2012 Saturday, November 30, 13
  86. 86. jobs@baasbox.com SWIPE CONFERENCE 2012 Saturday, November 30, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×