Recently Appcelerator integrated cloud services with Titanium, in this post I am going to explain about bacics of Appcelerator Cloud Service(ACS)
What is Mobile Cloud Computing?
Mobile cloud computing is the usage of cloud computing in combination with mobile devices.
Cloud computing exists when tasks and data are kept on the internet(data are stored on servers at a remote location) rather than on individual devices, providing on-demand access.click here to know more
ACS Advantage
- Create a server backed for your app instantly
- Launch and scale your app automatically
- No server coding or administration required
- Scalability and Reliability
- Flexibility
- Reduced Cost
- Increased Storage
What can we do with ACS?
Appcelerator provides around 15+ cloud services, among that few are
Standard(Tier 1)
- Users
- Files
- Photos
- Custom objects
- Emails
- Push notifications
Advanced(Tier 2)
- Chats
- Checkins
- Events
- Friends
- Photo Collection
- Places
- Posts
- Reviews
- Message
- Social integration
In this post I am going to explain how to
- How to create cloud app?
- How to create cloud user?
- How to create custom object?
- How to query custom object?
1. Create cloud App
Open your Titanium Studio and create a new ploject and make sure (Automatically cloud-enable this application should be checked)
After creating the project edit your tiapp.xml file you can see two(development, Production) set of cloud API keys. No need to worry about this it will be automatically mapped.
For example If run the App in simulator or Device it will use Development keys, If you create a signed pakage it will use Production keys.
Then login to Appcelerator cloud console and you can see yor newly created app
2.Create Cloud User
Include the ti.cloud module at top of your file then add below code to create a cloud User, Here I am creating a User with some sample data
var Cloud = require('ti.cloud'); Cloud.Users.create({ username: "testuser1", password: "testuser1", password_confirmation: "testuser1", first_name: "test", last_name: "user1" }, function (e) { if (e.success) { var user = e.users[0]; alert('Created! You are now logged in as ' + user.id); } else { if (e.error && e.message) { alert('Error :' + e.message); } } });
after creating a cloud user, the user will logged in automatically
click Manage -> Development -> App Management -> Users
Here you can see the list of users, also you can edit the user detail
3.Create Custom Object
Cloud user can definec their own Custom Objects and object types, add beolow code to create a cloud custom object, before creating a custom object user must be logged in
Cloud.Users.login({ login : 'testuser1', password: 'testuser1', }, function(e) { if (e.success) { Cloud.Objects.create({ classname : 'books', fields : { book_id : 1, title : 'Javascript', author : 'Peter' } }, function(e) { if(e.success) { alert("created"); } else { alert('Error: ' + ((e.error && e.message) || JSON.stringify(e))); } }); } else { alert('Login Error:' +((e.error && e.message) || JSON.stringify(e))); } });
4. Query Custom Object
Here I am using three type of query
if(e.index == 0){ var params = {classname: "books",page: 1,per_page: 10}; // which is used for sellect object having classname = "books" }else if(e.index == 1){ var params = {classname: "books",page: 1,per_page: 10, where: { author: "Peter"}};// which is used for sellect object WHERE author = 'Peter' and classname = "books" }else if(e.index == 2){ var params = {classname: "books",page: 1,per_page: 10, where: { "book_id":{"$gte" : 2}}};// which is used for sellect object WHERE book_id > 2 and classname = "books" } Cloud.Objects.query( params , function(e) { if (e.success) { opLabel.text = JSON.stringify(e.books); } else { alert('Error: ' +((e.error && e.message) || JSON.stringify(e))); } })
Here you can download the complete working project from my Github account Appcelerator Titanium Custom Object and Query
Congratulations for the post! Helps me to better understand the Custom Objects integration =]
ReplyDeleteThank you and if you can post more tutorials we'll love it !
Hi Karthi,
ReplyDeleteNice post.
Can ACS perform 'LIKE' queries. So 'Select * from places where name LIKE bob'
And results would return all matches that contain the string Bob.
Please email me if you have an answer on hasnaad@gmail.com
AWESOME
ReplyDeletewhere i need to keep this code in alloy(mvc)
ReplyDeleteApart from UI part, obviously you have to write all your code(ACS connection and parsing data) in controller.
ReplyDeletethanks for your reply , even though it's not working .i have wrote the code in alloy.js file
ReplyDeleteCan u share u r project?, so that I can help you
ReplyDelete