Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Preview:

Citation preview

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

Recommended