Skip to content

DCM14 Mobile App Home

WillieBHines edited this page Mar 14, 2012 · 12 revisions

Project Goals

  1. Easy way to browse the schedule. You pick a stage and you see the list of shows.
  2. It knows what time it is and starts you at the show before that time.
  3. Alternate views of the schedule: by performer, by time (all theaters)

Proposed Features Pending Group Excitement

  1. Shares info anonymously ("This show was bookmarked by X users")
    • BR: We could implement this by using Facebook integration (as opposed to writing our own backend).
    • WH: If we do this, should there be a "most popular shows" page?
  2. Interaction with Google maps? (especially with The Beast it might be helpful.)
    • JR: Or a map this is drawn by a design guy and can be zoomed and pinched, a map where the two locations are highlighted.
    • BR: On iOS, MapKit makes it fairly easy to use Google Maps this way. Probably as easy on Android.

Requirements

  • Doesn't require a network connection: we want this to be usable in the theatre where there's no signal.
    • WH: This might not be realistic. A web app essentially needs a network connection and we should maybe just accept that.
  • Works on iOS (iPhone/iPod touch), nice if it also works on Android.
    • WH: If it IS a web app, it seems that working on Android should be very do-able?

Architecture

DCM14 Mobile Architecture

DCM JSON Application

The DCM web server should generate a big JSON file containing all the schedule information in a standard format. All clients can grab the file and use it to populate their internal databases. Since the file will rarely change, it doesn't need to do this dynamically; it can just dump the file somewhere and let the web server send it out.

  • WH: I would like to do this (to be in charge of having the json file and accompanying hash exist). I think it is not that hard to do, and is a small file even if it's NOT compressed in any way. I think we don't need CRON -- generating the file can be manually generated by DCM web admins (me, Frusciante).

For example:

  • Operator pushes "Update Mobile Schedule" button on the DCM admin website.
  • The PHP code generates "schedule.json" in [a format we agree on](Schedule JSON Format).
  • The PHP code also generates "schedule.md5" which contains the MD5 hash of the schedule.json file.
  • On first launch, a mobile app will download both files. It will remember the hash.
  • Periodically, it will download the schedule.md5 file.
    • If the hash has changed, it will re-download the schedule.
    • If not, it won't do anything at all.
  • BONUS: Make sure schedule.json is gzipped and Apache is configured properly to save on bandwidth.

Lessons Learned From Last Year

  • It was a success.
  • Don't use JQuery Mobile.
  • Off-line access didn't really work. You had to (in Will Hines' experience) open it while you had a connection and keep it open. Might be the way it goes, but that was frustrating while in Chelsea.
  • Question: how could the web site be more of a help? Some link that returns the needed JSON info with stuff already stripped out and such?
    • JR: YES, We wanted to do this last year but just didn't have the time.

Useful Resources

Moved to [Useful Resources](Useful Resources).