On our website we currently use Pusher to push live data to our clients' web browsers. We wish to perform the same task, except to be able to send it to their phone/tablet without sending it via SMS.
Pusher for iPhone: http://pusher.com/docs/client_libr
Pusher for Android: http://pusher.com/docs/client_libr
When the user opens the application, the only thing they would see would be a list of Live updates that have been received, having the latest updates at the top. When they click an update, it would move to a different "slide" (forgive my terminology-- I mean to say a page "overlaying" the list of updates) and show the entire notification. A notification would contain a few pieces of information:
1) The user who triggered this live update's name and gravatar MD5.
2) The subject of the message that this update is contained within.
3) Data explaining the event. We don't have alot of events, but they can be formatted quite differently.
4) The time the event was triggered.
The applications would work in the following manner:
1) The user will be prompted to login using their e-mail address and password. Once the user has entered their credentials, they should not be required to login again. Whether I have to create a check_logged_in.php to validate their session asynchronously or not, it would check if they were logged in, and if they weren't, it would attempt to log them in (must store the e-mail/password in the phone itself for re-authentication attempts). Upon logging in I will return an array of language definitions (so we display the updates in the language the user is using on our website).
2. Once logged in, it will initialize a Pusher object and authenticate them to their "channel" so they would be able to retrieve their live updates.
3) The user receives live updates. When these updates are received, we will compile the data into a string (combining the live data and our language array), and create a new "notification" (where the phone vibrates, and what not..) displaying our new string. When the notification would be clicked on, it would display the notification in our Application. These updates represent different events that have occurred, and they vary from users joining a conversation, to a user reply to a comment, to updating two, three, or four different dates. (Don't worry, I have an image-- think of it as an "Activity Stream"). This should be built in a way so that if I should ever need to add/edit/delete "events", it would be exceptionally simple (for someone who doesn't program in C or Java).
As a programmer I know that this is rather simple. I, however, have no experience building applications and can't spend my time learning at the moment.
In the future we plan on extending the applications to include more features, and if this job is performed well by whomever builds it, chances are we would seek to re-hire you to perform the upgrades.
In the end, I wish to receive the uncompiled code of the applications so that I may change Pusher credentials as I see fit. The Pusher credentials should be defined as constants. I would also require instructions as to how to properly test the Applications to verify their functionnality.
By applying for this job you acknowledge that you will not receive credit of being the "Author" of these applicaions on any Application Marketplace. You also realize that this job requires the creation of two (2) seperate Applications: one for the iPhone, and one for the Android. This Application is simple and therefore should be built using the most reliable/used Operating System version. The budget submitted represents the sum cost of these two (2) Applications and is non-negotiable. Once I have received your application for this job, I will contact you and send you any screenshots you require to see if you are up to the task.