Amsterdam Titanium Meetup
Cloud Services for Apps
Aaron K. Saunders
CEO Clearly Innovative Inc
November 6th 2013
Who Am I
• CEO Clearly Innovative Inc. mobile
development agency specializing in
HTML5, javascript & nodejs
• Over 20yrs software development experience
using mostly open source, java technologies
• Appcelerator Partner Platform
• 4+ years of working with Appcelerator
• Working on book with Appcelerator Cloud
Services and Alloy for Wiley & Sons
Why Cloud Services
• Because You Might Need…
– User Management
– Social Media Integrations
– Push Notifications
– Hosting
– Server side pre/post processing
– Legacy Integrations/Connectors
– Blob Storage
Where do you go?
•
•
•
•
•
•

Hire a developer…
Build your own custom API…
Find Hosting Provider…
Integrate a Push Notifications Server…
Find Database Designer/Developer…
Why manage all of this chaos!!!
Cloud Service Providers
Basic Services Provided
• APIs Provided
– JavaScript, IOS, Android, .NET, REST

• Most have a free starter plan
– See specific sites for more information

• Basic Features Most Have
– Custom Objects, Users, Push, Social
Integrations, File Storage and Geolocation
Parse
• Owned by Facebook, some consider it market
leader
• Features
– Cloud Code
– Simple Hosting Feature
– Free starter Pack
– Advanced Console, Great Documentation
– POOR Appcelerator Support and responsiveness
Stackmob
• There is a basic plan but it is rate limited and
difficult to determine restrictions without
calling support
• Differentiators
– Provides a marketplace of integrated services
– Advanced Custom Code: Java,Scala,Clojure
– HTML Hosting
– Binary Storage through Amazon S3
Kinvey
• Success Pricing Model
– You only pay if your application is successful

• Offline Cache is built into the solution
• Custom Business Logic
• Third Party Data Integration Feature
– Location & Social
Appcelerator
• Will focus more on Appcelerator in end, but
key benefits are
– Pre-built components
– Fits with the stack if you already use Appcelerator
– Node.ACS
How Long To Build an App
• Kinvey says it takes approximately 18 months
to build an app with huge effort spent on
backend.
• http://www.kinvey.com/blog/2086/how-longdoes-it-take-to-build-a-mobile-app
Leverage the Cloud to get to MVP
• Even if you don’t stay in cloud forever use it to
mitigate risk in early phase of project
• Build product and validate assumptions
• Conserve budget for value added functionality
• Conserve development effort for value added
functionality
JavaScript, Alloy & ACS
• JavaScript is EVERYWHERE
• Cross-Platform Mobile development for more
efficient development cycles
• Integrated Cloud Services Platform to further
enhance development cycle efficiencies
• Code & expertise utilized on mobile solution,
can be leveraged on web application
Alloy Benefits
• Alloy comes with a clean well defined XML UI
markup, style sheets, and reusable widget
components.
• Built-in Backbone.js and Underscore.js
support
Backbone.js gives structure to web applications
by providing models with key-value binding
and custom events, collections with a rich API
of enumerable functions, views with
declarative event handling, and connects it all
to your existing API over a RESTful JSON
interface.
Backbone In Alloy
• Models
– Keep track of your data

• Collections
– Manage lists/arrays of your data

• Sync Adapter(s)
– Local Storage, SQL, Properties, extendable
Alloy Models & Collections

• Collections inherit from Backbone.Collections.
• Created a simple Javascript object and it is persisted as an model
Alloy Sync Adapter
• Support for persisting application content
• Based on common REST verbs
– GET > READ
– PUT > UPDATE
– POST > CREATE
– DELETE > DELETE

• Can be integrated with local or remote data
stores
Saving Models - Parse
Saving Models Kinvey
Saving Models Kinvey + Alloy
• Recommended Approach when integrating with Appcelerator
Alloy
Saving Models StackMob
ACS in Alloy Sync Adapter
• We follow the standard Backbone structure to
respond to the rest verbs and just include the
ti.cloud.js API calls
Alloy ACS Model Definition
Alloy ACS Sync Adapter
• Do some initialization for the adapter and
associated models
• Provide access to the ti.cloud.js library
Alloy ACS Sync Adapter
• Handle the Sync entry point
• Separate object functionality into distinct
functions
Alloy ACS Sync Adapter
• Creating a Photo using ti.cloud.js
Alloy ACS Sync Adapter
• Creating a Photo using adapter
Use of Adapter in Alloy Code
• Creating a Photo using Backbone save
Use of Adapter in Alloy Code
• Creating a Photo using Backbone save
Appcelerator Cloud Services
Use of Adapter in Alloy Code
• Creating a Photo using Backbone save
Node.ACS
• Built using NodeJS, ExpressJS under the covers
• Build and host custom services to extend
Appcelerator Cloud Services (ACS)
• Host your existing node.js app/service on the
Appcelerator Cloud
• Create Node.ACS apps directly from TiStudio
http://nodeacs.cloud.appcelerator.com/guides/quickstart
Look For the Book Out in January
Aaron K Saunders
Twitter: @aaronksaunders
blog: http://blog.clearlyinnovative.com
Facebook: https://www.facebook.com/ClearlyInnovativeInc
Github : https://github.com/aaronksaunders/
SlideShare: http://www.slideshare.net/aaronksaunders/
1706 R Street, NW
Washington, DC 20009
www.clearlyinnovative.com

Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

  • 1.
    Amsterdam Titanium Meetup CloudServices for Apps Aaron K. Saunders CEO Clearly Innovative Inc November 6th 2013
  • 2.
    Who Am I •CEO Clearly Innovative Inc. mobile development agency specializing in HTML5, javascript & nodejs • Over 20yrs software development experience using mostly open source, java technologies • Appcelerator Partner Platform • 4+ years of working with Appcelerator • Working on book with Appcelerator Cloud Services and Alloy for Wiley & Sons
  • 3.
    Why Cloud Services •Because You Might Need… – User Management – Social Media Integrations – Push Notifications – Hosting – Server side pre/post processing – Legacy Integrations/Connectors – Blob Storage
  • 4.
    Where do yougo? • • • • • • Hire a developer… Build your own custom API… Find Hosting Provider… Integrate a Push Notifications Server… Find Database Designer/Developer… Why manage all of this chaos!!!
  • 5.
  • 6.
    Basic Services Provided •APIs Provided – JavaScript, IOS, Android, .NET, REST • Most have a free starter plan – See specific sites for more information • Basic Features Most Have – Custom Objects, Users, Push, Social Integrations, File Storage and Geolocation
  • 7.
    Parse • Owned byFacebook, some consider it market leader • Features – Cloud Code – Simple Hosting Feature – Free starter Pack – Advanced Console, Great Documentation – POOR Appcelerator Support and responsiveness
  • 8.
    Stackmob • There isa basic plan but it is rate limited and difficult to determine restrictions without calling support • Differentiators – Provides a marketplace of integrated services – Advanced Custom Code: Java,Scala,Clojure – HTML Hosting – Binary Storage through Amazon S3
  • 9.
    Kinvey • Success PricingModel – You only pay if your application is successful • Offline Cache is built into the solution • Custom Business Logic • Third Party Data Integration Feature – Location & Social
  • 10.
    Appcelerator • Will focusmore on Appcelerator in end, but key benefits are – Pre-built components – Fits with the stack if you already use Appcelerator – Node.ACS
  • 11.
    How Long ToBuild an App • Kinvey says it takes approximately 18 months to build an app with huge effort spent on backend. • http://www.kinvey.com/blog/2086/how-longdoes-it-take-to-build-a-mobile-app
  • 12.
    Leverage the Cloudto get to MVP • Even if you don’t stay in cloud forever use it to mitigate risk in early phase of project • Build product and validate assumptions • Conserve budget for value added functionality • Conserve development effort for value added functionality
  • 13.
    JavaScript, Alloy &ACS • JavaScript is EVERYWHERE • Cross-Platform Mobile development for more efficient development cycles • Integrated Cloud Services Platform to further enhance development cycle efficiencies • Code & expertise utilized on mobile solution, can be leveraged on web application
  • 14.
    Alloy Benefits • Alloycomes with a clean well defined XML UI markup, style sheets, and reusable widget components. • Built-in Backbone.js and Underscore.js support
  • 15.
    Backbone.js gives structureto web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
  • 16.
    Backbone In Alloy •Models – Keep track of your data • Collections – Manage lists/arrays of your data • Sync Adapter(s) – Local Storage, SQL, Properties, extendable
  • 17.
    Alloy Models &Collections • Collections inherit from Backbone.Collections. • Created a simple Javascript object and it is persisted as an model
  • 18.
    Alloy Sync Adapter •Support for persisting application content • Based on common REST verbs – GET > READ – PUT > UPDATE – POST > CREATE – DELETE > DELETE • Can be integrated with local or remote data stores
  • 19.
  • 20.
  • 21.
    Saving Models Kinvey+ Alloy • Recommended Approach when integrating with Appcelerator Alloy
  • 22.
  • 23.
    ACS in AlloySync Adapter • We follow the standard Backbone structure to respond to the rest verbs and just include the ti.cloud.js API calls
  • 24.
    Alloy ACS ModelDefinition
  • 25.
    Alloy ACS SyncAdapter • Do some initialization for the adapter and associated models • Provide access to the ti.cloud.js library
  • 26.
    Alloy ACS SyncAdapter • Handle the Sync entry point • Separate object functionality into distinct functions
  • 27.
    Alloy ACS SyncAdapter • Creating a Photo using ti.cloud.js
  • 28.
    Alloy ACS SyncAdapter • Creating a Photo using adapter
  • 29.
    Use of Adapterin Alloy Code • Creating a Photo using Backbone save
  • 30.
    Use of Adapterin Alloy Code • Creating a Photo using Backbone save
  • 31.
  • 32.
    Use of Adapterin Alloy Code • Creating a Photo using Backbone save
  • 33.
    Node.ACS • Built usingNodeJS, ExpressJS under the covers • Build and host custom services to extend Appcelerator Cloud Services (ACS) • Host your existing node.js app/service on the Appcelerator Cloud • Create Node.ACS apps directly from TiStudio http://nodeacs.cloud.appcelerator.com/guides/quickstart
  • 34.
    Look For theBook Out in January
  • 35.
    Aaron K Saunders Twitter:@aaronksaunders blog: http://blog.clearlyinnovative.com Facebook: https://www.facebook.com/ClearlyInnovativeInc Github : https://github.com/aaronksaunders/ SlideShare: http://www.slideshare.net/aaronksaunders/ 1706 R Street, NW Washington, DC 20009 www.clearlyinnovative.com

Editor's Notes

  • #12 Time doesn’t really matter, the important thing here is that there is focus spent there and not on the mobile app
  • #13 Time doesn’t really matter, the important thing here is that there is focus spent there and not on the mobile app
  • #20 Extend the object you created in the Parse admin console, set the properties and call the save method
  • #21 Kinvey allows you to use backbone as your base and then just extend your backbone model with kinvey’s models to get access to there backend; Kinvey like Parse utilizes promises OR callbacks for managing your application structure
  • #22 Kinvey allows you to use backbone as your base and then just extend your backbone model with kinvey’s models to get access to there backend; Kinvey like Parse utilizes promises OR callbacks for managing your application structure
  • #23 Kinvey allows you to use backbone as your base and then just extend your backbone model with kinvey’s models to get access to there backend; Kinvey like Parse utilizes promises OR callbacks for managing your application structure
  • #25 Define the model type and then the specific collection name. we use the collection name in the sync adapter to know how to process the object
  • #26 ----- Meeting Notes (11/5/13 21:13) -----we set the Cloud variable so we have a local instance and then we pass it to the configuration variable so all of the asssociated models using this adapter have access to the ti.cloud library
  • #27 When backbone does it’s magic, it is only concerned with the REST verbs, you need to figure out how to implement your functionality using these verbs.
  • #28 We add the meta data to the object for use later, and create a photo using the same function as the ti.cloud library but get all of the benefits of backbone. You also get seperation of concerns in regards to functionality and flexibility in your implementation since you can always trade out your acs adapter for any other type of adapter
  • #29 We add the meta data to the object for use later, and create a photo using the same function as the ti.cloud library but get all of the benefits of backbone. You also get seperation of concerns in regards to functionality and flexibility in your implementation since you can always trade out your acs adapter for any other type of adapter
  • #30 We add the meta data to the object for use later, and create a photo using the same function as the ti.cloud library but get all of the benefits of backbone. You also get seperation of concerns in regards to functionality and flexibility in your implementation since you can always trade out your acs adapter for any other type of adapter
  • #31 We add the meta data to the object for use later, and create a photo using the same function as the ti.cloud library but get all of the benefits of backbone. You also get seperation of concerns in regards to functionality and flexibility in your implementation since you can always trade out your acs adapter for any other type of adapter
  • #32 All of these options can be easily accessed through the APIs, wrapped in a sync adapter and easily integrated into your application
  • #33 We add the meta data to the object for use later, and create a photo using the same function as the ti.cloud library but get all of the benefits of backbone. You also get seperation of concerns in regards to functionality and flexibility in your implementation since you can always trade out your acs adapter for any other type of adapter