Last January we released a mobile app for the Cornell Alumni Leadership Conference that was extremely well received by alumni and staff alike. The app (CALC 2012 iOS | CALC 2012 Android | CALC 2012 Mobile Web) featured the conference schedule, session surveys, attendee listing, and "the Stream" - an aggregation of tweets and attendee-shared messages in one consolidated conversation view. The app was heavily used by about a third of the attendees.
The 2013 version of the app was designed to meet three major objectives: integrate with registration, improve responsiveness, and overhaul the user interface. Here are the resulting apps: CALC 2013 iOS | CALC 2013 Android | CALC 2013 Mobile Web.
Integration with Harris Connect
Last year we employed the usual lowest common denominator approach to integration: spreadsheets. That introduced a whole host of issues including timeliness of data, proper formatting of the sheet itself, and adding another human to the data transfer process. We knew we had to do better this year because we really wanted to highlight the sessions that people had registered for in the conference agenda. Extracting relational information like that in spreadsheet form wasn't going to end well.
Cornell uses the Harris Connect system for their alumni online community and event management needs. Recently Harris annouced beta availability of their OpenAPI that would allow us to get access to the registration data automatically. A "beta" label doesn't scare us, so we plowed right ahead with it thanks to the help of the ever-awesome Kim Barrett (Cornell Connect project manager), Eric Slosson (Harris Client Relations Manager), and Irwin Horowitz (Harris Technical Architect).
Much to our delight the API allows us to retrieve the data in XML or JSON format - JSON please! A couple quick hours of work and we we're all set. The process of loading and checking the attendee and schedule data went from several hours to just a couple minutes, eliminating all timeliness, formatting, and human factors in the process. Now that we have the integration components built we can very quickly build mobile apps for other Cornell (and other Harris user) events very quickly (and cost effectively)!
What did we do with this data? The app has a session bookmarking feature that we were able to preload for every attendee. We used those bookmarks to also show the next session the attendee was scheduled to attend on the home screen of the app.
Improve Responsiveness
The CALC app caches a lot of data locally so that key information is accessible to the attendee no matter what kind of data coverage the event venue has. This approach requires us to think carefully about how we load, store, and refresh that data on the device.
One thing we are never particularly happy about is any noticeable delay between user interaction and an update on the screen. We use PhoneGap and jQuery Mobile for our applications, which means our apps are essentially browser-based within a native wrapper. As a consequence, we're heavily dependent on the performance of the mobile device browser and its javascript engine. We invested a considerable amount of research time testing and timing several possible solutions for the "touch delay" on both old and new devices on both Android and iOS. In addition, we reevaluated the use of jQuery Mobile (which survived the cut!) and our client-side templating solution (which was moved from the comatose jQuery Templates project to Handlebars). Adam also built a much improved read-through cache mechanism reducing both data traffic (good for battery life) and rendering time. The result was a much faster appliation that felt closer to native than the 2012 edition - with the added benefit of being supported by a cleaner, more modular codebase.
Overhaul the Interface
Last but certainly not least we wanted to break free of the stock-standard "this is supposed to look like an iOS application" default look and feel that jQuery Mobile provides out of the box. From the first sketch to the final implementation we wanted to make the first screen to be both useful for information delivery and simple to "fat finger" your way around.
We also dropped most of the jQuery Mobile list views and replaced them with leaner, meaner HTML and CSS, wrapped in the really nice pull-to-refresh iscroll plugin. Not only was this a nice usability improvement, but it also gave us better rendering performance.
In Conclusion...
We met the three objectives, building a much-improved core under a better performing user interface that was used by even more attendees than last year. Our admin dashboard told us so in real time!