Introduction:
Add a location (GPS) background service to an existing iPhone application based on Phonegap. The application should begin by starting the background service for tracking. The service must stay active when the application is put in the background or goes to sleep. The service should communicate to the Phonegap layer with a Phonegap plugin.
Milestone #1 : Acceptance criteria
- [ ] deliverable zip/tarball with Xcode project that compiles on iOS 4.3
- [ ] code linked to library phonegap-1.0
- [ ] the code starts a subclass of PhoneGapDelegate to be written
- [ ] the code starts a location (GPS) background service written
in Obj-C
- [ ] the code starts also a custom PhoneGap plugin to be written
- [ ] the application GUI displays a normal PhoneGap-based
JavaScript
- [ ] the GUI has two buttons to start and stop the background
service and a counter display
- [ ] the communication channel in the code is as follows : (Application GUI in JS) <=> (PhoneGap Plugin) <=> (Background service in Obj-C)
- [ ] the code detects if the background service is already running and reports on the console: yes/no
case 1) service not yet running:
- [ ] if not yet running, the code starts a location (GPS) background service written in Obj-C
- [ ] the location background service must comply with Apple iOS rules describe here : [login to view URL]
- [ ] the background service notifies it is starting with a message at startup but does not collect data yet : "Background service started"
- [ ] when the user clicks on 'Start' , the background service is notified through the plugin and the service starts counting
- [ ] the background service increases an internal counter every 5 seconds
- [ ] the GUI displays the value of the counter regularly by polling the Plugin
- [ ] when the user puts the application to sleep or when it goes to sleeps naturally , the background service keeps ticking (<== this is the most important feature)
case 2) service is already running
- [ ] the graphical interface asks the service the latest value of the counter and displays it
- [ ] when the user clicks on 'Stop', the background service is notified and stops increasing its counter
Example:
- User starts the application
- User clicks on 'Start'
- Counter displays 1,2,3,4
- User presses power button and wait 30 seconds
- User wakes up the phone
- Start button is disabled because service is already running
- Counter displays 10,11,12...
Milestone final : Acceptance criteria
- [ ] instead of ticking a counter every 5 seconds, the background service is collecting the GPS location every 20 seconds
- [ ] the background service stores the GPS locations and timestamps in a local sqlite db
- [ ] the start/stop callbacks communicate to the custom PhoneGap plugin to start/stop the GPS collection
- [ ] when the application is put to sleep the underlying service keeps collecting GPS data
- [ ] when the user returns to the app, the status of the number of points collected is displayed
- [ ] the application GUI dsplays a simple counter of the total number of GPS records collected and the coordinates+ timestamp of the last record
- [ ] the application GUI reports the quality of the GPS signal by polling the Plugin
dear sir, we can really intrested in ur project and we ensurred you we can provide you world class project in a very
short period. pls see the pmb. thanks