Editor’s Note: This post is cross-posted with permission from the Clearly Innovative blog, maintained by Aaron Saunders.
AND
This is an introductory post on using StackMob for the backend services of your mobile applications. The StackMob platform helps you build, deploy and scale your backend while making it very easy for you to add push notifications, social integration and more to your apps. Here is a blog posting on why services like StackMob are a value-add for Appcelerator developers.
Why a PaaS for Mobile Developers Makes Sense
Here is my brief outline on the benefits StackMob provides: More Information Available on website
- REST Based API
- Custom Code Integration
- Social Media Integration
- Push Notification
- Separation of Production and Staging Environments
In this first part of a three part series we will cover a very basic implementation using a Javascript REST based API. StackMob provides an IOS and Android SDK so you can create a native module if you like. In the last few weeks I created a functioning IOS module and have started working on an Android module that I will release to the Marketplace soon.
In this initial example I have created, there are two simple objects: users and photos. We will expand on the relationship in a later posting, but this is good enough for now.
First you need to go to StackMob and get an account. They are still in beta, but if you indicate that you are trying to integrate with Appcelerator, they will give you priority access.
Create An App
Here we will create our user object. StackMob allows us to specify that the object is a user object and this is how we can log in and out of our application. No trying to roll your own authentication method. It is using xAuth over HTTPS, so you are all set.
Click “Create a Schema” to Add the User Object
then enter the appropriate information for your user object
When you are all done, you should have something that looks similar to this, if you have been following along.
Ok enough StackMob, where is the Appcelerator code….
First you need to initialize the module. I have created a file called credentials which holds your StackMob credentials and associated application information. Here is what the file looks like.
Now with the credentials set, here is how you intialize the module.
And finally, here is how you create a user object to go along with the object you created in the console.
the successful output from the module should look something like this.
The client create method is a nice wrapper around a POST of the REST API call to create the user object. The whole objective of the module I created is to cut down on the time spent coding the oAuth API and get straight to doing productive things. The way the module is created, it will take the parameters and return the results as a JSON object
Here we make an API call through the module to get the list of all of the user(s) we have created in the system.
And to get a specific user, we can pass in the value for the user name in the GET query like this.
In Part Two I will cover setting up the Amazon S3 Integration and the uploading of image files to the system.
Complete Listing
LINKS









[...] Titanium Appcelerator Quickie: StackMob API Module Part One [...]
hello
Where can I download stackmob-module.min?
thanks…
i aplogize the original link was not working it has since been updated
Thanks. It’s good example. I hope to see part two ASAP! Cheer!
Awesome! Thanks so much. Can’t wait for part two. Been waiting for something like this for a while.
Ive already signed up.
Curious to see what they will charge for requests/transactions and they definitely will.
This is pretty much an answer to Parse.com , if i’m not mistaken.
Hi Aaron-
Next time around, would you mind including a non-minified version of the stackmob-module.js file? It’d make it much easier to learn from and debug.
Thanks again!
-h
I added a login method to your StackMob code:
Client.prototype.login = function (a) {
this.request({
action: a.className + “/” + a.objectId,
method: “login”,
params: a.params,
success: a.success,
error: a.error
})
};
Calling it like so:
client.login({
className : ‘user’,
params : {
‘username’ : “freddymac”,
‘password’ : ’1234′,
},
success : function(data){
Ti.API.info(“logged in succesfully”);
},
error : function(data){
Ti.API.info(“couldn’t log in.”);
}
})
Does that look right? I’m not sure if that’s all that’s required to login, but its not working- I think its on their end.
Code cleaned up:
Here is the answer to your login question:
User Login with StackMob – Titanium Appcelerator Quickie: StackMob API Module Part 1a bit.ly/sxeq0a #appcelerator #stackmob
Doesn’t look like you can add the ordering headers outlined here: https://www.stackmob.com/platform/stackmob/help/topics/REST-API-Formats:-Object-Calls#a-ordering_data
Is this possible?
Let me take a look at it tomorrow and I will post some code/update you to what I have found.
when i first started working in the blog posting, I dont believe that functionality was documented… but thx for the heads up
REALLY looking forward to your native module Aaron & thanks for this blog posting, very useful.
Kind Regards,
Steve
[...] simple, I will be updating the objects that were used in part one of this blog post. See this ( Titanium Appcelerator Quickie: StackMob API Module Part One [...]
Any update?
http://blog.clearlyinnovative.com/post/14121905733/titanium-appcelerator-quickie-stackmob-api-module-part
this posting show how to use the headers for ordering the result set