CS595 – APPLICATION DEVELOPMENT FOR MOBILE DEVICES PROJECT ASSIGNMENT FINAL REPORT PRESENTED BY THE DROID GEEKS ASHOK KUMAR JONNALAGADDA R. J. LEWIS III DESCRIPTION Team Droid Geeks has assisted the Old Dominion University (ODU) Center for Learning and Teaching (CLT) in achieving a long-desired goal. We have developed a collaborative, mobile-based application centered on the faculty and staff of ODU. The application allows the audience to fully engage CLT tools and resources from a mobile platform. The mobile application we’ve developed has helped to bring the CLT program into the mobile-age and gives CLT a solid foundation on which to further develop their mobile-accessible package. MOTIVATION CLT has expressed specific interest in having a product such as this. The CLT mission statement includes goals for the past academic year. Item number five directly calls out their wishes for integration of mobile devices. The goal reads: “Share, research, evaluate, demonstrate, and integrate appropriate technologies such as: o Mobile devices (iPads, iPhones, etc.) o 3D environments o Social media applications” We received verbal confirmation that this same goal had been carried over into the present academic year and was still strongly desired. Our group, coupled with the first offering of this course, left us perfectly poised to assist CLT in realizing their goal. Ashok Jonnalagadda has intimate knowledge of CLT and brought a wealth of information to the team. He understands much of the desire CLT holds for their mobile application and he understands a good amount of the business logic employed by CLT. We felt this to be an exciting opportunity to provide a very useful application to the faculty and staff community of Old Dominion University and one which, at first indirectly, benefits the students. Personally, we are grateful for the opportunity to provide a professional, desired application to the university. It is also nice to know that we left something behind which can be further developed and benefited from; a legacy, so to speak. 2 COMPONENT The application, titled “Faculty Development,” is comprised of three main intellectual divisions. These are an events section, a calendar area and a user account area. Support for TeachBank and CLTspecific tutorials was also incorporated. The events section allows the application user to list, view and subscribe to all available CLT events. An event represents a lecture or presentation sanctioned by CLT. The event list summary is searchable and is divided into categories for easy discovery. An event may be selected to display its full details including the event time and location, the method of delivery, a description of the event and other pertinent information. The full detail screen provides the user with the ability to email a question about the event directly to CLT support staff and to add the event to the user’s registration queue. Once in the registration queue, all events are easily bulk-registered using one button and by providing confirmation of the intent. Events are easily removed from the registration queue and from the registered queue (once the user has registered the event). An application-specific calendar is provided which emulates the native iOS calendar as closely as possible. The calendar is populated with the available events and events may be viewed directly from within the calendar. It is not possible to allow the application to directly manipulate the native calendar and, therefore, we had to create our own. The application provides a synchronization feature which coordinates scheduled items between the application calendar and the native calendar. This allows the user to be notified of their registered events via the native calendar. The user account area, “myDev,” allows the user to review their registered events categorized as current or future events and as those which have already occurred. Clicking an event in either section takes the user to a content page for the event. The content page allows the user to play audio streams or audio/video streams for the event. An in-progress event will take the user to a live feed of the event and a past event will allow access to recorded content, if available. CLT provides a service called TeachBank. This service is utilized in support of content availability for CLT events. TeachBank allows presenters to request a live broadcast and/or recording of their presentation. They may also utilize the service to request feedback and visit other “classrooms” within TeachBank. Many of the services provided by TeachBank are requested via form submission. CLT has asked us to implement the forms into their mobile application. This feature has been incorporated into the application, albeit there is some work left to be completed. CLT requested that the application provide access to the CLT tutorials. Currently, this section of the application simply takes the user to the existing website for CLT tutorials. Future designs will provide a more native approach to providing the same tutorial content via the mobile device. 3 ASSIGNMENT The task assignments changed quite a bit over development of the application. This was due to requests by CLT to add certain functional elements while removing others. We tried our best to stick with the original plan of attack and simply took on the changes as they were relayed to us. Ashok worked primarily on the framework of the application and conceptualized the overall design. He also developed the application calendar and its synchronization feature, produced the TeachBank feature and worked on the back end (database and PHP database interface). R. J. worked primarily on the event display and event registration features. He also worked on the stream integration (both audio and video) and also worked on the back end. LESSONS LEARNED One great issue we faced was the inability to directly manipulate the native, iOS calendar from our application. This is a security feature of iOS which we just weren’t able to implement. As a solution, we developed an application-specific calendar which very closely resembles the native calendar. The application calendar allows us to represent available events in a calendar format from which the user can intuitively view and select events. Registered events, of course, had to be synchronized with the native calendar and so we developed an automated synchronization feature which allowed us to reflect these scheduled items on the native calendar of the device. We expected Single Sign-On (SSO) with Shibboleth to be much more straight-forward than it was. We failed to realize the security implementations in allowing student developers access to the Shibboleth SSO system in order to validate authentications. Once we dug into the matter, we could appreciate the security-mindedness of the Shibboleth administrators, but this caused headache for us as developers. A formal request from CLT must be made in order to implement the SSO functionality. Once CLT feels the application is mature enough to release, this request will be made and the SSO objective can be incorporated into the application. A final, major lesson learned was, like the SSO issue, more on the project management side of software development. We began developing features which we felt would be beneficial to the application, only to find out CLT did not wish for such features to be implemented. We were asked to withhold the mapping/navigation functionality and the post-and-reply message feature which would allow collaboration within the CLT network. Luckily we had not yet started the mapping/navigation section, but we had begun work on the messaging function. This feature was relegated to a simple “send email” button within the full-details screen of an event as per CLT’s guidelines. 4 FUTURE WORK As CLT continues to build and grow, we expect them to move much of their content into a mobile-accessible format. Currently, only a small subset of what CLT offers easily lends itself to mobile implementation. We are attempting to change this with this first rendition of their application. We hope to see future versions incorporate bi-directional audio and video feeds from the mobile device. We’d also like to be able to incorporate the SSO functionality, minimizing the pain of the login and authentication process. We feel mapping and navigation will be quite handy for the user and hope CLT will reevaluate their decision in regard to this. Short-term future work will be to complete the TeachBank interface. We also wish to finalize the stream access. Currently, this section of the application is being left in a proof-of-concept state while we await file access from CLT. The tutorial section will also need to be implemented with a more native approach. We need to obtain guidance from CLT in determining just how they wish to present the tutorials on the mobile device. 5