Need an android app, it's gonna be a prototype, standard widgets are fine in the beginning, but it should be well architectured to later be able to run on any device down to Froyo, e.g. it should use Fragments and the support library. It should be written in Android Studio.
In short, the app offers some user interaction with a remote server (HTTP/RabbitMQ exchange of messages) on 4 activities (3 activities plus one login activity). An experienced Android developer should be able to walk right through it, as they're all pretty basic.
Overview of Activities:
1) Login activity (allow facebook and google logins)
2) Main activity (displays messages received, buttons to jump off to activity 3 and 4)
3) Send message to server (very simple
4) Browse some simple JSON data, send back a selection
Message passing can be triggered from either side, client or server. That means that the client should hold open a persistent connection to a RabbitMQ server and wait for events. I have a RabbitMQ server on amazon EC2 that sends messages every few seconds that you can use to test. If you don't have experience with RabbitMQ, feel free to bid anyway just mention that you won't be able to do the RabbitMQ part.
For RabbitMQ and android I found:
[url removed, login to view]
The user can also trigger events resulting in requests to the server, those would be regular HTTP requests (that happens in activity 3 and 4).
Activity 1 (Login):
- Allow facebook and google logins as in
[url removed, login to view]
We don't really need any privileges on those sites right now, it's just to have a unique handle for the user (which would be the facebook user id or the google user id).
- Upon successful login, transmit the user tokens to the server via an HTTP GET request and retrieve a list of data (JSON) via another HTTP GET request.
- Every item in the list has 3 attributes, one is an id. The other two are text properties of the item.
Activity 2 (main screen of the app interaction):
- Present two text fields, both will hold the events received from the RabbitMQ server
- One search button "Search for items", another search button "Send message"
- "Send message" on Activity 2 just opens an activity with a text field and clicking a "Send" button on that activity would send an HTTP GET to the remote server, e.g.
- After the send, jumps back to Activity 2
- "Cancel" button doesn't send and just jumps back to Activity 2
- "Search for items" in Activity 2 opens a tabbed activity with lists in the tabs. Three tabs:
"By color", "By type", "By id" and one button "Select" at the bottom
- The tabs present the data from the file downloaded in Activity 1, with the example above:
The "By color" tab would show two items "red" and "blue" (sorted alphabetically)
The "By type" tab would show two items "chair" and "table" (sorted alphabetically)
The "By id" tab would show two items "1" and "2"
- Navigation continues until one item is selected (highlighted and the "Select" button pressed)
- Then the android app makes a GET request to the server: e.g. "GET item?id=2"
- and jumps back to Activity 2