Track My Travels

Android application

Design
Mobile Application
Android Studio
Developer

Summary

The ‘Track my Travel’ is an application will allow users to assist them with there travels. The idea behind this application is to assist and use it as a travel log, making it useful for travellers and bloggers who would like to track all the places they have been without taking too much time.  Therefore having an application to track and assist travel will be beneficial for a lot people including bloggers, reporters and travellers.

Role

Solo project; UX Designer and developer

Duration

November 2017 - December 2017

IDEA & CONCEPT

The ‘Track my Travel’ is an application that will allow users to assist them with there travels. The idea  behind this application is to assist and use it as a travel log, making it useful for travellers and bloggers  who would like to track all the places they have been without taking too much time. As “there has been  a large increase in the number of people out on tours…Tourism is the strongest and largest industry in  the global economy world, generating an estimated 11% of the global gross domestic product (GDP).” (Jinendra et al., 2012) Therefore having an application to track and assist travel will be beneficial for a  lot people including bloggers, reporters and tourists. 

The application will allow users to find their current location, and add it to a locally stored database. Users adding their location allows them to look back at all the places they have been. Having a simple  application to add the user’s location immediately and quickly is important as according to “researchers  often relied upon telephones, pagers, beepers or alarm clocks to either remind participants to keep a  diary of the studied events or signal participants to answer a set of questions on a pre-designed  questionnaire booklet ... The timeline of reminders and signals were often randomly scheduled and  rarely occurred at the times they supposed to occur, i.e., immediately after the study event.” (Fan et al.,  2012) Meaning that more data is easily collected during or right after the event. 

Track my travels - App screenshot

Users are also able to find their next location, by using the Google picker, allowing them to find shops  and restaurants of their choice. Once a chosen location of their choice has been chosen an address will  be displayed so the user is able to look back at this address.  

Another feature on the application is the ability to take photos which are then automatically saved on to  the gallery. Once the perfect photo has been taken it can be shared with friends and family using one of  the many different sharing applications. This includes Google+, Facebook, email and many more.  Sharing images with friends and family is a key feature as a the study by Kang and Schuett shows “that  identification and inter-nalization are critical determinants that positively increase actual travel experience sharing on social media as mediated by perceived enjoyment.” (Kang and Schuett, 2013) 

Apart from this the user is able to access a database list with a list of all the cities from https://datahub.io/core/world-cities . Therefore, finding new cities they can go to.  Once a chosen location has been found they are able to book flights, restaurants and accommodation on the Trip Advisor website using the the link provided. “TripAdvisor is a website based on the idea that travelers rely on other travelers’ reviews to plan their trips, or at least can be satisfactorily helped in their decisions by them. Presently TripAdvisor contains 10 million travel reviews and opinions and written by 5 million registered members and counts 25 million visitors per month” and “ currently covers 212000 hotels, over 30000 destinations, and 74 000 attractions worldwide”. (Miguéns, Baggio and Costa, 2008)


WIREFRAME

Track my travels - Wireframe


IMPLEMENTATION 

To create this application, I used Android Studio 2.3.3 with a SDK target version of 23. Therefore, when testing the application, I am able to test this on a mobile device rather than on the emulator. This  is because there will be issues when opening the camera when running on the emulator.  

One of the main parts of the application is to be able to find your current location and add it to a list,  which you can access. To be able to find the users location, ‘ACCESS_FINE_LOCATION’ and  ‘ACCESS_COARSE_LOCATION’ permissions is required. When asking for fine location it will give permission to use the GPS and Network provider to determine the position, while coarse location only  provides permission from the network however it provides a less accurate result than fine location.  Therefore, within the ‘Track my Travel’ application if no network is found it will just use the GPS to  find an approximation of location by fetching the latitude and longitude coordinates. And when both  GPS and network based connection is connected, it will allow a more precise location.  

The problem when developing this, the user had to exit the application to then open Google Maps to  find the users current location. To resolve this, I added a function which opened google maps every  time the user wanted to get their location. This enables them to look at their current location on the  map, to make sure it is correct. Once they are happy with this, they are able to go back, and the users  location information will be updated on the application.  

Once the coordinates are found a geocoder class is needed to translate the latitude and longitude value  into an address using ‘reverse geocoding’. This can be done by using the ‘Geocoder’ class within the  ‘android.location’ package. This is a backend service which is not included in the Android framework.   Another dangerous permission added within the application is to give access to the camera, allowing  users to capture pictures which will display within the application using Image View. These photos then  can be shared with friends and family. It is important to ask for permissions as it contains sensitive information. 

When opening activities such as TripAdvisor and Place Picker within the Location Information  Activity. A network connection will be checked using ‘ACCESS_WIFI_STATE’ and  ‘ACCESS_NETWORK_STATE’. TripAdvisor accesses information from a website, and place picker is a Google API that will require access to search for nearby locations which will then display an  address. Checking this is important to because if users tries to access these feature without the network,  it will not work. Therefore, as a prevention I have added error messages to appear, to make sure the user turns on the network connection before accessing it. When doing this I had to consider how to  present these error messages. I decided to go for an Alert message box errors as this will be unmissable  and the user must read it before continuing, it also contains information why they are unable to access  certain activity’s. If the connection is successful a Toasty message will appear at the bottom of the  application which uses a third-party library, the reason for this third-party library is so that it is more  user friendly and makes the message it easier to view. The reason I have chosen a Toasty message not is  that because it is already successful therefore the user does not need to do anything, therefore having a  suitable message at the bottom is enough. 

Track my travels 1

Having these error handling is important to avoid errors within the application, and to make sure the  user is aware why certain parts of the activity is not working, I have also used error handling when asking  for permissions.  

Track my travels - Error handling

A core part of the application is having a database storing all the places, date and time the user  has been at what specific time. This is so users are able to look at this information and recall where and  when they have been to which specific place. The reason I have chosen to store data using SQLite, so  users are able to store and remove information logically. It stores structured data within a private database and is stored within the application and not in the internal or external storage of the device.  Meaning that the database is only accessible within the application. As it is not stored within the network  server it means that users are able to access the database without having access to network. It requires an  ‘andoird.database.sqlite’ API package. The reason for this it is lightweight and can store a lot of data.  The difficulties with SQLite is if the user would like to access this information or database outside the  application it would be very difficult.  

Another storage method within the application is saving the images to the gallery. This saves images  internally within the device, so that users are also able to share these images with their friends. Having  images saved on the device allows the user to access these whenever they would like. The reason that I  have chosen to save the images to the gallery is because this is an application which you can not  uninstall. Which is important as pictures of memories should not be removed. 

Track my travels 2

Within the application there is also list of cities, to be able to do this I had to look for a database  containing all of this information (https://datahub.io/core/world-cities). This data is a JSON file, which is  an alternative method to XML as it is used to transmit data between a web application and a server.  Therefore, to display all this data I had to use parse JSON data and display it with the application. At  first this was displayed as a text view, to present this better I have chosen to display the city name, sub country and country information. However as there is a lot of data, I have decided to place a search  button so that users are able to filter information easier. However, to improve this in the future I can  also add a sorting or filtering method to find specific cities. Another additional feature that can be added  is adding a tick list for each city, so that users are able to select which cities they have been to.  Therefore, allowing them to keep track of which cities they have and have not been to. *Fan, Y. et al. (2012) ‘Smartphone-Based Travel Experience Sampling and Behavior Intervention among  Young Adults’, Security. Available at: http://conservancy.umn.edu/handle/11299/132726. 

Jinendra, D. et al. (2012) ‘Smart Travel Guide: Application for Android Mobile’, Special Issue of  International Journal of electronics Communication & Soft Computing Science & Engineering, pp.  115–120. 

Kang, M. and Schuett, M. A. (2013) ‘Determinants of Sharing Travel Experiences in Social Media’,  Journal of Travel and Tourism Marketing, 30(1–2), pp. 93–107. doi: 10.1080/10548408.2013.751237. 

Miguéns, J., Baggio, R. and Costa, C. (2008) ‘Social media and Tourism Destinations: TripAdvisor  Case Study’, Advances in Tourism Research, 26(28), pp. 26–28. doi: 10.1088/1751-8113/44/8/085201*


DEMO


OUTCOMES

Learnt knowledge in the specification and development of connected ‘data-driven’ mobile applications, using industry standard tools and guidelines. Mobile device platforms – smartphones - provide a rich development experience with direct access to a number of pervasive sensors such as GPS, camera, proximity, NFC and multiple network connectivity channels. These sensors are used as building blocks for lifestyle-supporting mobile applications in areas such as health, fitness, social, science, and entertainment. Such applications are now seen as part of the everyday fabric of life. Able to develop topically-themed native mobile applications that consume RESTful web services. Data privacy and security issues are discussed throughout the module.

i) Theory

  • Able to design according to specification guidelines for applications on resource constrained mobile devices; 
  • Understanding the ethical, privacy, and security implications of mobile application data stored locally and online; 

-Able to critically assess the impact of mobile and pervasive computing technologies upon society

  • Able to specify and implement mobile applications utilising industry standard tools and technologies

ii) Development 

  • Able to develop a native mobile applications based on a topical theme 
  • Able to connect RESTful web services to consume and display data, that consumes industry standard web data formats
  • Able to implement suitable mobile data storage techniques