Gantt Chart:
Accomplished:
Backend Work:
- Implemented Google SignIn with existing GhostRide server code
- Can once again upload and race routes using improved logic
- now stores additional data about specific routes (description, start end location, dates)
General Programming Stuff:
- Implemented Apple’s MapKit over Mapbox because its more robust API allows for complex map animations
- Downside: Not as geographically robust or open sourced like MapBox
- Implemented Singleton Design patterns for userLocation and userLogin which results in a cleaner, more efficient program flow that is less likely to break.
- Rewrote pretty much entire app for stability reasons
- Created classes to handle playback of route data more efficiently as custom map annotations
- Use of libraries SwiftyJSON, Alamofire, help simplify user side decoding and sending to and from the back end servers
- NSNotificationCenter implemented in cases where strong references would cause memory issues, also helps with simplifying class structure for asynchronous tasks (both GPS data and Network data)
- IS IN MOST COMPLETE AND STABLE STATE YET
Profile View:
- Design in flux
- Currently serves as hub for most actions
- Needs back end code to aggregate user activity
- Can get to the most important places from this with the SEGUES implemented to different viewControllers
Route Recording Screen:
- New in this version
- Displays current PACE, DISTANCE and TIME
- Simple UI for use while riding
- Displays map with realtime course drawing as the user moves
- Orientation and user tracker determined by device heading data
Route Uploading Screen:
- New in this version
- Shows previous recording and recap of a recording race
- User can input RACE NAME and RACE DESCRIPTION
- User input data is validated both on the server and in realtime in the app (note the check marks)
- submit button is deactivated when data is invalid
- Note that by default the keyboard will cover textfields so that needed to be animated for usability reasons
Race Selection Screen:
- New in this version
- Maps nearby routes as clickable annotations
- Loads the route lines and zooms map to match their area covered
- gives basic information (DISTANCE TIME DESCRIPTION NAME ROUTER UPLOADER)
- Note the animated info bar which is cool and you should notice it.
- Programmatic Region Changes based on taps
Race Screen:
- Map orientation and Zoom levels are determined by user’s current course
- draws selected race route on map
- populates with custom Icons for the racers (up to 5 colors)
- ANNOTATIONS NOW ANIMATE SMOOTHLY OVER THE MAP IN REAL TIME WITH PACE DATA
- Backend programming of this is clean and will support up to 5 racers (4 RECORDS and USER)
- not fully completed by the backend data is finally prepared
Graphic Design:
- Minor logo changes
- General App design still in flux for usability reasons
- Layout more consistent and user oriented
- Some Basic Icons
Summary:
- Most challenging aspects of application complete , just some final UI work to bring it life (INCLUDING SOUND)
- Wow, I’m great.
Weaknesses:
- First of all: How dare you?
- Behind on promotion and promotional website in lieu of application work. Will be the focus of the final capstone review.
- Wasn’t able to submit it to the app store on time like I wanted to (It still needs to much work, and will certainly need a bunch more after Apple tears it to pieces)