Amsterdam Titanium Meetup Cloud Services for Apps Aaron K. Saunders CEO Clearly Innovative Inc November 6 th 2013
Amsterdam Titanium MeetupCloud Services for Apps
Aaron K. SaundersCEO 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-long-does-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 SaundersTwitter: @aaronksaundersblog: http://blog.clearlyinnovative.comFacebook: https://www.facebook.com/ClearlyInnovativeIncGithub : https://github.com/aaronksaunders/SlideShare: http://www.slideshare.net/aaronksaunders/
1706 R Street, NWWashington, DC 20009
www.clearlyinnovative.com