amsterdam titanium user group - cloud services for apps nov 2013

35
Amsterdam Titanium Meetup Cloud Services for Apps Aaron K. Saunders CEO Clearly Innovative Inc November 6 th 2013

Upload: aaron-saunders

Post on 09-May-2015

800 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Amsterdam Titanium MeetupCloud Services for Apps

Aaron K. SaundersCEO Clearly Innovative Inc

November 6th 2013

Page 2: Amsterdam Titanium User Group - Cloud Services for Apps Nov 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

Page 3: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 4: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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!!!

Page 5: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Cloud Service Providers

Page 6: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 7: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 8: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 9: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 10: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 11: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 12: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 13: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 14: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 15: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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.

Page 16: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Backbone In Alloy

• Models– Keep track of your data

• Collections– Manage lists/arrays of your data

• Sync Adapter(s)– Local Storage, SQL, Properties, extendable

Page 17: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Alloy Models & Collections

• Collections inherit from Backbone.Collections.• Created a simple Javascript object and it is persisted as an model

Page 18: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 19: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Saving Models - Parse

Page 20: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Saving Models Kinvey

Page 21: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Saving Models Kinvey + Alloy

• Recommended Approach when integrating with Appcelerator Alloy

Page 22: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Saving Models StackMob

Page 23: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 24: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Alloy ACS Model Definition

Page 25: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Alloy ACS Sync Adapter

• Do some initialization for the adapter and associated models

• Provide access to the ti.cloud.js library

Page 26: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Alloy ACS Sync Adapter

• Handle the Sync entry point• Separate object functionality into distinct

functions

Page 27: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Alloy ACS Sync Adapter

• Creating a Photo using ti.cloud.js

Page 28: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Alloy ACS Sync Adapter

• Creating a Photo using adapter

Page 29: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Use of Adapter in Alloy Code

• Creating a Photo using Backbone save

Page 30: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Use of Adapter in Alloy Code

• Creating a Photo using Backbone save

Page 31: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Appcelerator Cloud Services

Page 32: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Use of Adapter in Alloy Code

• Creating a Photo using Backbone save

Page 33: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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

Page 34: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

Look For the Book Out in January

Page 35: Amsterdam Titanium User Group - Cloud Services for Apps Nov 2013

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