GhostRide Milestone Review (March 21st)

Gantt Chart:

GhostRide_march21

 

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
Screen Shot 2016-03-21 at 4.43.49 AM

The most basic breakdown of application flow (looks much simpler than it is).

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:

ghost_ride_logo_large

  • Minor logo changes
  • General App design still in flux for usability reasons
  • Layout more consistent and user oriented
  • Some Basic Icons

      race_start_iconroad_bike_icon_orange

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)

 

Leave a Reply

Your email address will not be published. Required fields are marked *