In this project, location tracking and logging module of an iOS trip/mileage tracking app needs to be coded using a Swift library similar to - [url removed, login to view] Most of the UI/Ux of the app is already implemented so this project is mainly coding of a background task/service. The trip data needs to be in GPX format and needs to be stored in a couchbase lite/mobile database on the device.
Following are the milestones:
Milestone 1: Init (150$)
Milestone 2: (150$)
1) When tracking is turned on (trip is started), frequently, periodically log GPS location-stamps/waypoints as part of a trip. Battery drain and accuracy should be of prime concern while implementing the tracking module.
2) Populate/Interface the already-implemented navigation view with the live navigation trail.
3) Handle background execution so that trip tracking can continue even when the app is backgrounded and/or suspended.
4) The last waypoint of the latest completed trip should become the “parked location of the car”. When in the parked state “user’s current location” and the car’s “parked location” should be displayed on the map on home screen.
Milestone 2: (150$)
5) When the trip ends, convert the list/array of trip waypoints to GPX format, reduce/compress the GPX and save in the couchbase lite document (trip). Completed trips should be stored and visible in the past-trips table view, and the GPX should be visible on the mapview of the trip-detail view.
6) Reverse-geocode the starting and end location waypoints to respective "address strings".
7) Handle killing (forced-quit) of the app: ongoing trip tracking should be completed and saved to couch-base.
8) On force quit, locally notify the user to relaunch the app.
Milestone 3: (250$)
Testing and bug fixing including any changes needed.
Standard coding practices need to be followed with rich code documentation and testing.
1) Entire source code will need to be submitted via private bitbucket repository
2) The app should be compiled and submitted to the iTunes TestFlight platform so that testers can download and test.