iPhone/iPad Application
Requirements:
A GUI based application functioning as a client to a server on the local LAN. Because the client will use WiFi to communicate with the local server, and because I want the application to be able to be able to work without configuring IP addresses, I want to use UDP Broadcast messaging from the server to the client. There will be no need for messages to flow in the reverse direction. So, the client simply receives UDP messages, but does not communicate to the server.
## Deliverables
The Wifi mode can be either Ad-Hoc or Infrastructure mode. In Ad-Hoc mode, the remote access point will not have access to the Internet. In Infrastructure mode, the remote access point may have access to the Internet (and may not).
When specific data is received on a UDP, Broadcast, listener socket, the application must snap a photo using the iPhone camera. (If not equipped with a camera, an error must be provided and the app must not start).
The picture must be stored within a local library and be able to be uploaded Facebook page along with metadata describing the photo, part of which is provided via the socket notification and part of which is provided via an app config menu. The upload feature must allow the user to select which pictures/metadata are uploaded.
Within the app config menu, there will need to be parameters which allow the app to be configured to send to a specific Facebook page. For example, there would be a mechanism to easily associate the necessary Facebook API keys for the associated page, or there might be other more direct methods for posting photos to Facebook (e.g. through e-mail).
There must be a mechanism which allows the user to set a maximum number of pictures to be retained on the iPhone/iPad.
There must be a "slider" which sets a numeric threshold which will be
compared to data received via UDP Broadcast to determine whether to take a photo.
There must be a feature which allows the user to disable the photo taking feature but still record the data received via UDP Broadcast. The user should be able to see a list of data along with the date and time the data was received. Please note that this may be the same list as is used for reviewing the pictures. That is, the data in the list is the same as the metadata associated with each picture and which would be available when the user looks through the photos while selecting them for Facebook.
Please ask any questions you might have, so that the project becomes very clear to you so that you can provide an accurate quotation.
I believe these are the screens required.
1.) Splash
2.) Main Screen with navigation to
a.) Photo Library
b.) Administration
c.) Start App
3.) Administration with return button to main screen.
Set up of which facebook account to send to
Set up of threshold level at which to record event (integer based slider)
Set up maximum photos to be stored.
Allow the user to specify whether measurements are in metric or standard units.
Ability to disable the camera. Just events are recorded in this setting.
4.) Event list (with and without pictures)
Ability to select one or more photos and post them to the facebook page configured in Admin
5.) App screen where the camera is active. Button provided for navigation to main screen.
The app must listen for UDP broadcast messaging. A very simple message format will be provided. In the message will be a key value pair. The key value will be an integer value. If the value is greater than or equal to the threshold set by the user then the event must be recorded. If the user has enabled the camera, then a picture is associated with this data as well.
If possible, there should also be an "auto-post" feature (in the administration screen) which uses the cell phone radio to post to Facebook while the Wifi radio is utilized to listen for UDP Broadcast traffic.