this is an iPhone app.
I have tried to be fairly specific without giving my idea away. The project will be subject to a non-disclosure agreement. I am a software engineer myself, but do not have the time to do this project. I will be requiring code review and complete code ownership at the end of the project. The code has to be written well so that it can be extended at a later date.
This utility application will record motion, balance (accelerometer) & speed (GPS) data for playback and real time display.
App requires 2 display pages and a settings page
page 1: using accelerometer data, this page reports balance of the phone when iphone is moved around. The iphone will be placed flat on a moveable surface when in use. The app needs to show if the phone is tilting to the left or to the right. Also it needs to show front/back balance as well in the same display. The display should be like an “attitude indicator” used on an aircraft ([url removed, login to view]) . The balance needs to be able to be “zeroed” - ie. when the user presses a button, it will set the balance indicators to zero for all directions.
page 2: using GPS / Accelerometer based data, this page shows in real time the current speed and "pace per minute" of the user (which uses accelerometer to recognise each pace), and also distance travelled per pace (ie. [url removed, login to view]). One more configurable piece of data should show at the current speed how long it will take to travel X meters (X is configurable on settings page - for instance, it shows in real time how long it will take to walk 100m or 500m etc - eg. “500m: 5m34sec” ) - this will be called the “split time”
Both pages need the ability to be able to start and stop recording, and in this mode, real time displays are still active, but all data needs to be recorded.
The app can then be set into “playback” mode, where the user can choose a recorded session, and all displays will replay the recorded data. It would be good to be able to skip forward/backwards during playback, and change background colour to denote different mode.
The settings page allows you to change the sensitivity for detecting each pace. Also for page 2, you can choose which fields are displayable: Speed, Paces per Minute, and split time. Either 1, 2 or all three pieces of data can be configured to be displayed on page 2. The data needs to be readable from a distance - so if only 1 data item is configured for display, this should use as much of the display as possible. If there are 2, then half the display per item, etc.
The above should be enough to bid upon. As a software engineer myself, I can create good user stories / requirements for you to use.