Designing and Developing aTravel-Based Android ApplicationA Major Qualifying Project Report:submitted to the Facultyof theWORCESTER POLYTECHNIC INSTITUTEin partial fulfillment of the requirements for theDegree of Bachelor of SciencebyKevin HufnagleDate: May 6, 2014Approved:Professor Emmanuel Agu, Project Co-AdvisorProfessor Jennifer deWinter, Project Co-AdvisorThis report represents the work of one of more WPI undergraduate students submitted to thefaculty as evidence of a completion of a degree requirement. WPI routinely publishes thesereports on its website without editorial or peer review. For more information about the projectsprogram at WPI, see learning.html
iiAbstractMany people in North America enjoy capturing the visual, historical, and experiential contextsthat landmarks offer as they travel. These individuals, however, use disjoint resources to plantrips, reducing the quality of the narrative experience they receive when visiting a place. Tofacilitate the narrativization of a place and create a shared experience of that place, I created anAndroid smartphone application, which allows users to explore basic facts, photographs,historical details, and travelers’ experiences regarding New England’s 117 coastal lighthouses. Ideveloped three image-processing algorithms to serve as photograph filters and conducted twosurveys and five usability studies to inform my iterative, audience-involved application design.
iiiAcknowledgments First and foremost, I thank my two project advisors, Jennifer deWinter and EmmanuelAgu, for their continuous support and dedication towards this project. Jay Hyland of the Lighthouse Preservation Society provided key background informationabout New England lighthouses in general and an avenue for distributing surveys tomembers of the society. Ryan Avery from Cape Neddick (“Nubble”) Lighthouse deserves a special mention forhelping me collect pre-design survey responses. I am also grateful for Ryan Avery, Bob Gallagher from Old Scituate Light, FranceneWebster from Highland (“Cape Cod”) Lighthouse, and Sarah Mumford and KeithSisterson from Nauset Light for allowing me to use the grounds by their lighthouses toconduct my usability studies. Jeremy D’Entremont kindly permitted me to include information from his book andwebsite within my app. Finally, I’d like to thank my family for their personal support throughout this projectexperience.
ivTable of ContentsAcknowledgments. iiiList of Tables . viList of Figures . vii22.214.171.124.Introducing an Application that Offers Mobile Traveling Experience . 11.1.Why Humans Enjoy Travel-Based Experiences . 11.2.Android Smartphone Use Continues to Grow Quickly. 31.3.Computers Do Not (Yet) Satisfy Expectations Regarding Digital Image Processing . 61.4.Challenges Associated with Current Options Available . 81.5.Addressing These Challenges: Creating the Lighthouse Navigator Application . 91.6.Overview of Report’s Contents . 11Presenting Current Applications, Theoretical Foundation for Work . 122.1.Current Websites Each Offer Narrow Scope of Travel-Based Information . 122.2.Existing Smartphone Applications Combine to Form Narrative Space . 262.3.Key Research Involving Images and Image-Processing Algorithms . 372.4.Space and Place: Embedded Comfort Within the Unknown . 49Designing a Compelling Lighthouse Portal Using Audience Feedback . 523.1.Android Design Guidelines Stress Simplicity, Usability . 523.2.Design Paradigms . 563.3.Guiding Users through the Application’s Different Screens . 593.4.Improving Design using Iterative, Audience-Based Process . 723.5.Designing Universally Effective Application Involves Consideration of Market . 793.6.Presenting the Modular Structure of the Android and Image-Processing Projects . 81Structure and Strategies for Implementing Application . 854.1.Preparing Development Environment: Eclipse and ADT . 854.2.Presenting an Overview of Lighthouse Navigator Application . 864.3.Using Existing Data Structures and Packages to Enhance Application Efficiency . 934.4.Creating New Data Structures for Organizing Run-Time Application Data . 964.5.Using Flickr’s API and Android Multithreading to Download Photographs . 1084.6.Creating a Flexible Back End: XML File and Photograph Cache . 113
v126.96.36.199.7.Constructing Image Processing Algorithms with ImageJ . 1154.8.Preparing Image-Processing Algorithms for Testing . 125Reflecting on Algorithm Performance and Application Usability . 1275.1.Findings from Image-Processing Algorithm Testing . 1275.2.Presenting User-Friendly Elements in Mobile Application Increases its Appeal . 137Reflecting on the Project’s Takeaways and Future Trajectories . 1426.1.Application Attained Usability Goal, but Cross-Cultural Narratives Tough to Create 1426.2.Image-Processing Algorithms Achieved High Accuracy, but Tough to Generalize . 1436.3.Completing App Functionality, Adding Filters, Investigating Simulacra in Future . 144References . 146Appendix A:Instructions for Installing Project Files (README). A-1Appendix B:Version History . A-6Appendix C:Interview with Jay Hyland . A-8Appendix D:Survey for Visitors of Cape Neddick Lighthouse . A-12Appendix E:Survey for Lighthouse Preservation Society Members . A-18Appendix F:Usability Study Materials . A-22
viList of TablesTable 1-1. Distribution of Existing Android Devices by Operating System Version. (Accurate asof May 1, 2014). 6Table 1-2. Distribution of Existing Android Devices by Screen Density. 7Table 2-1. Primary and Secondary Categories of Information on Travel- and Experience-BasedWebsites . 12Table 2-2. Existing smartphone applications featuring specific points of interest. . 27Table 4-1. Naming Convention of Lighthouse Photographs Appearing within “Drawable”Resource Folder. . 89Table 4-2. Structure of URLs for Travel Experience Websites Featuring Lighthouses. . 101Table 4-3. Descriptions of Enumerated Lists within Application. . 102Table 4-4. Process of Transforming Test Image used in Shape-Based Feature-MatchingAlgorithm. . 124
viiList of FiguresFigure 2-1. Flickr's user-level advanced search lacks location-based filtering. . 14Figure 2-2. “Search the map” button unnecessarily hidden within Flickr world map. . 16Figure 2-3. Sample Search Results Page on Panoramio . 17Figure 2-4. Viewing location information, photographs, and user experiences for a point ofinterest on Yelp. . 19Figure 2-5. Viewing location information, photographs, and user experiences for a point ofinterest on TripAdvisor. . 21Figure 2-7. Filtering Options within Cowbird. . 23Figure 2-7. Story about a Lighthouse on Cowbird. . 24Figure 2-9. Log book entries and image gallery for the “Fundy Tides” geocache on Geocaching. 26Figure 2-9. Sample location listing in Boston City Guide application. . 29Figure 2-10. Sample itinerary in Boston City Guide application. . 29Figure 2-13. Sample location listing in New York City – Everything NYC. . 31Figure 2-12. First screen of main dashboard within New York City – Everything NYC. . 31Figure 2-14. Sample grayscale image and its corresponding histogram. . 38Figure 2-15. Sample grayscale image with its corresponding cumulative histogram. . 39Figure 2-16. The general histogram matching algorithm: Mapping cumulative histogramintensity values. 42Figure 2-17. Discretization of the general histogram matching algorithm: “stacking” intensityvalue “blocks” from the original image onto the reference image. . 43Figure 2-18. Approximation of Distances from a Pixel to Its 8-Connected Neighbors (3 3). 46Figure 2-19. Approximation of Distance from a Pixel to Its Nearest 24 Neighbors (5 5). . 47Figure 3-1. Multiple Elements within “Information” and “Photographs” Screens withinApplication. . 54Figure 3-2. Areas of Screens Affording Real-Time User Interaction. . 55Figure 3-3. Relationships among Artifacts and Ideas while Using Audience-InvolvedCommunication. . 58Figure 3-4. Relationship among Screens within Application. . 59Figure 3-5. Final Design of “Welcome” Screen within Application. . 60Figure 3-6. Final Design of “Search Results” Screen within Application . 61Figure 3-7. Final Design of “Information” Screen within Application . 63Figure 3-8. Final Design of “Photographs” Screen within Application. . 66Figure 3-9. Final Design of “History” Screen within Application. . 69Figure 3-10. Final Design of “Reviews” Screen within Application. 71Figure 3-11. Application Design Process. . 73Figure 3-12. Initial Design of “Welcome” Screen within Application. . 75Figure 3-13. Initial Design of "Photographs" Screen within Application. . 76Figure 3-14. Class Diagram for Lighthouse Navigator User Interface Screens. . 82
viiiFigure 3-15. Class Diagram for Lighthouse Navigator Data Structures. . 82Figure 3-16. Class Diagram for Lighthouse Navigator Utility Classes. . 83Figure 3-17. Class Diagram of Lighthouse Navigator Interface Adapters. . 84Figure 3-18. Class Diagram of Image-Processing Algorithm Logic Classes. . 84Figure 4-1. Structure of query to Flickr’s API for retrieving geotagged, . 110Figure 4-2. Excerpt of sample geotagged photograph response from Flickr’s API. . 111Figure 4-3. Sample Distribution of Pixels across Several Sub-Images. . 119Figure 5-1. Effects of Image Decomposition, Percentage Inclusion on Algorithm Accuracy. . 129Figure 5-2. Effects of Sub-Image Complexity on Ima