Insert Here Your Thesis' Task
Total Page:16
File Type:pdf, Size:1020Kb
Insert here your thesis' task. Czech Technical University in Prague Faculty of Information Technology Department of software engineering Master's thesis "Coviator" - application for shared trip planning - OS Android Georgiy Shur Supervisor: Ing. Jiˇr´ıHunka 7th January 2016 Acknowledgements First of all I would like to thank my supervisor Ing. Jiˇr´ıHunka for his patience and valuable advices. Many thanks to everyone on the IT faculty of CTU for sharing their knowledge. Moreover, thanks to all the people who helped me with prototype testing and support me during the writing of this thesis. Declaration I hereby declare that the presented thesis is my own work and that I have cited all sources of information in accordance with the Guideline for adhering to ethical principles when elaborating an academic final thesis. I acknowledge that my thesis is subject to the rights and obligations stip- ulated by the Act No. 121/2000 Coll., the Copyright Act, as amended, in particular that the Czech Technical University in Prague has the right to con- clude a license agreement on the utilization of this thesis as school work under the provisions of Article 60(1) of the Act. In Prague on 7th January 2016 . Czech Technical University in Prague Faculty of Information Technology c 2016 Georgiy Shur. All rights reserved. This thesis is school work as defined by Copyright Act of the Czech Republic. It has been submitted at Czech Technical University in Prague, Faculty of Information Technology. The thesis is protected by the Copyright Act and its usage without author's permission is prohibited (with exceptions defined by the Copyright Act). Citation of this thesis Shur, Georgiy. "Coviator" - application for shared trip planning - OS Android. Master's thesis. Czech Technical University in Prague, Faculty of Information Technology, 2016. Abstrakt Tato diplomov´apr´acepopisuje proces v´yvoje mobiln´ıaplikace pro operaˇcn´ı syst´emAndroid a serverov´eˇcastis datab´az´ı,kter´akomunikuje s mobiln´ımi klienty pomoci REST API. V´ysledkem je funkˇcn´ıaplikace, kter´aposkytuje uˇzivatel˚ummoˇznostpl´anov´an´ıspoleˇcn´ehov´yletus vl´astn´ımim´ısty a navigaci mezi nimi. Tato pr´acese dot´yk´avˇsech krok˚usoftwarov´ehov´yvoje: anal´yzy, n´avrhu, implementace a testov´an´ı. Kl´ıˇcov´aslova Android OS, cestov´an´ı,nativn´ıaplikace Abstract This master's thesis describes the development process of a mobile application for Android OS and the server part with a database that communicates with mobile clients via REST API. The result is the functional app that allows its users to plan a shared trip with custom places and navigate through them. The work touches on all the steps of the software development: analysis, design, implementation and testing. Keywords Android OS, travel, native app ix Contents Introduction 1 1 Research and analysis 3 1.1 Travelers research . 3 1.2 Platform selection . 6 1.3 Existing alternatives . 7 1.4 Requirements specification . 15 2 Design 19 2.1 Use cases and scenarios . 19 2.2 Domain model . 25 2.3 Backend . 27 2.4 Database model . 30 2.5 Activity diagrams . 33 2.6 UI/UX design . 33 3 Implementation 41 3.1 Android client . 41 3.2 Server . 48 4 Testing 51 4.1 Testing by developer . 51 4.2 Usability testing . 51 Conclusion 61 Bibliography 63 A Acronyms 67 B Figures 69 xi C Application screenshots 79 D Contents of enclosed CD 81 xii List of Figures 1.1 Mobile operation systems share among survey respondents . 4 1.2 The most important travel application features among survey re- spondents . 5 1.3 Mobile operation systems share worldwide . 6 1.4 Comparison of iOS and OS Android versions share for August 2014, AppleInsider . 7 1.5 The screenshots of Google Maps . 8 1.6 The screenshots of My Maps . 10 1.7 The screenshots of MAPS.ME . 11 1.8 The screenshots of TripAdvisor . 12 1.9 The screenshots of Tripomatic . 13 1.10 The screenshots of Roadtrippers . 14 2.1 Domain model . 26 2.2 Server database model . 31 2.3 Client database model . 32 3.1 Data loading sequence diagram . 47 B.1 Use case diagram . 70 B.2 Sign in/register activity diagram . 71 B.3 Display data activity diagram . 72 B.4 Create trip activity diagram . 73 B.5 Create place activity diagram . 74 B.6 "Coviator" task graph . 75 B.7 Wireframes, part 1 . 76 B.8 Wireframes, part 2 . 77 xiii List of Tables 1.1 Applications' features comparison . 15 2.1 Functional requirements covered by use cases . 25 xv Introduction The idea of creating suchlike application occurred when I was traveling with my friends. We realized that even with the abundance of mobile and web applications presented in stores, it is quite difficult to find a tool that allows to plan a trip together from different devices, use this plan during travels even offline, and view and share its results in the end. But back then, it was only our humble opinion. The culture of traveling changed a lot during last two decades due to tech- nology advancement. By leaps and bounds Internet displaces television, radio and magazines as a travel information source, especially among young trav- elers. With so much information available, more and more people get used to organize their trips themselves rather than buying tours or packages from travel agencies. Everybody could get any information instantly, if they only had a smart device and Internet connection. GPS navigation allows smart- phone owners to find their location and any places much easier than with paper maps. Transportation, accommodation, bars and restaurants, attrac- tions, shops, excursions, events and just any random locations - all that can be found on the display of your smartphone or tablet. You don't need to use travel agencies anymore if you have a bit of time and savvy. The other thing is, that people not only consume information, they pro- duce it as well. Here comes the social networking. People like to share, and this statement is even stronger in the context of traveling. They share photos, news, locations, reviews. They share where they've been and what they'd like to visit. They are blogging about travels, discuss their experiences and give advices. All these factors led to a rapid growth of the offer and demand of travel applications in mobile stores. There is a big variety of travel apps for different platforms and different purposes, but some of them are too specific, some have poor interface, some are overcomplicated, some, on the contrary, lack functionality. As long as each user has different needs, there is still a lot of opportunities in this field. This work will try to find these opportunities and 1 Introduction realize them in "Coviator", mobile application for shared trip planning. This work consists of four chapters. First chapter is dedicated to analysis and research. In this chapter a little survey will be conducted, then we'll find out the main requirements for the application and analyze the existing alternatives. The architecture of application, communication protocols and user interface will be designed in the second chapter. The third chapter will include server and mobile client implementation details. In the last chapter, we'll try to test the app and apply modifications if needed. 2 Chapter 1 Research and analysis 1.1 Travelers research Before we could come up with goals and requirements and choose platform for application, it's useful to conduct at least a little research among potential users. In our case the potential users are people who travel. First of all we are interested in travelers who own smart devices, but travelers without aforesaid could be our potential users too. It was decided that the most appropriate respondents for this research could be found in travel communities. A little survey was published on several Czech, Russian and English speak- ing travel forums and social network groups. It was consisting of the following questions: • How do you usually plan your trip (look for places to see and then navigate to them)? (open question) • Do you use mobile applications for trip planning and navigation during your travels? (yes/no) • What operation system does your smartphone/tablet use (single choice, response options: iOS, Android, Windows Phone, Other (name)) • What mobile applications do you use? (open question) • What functions are important for you? (multiple choice, response op- tions: Orientation on map, Points of interest (from guides or other users), Custom maps/places, Layers for different types of places, Shared access, Offline map availability, Feedback (photos, reviews, visited/unvisited), Social interaction (be a part of community), Route planning (by foot, car, public transport, etc.), Web version (for planning), Other (name)) • Do you miss something in your applications and would like to add/improve? (open question) 3 1. Research and analysis Figure 1.1: Mobile operation systems share among survey respondents 64 users were participating in this survey. Almost all respondents (91%) use smart devices for their trips. Most of them responded that they use differ- ent Internet resources and guides for trip planning or listen to their friends' or locals' advices. Then they're making a list of places of interest and use Google Maps or another maps, navigation systems or even screenshots in their travels. A few respondents who don't use smart devices answered that they're using printed maps. The most popular operation system among respondents is Android (59%). They're also using iOS (31%), Windows Phone (5%) and some other platforms (5%)(figure 1.1)). According to this survey, the most popular applications are Google Maps and Google Maps Engine. More then a half respondents use at least one of them.