3. How are apps designed?
• Top-down Developers rarely start designing
their app by defining the data
• Pain points structures or backend services.
• End users
They think of their goals and work
• User interfaces top-down to define the use cases
and flow.
• User experience
The required backend services and
data models fall out of this.
10. Need more? Use custom data & code!
{
"meta": {
• Key-value store simple data
"status": "ok",
"code": 200,
"method_name": "showUsers”
},
"response": {
• Custom fields to supplement
"users": [{
"id":"4e8b8e627818261d1d0003a8",
"first_name":”Cloud",
predefined data types
"last_name":”User",
"created_at":"2011-10-04T22:53:22+0000",
"updated_at":"2012-05-08T17:12:43+0000",
"email":”clouduser@cocoafish.com",
"custom_fields": {
• Custom objects for defining your
”age”:28,
”show_size":”8",
”favorite_color":”blue”
own data types
}
}]
}
}
• Custom code allows you to write
your own server-side components
11. ACS public cloud architecture
ACS Titanium & Native Client SDKs
ACS Network Layer
Photo Photo
ACS API Server
ACS Push Server
for iOS & File File
Android
NoSQL Database Search Engine
Amazon S3
Amazon EC2
13. Ti + ACS
• Create a Ti Studio project
• Add ACS features
• Manage data from the ACS
admin console
• Refer to the Ti SDK & ACS
documentation
14. iOS + ACS
• Create an ACS app on
my.apcelerator.com
• Install the ACS iOS SDK
• Configure keys
• Add ACS features
• Manage data from the ACS
admin console
• Refer to the ACS documentation
15. Handling Photos
• We provide six predefined sizes, but
you can specify your own with
photo_sizes[]
• Photo resizing can be synchronous
using photo_sync_sizes[]
• Photo processing extracts exif data
• Photos are downloaded from S3
• Retry uploads in your app
• Preload photo downloads
16. Custom Objects
• Use this to define your own types of
objects (video, car, book)
• Fields are indexed and efficiently
queryable
• Upcoming relational objects feature
will allow inclusion of other
predefined & custom objects
21. Deployment options
ACS Virtual Private ACS Private Cloud
ACS Public Cloud
Cloud
Hosted, managed by Hosted, managed by Hosted, managed by the
Appcelerator in the Cloud Appcelerator in the Cloud customer at their
with dedicated infrastructure premises or data center
Editor's Notes
Good afternoon. Thanks for coming to my presentation about using Appcelerator Cloud Services in your mobile apps, or websites, or anything else!In the keynote talks from Jeff, Nolan, and Jonathan, and in the earlier breakout session with Simon, you heard a lot about the benefits if using ACS. Now let’s jump into more details about making apps using cloud services.
First, let’s start from a high level about how people design their apps.
When making your own app, it’s often not clear which backend services or data objects you’ll need. This is because apps are usually designed top-down. You think of your goals and users. You design the user interface. Only then does that data required to drive all of that become clear.
Here are some of the most popular social apps. What do we see in common between them? Other than the fact that they are all different shades of blue and have a common layout, we see they they show a of the same data.We’ve got users, photos, friends, likes comments, statuses, and followers. This leads one to naturally think… if they provide a lot of the same data, do they really need their own unique backend?
That’s the thinking that my Cocoafish cofounder Wei Kong and I had when we originally built the common backend for Cocoafish, which was acquired by Appcelerator in January of this year.There are so many features in common between apps these days, that we realized we could abstract it out and provide an easy to use service for app developers.
When you’re ready to go with your app design, what’s next? Well the actual steps to implement a cloud-connected app are many. If you have the skills to take care of everything, that’s great. However it’s not as common that app developers also have the skills and experience to handle server coding, and vice-versa. You can hire folks, but that just takes extra time and money.Before we built Cocoafish, Wei and I built a little food review app called Dishfinders. We went through all of these steps. And in our case since we’re server developers, the app development part was harder. But we could see how the server coding, testing, deployment, and scaling would ne really difficult for app developers. And since a lot of the same data is used over and over again, we felt that we could built something reusable.
On the contrary, when building your apps using ACS, the process is greatly simplified.
An MBaaS service offering a fast and easy way to build next gen connected mobile apps. Featuring a pre-built library of services such as push notification, status updates, photo storage, user management and social integration, as well as the ability to create your own custom services, you can develop your mobile apps at a fraction of the time, cost and risk.
We strive to provide 80% or so of what you need from a backend service for your app. But we know that there will be types of data or actions that we can’t provide for you.In the beginning we provided keyvalues to provide a Redis-like way to store simple data. Then we added custom fields to help you extend the objects we predefined for you.Next we added custom objects so that you can define an entirely new type of data object.And soon we’re adding custom code, which lets you write your own node.js code which runs in the cloud and connects to ACS.
Here is a basic picture of the core ACS stack. Basically, we’ve built what you would have built for your own app, but done it in a scalable and reusable way,