The aim of this project was to improve the user interface of the enviroCar Android client in addition to introducing new functionality to help improve user retention. The user interface is being redesigned to make it more intuitive to use. Additional data that is available in the API is also being used for visualization.
This past few weeks I have worked on the following changes. A more detailed look at the progress can be found by looking at the projects wiki page.
Updating the libraries
There are several external libraries that the project uses and quite a few of them have not been updated to use the latest versions available. I have not updated those libraries that depend on RxJava 2.x. The other libraries, such as Retrofit, Gson, Location-services and ACRA, have been updated to their latest stable versions. These library updates included a few API breaking changes to which I updated the source code.
Creating the Statistics Page
The Android application lacked a page that could display a collection of the user’s track data as a whole rather than individually. This feature is available on the enviroCar web app. There you can compare your average speed, fuel consumption and CO2 production to the community average. This helps add an element of gamification to the app, which has shown to improve user retention.
The first version of the page is ready and I have included screenshots. The details of the user’s last track are displayed on top and are compared to his usual averages for those phenomena. There is a spinner below which currently has three options for the data to be shown in the graph: Number of tracks, distance and average speed. Further changes that will be implemented will be the ability to visualize the data available in the User Statistics API endpoint.
Redesign of the Report Issue Page
A redsign was mentioned in the Project Ideas page for enviroCar. The previous implementation of the page did not provide as much data as possible to the developers. Now, in addition to the message written by the user and the log reports, users are presented with a check list of common issues that could occur such as Forced Crashes and Unresponsive UI as well as conditions like whether Bluetooth or GPS were enabled.
This information is added to the email in the form of tags, which can easily be searched for. This speeds up the bug solving process, since the developers can filter by the type of issue. Details about the app version, the Android version on the phone, including manufacturer and model name have also been added. This helps the developers make faster and better decisions with a new log report. The change has been merged into the project as well.
Implementation of an Onboarding Process
Currently the application does not contain an onboarding process to explain the features available along with an idea of why it exists and what it intends to achieve. This can make it difficult for new users to understand how they can integrate it in their daily lives. I have included a short process consisting of a few screens explaining how the app can collect data that can be used for further analysis on the enviroCar platform. At the end of the process the user is given a choice to sign in/sign up or skip that for now. These screens are subject to change so as to improve the information being displayed, but the code to display it is ready. The Sign In / Sign Up pages have also been changed.
Redesign of the Dashboard
The layout of the Dashboard has been changed to make it look more clean. In addition, if you press either the error message below the icons or the icons themselves they will open up the activity to fix the issue. Previously, if you had clicked the icons due to an error, such as location services being turned off, a dialog box would appear repeating what the error message said below. Now instead it opens up location settings so that the user can turn it on.
I am currently working on adding functionality to the TrackList page, for example including the ability to sort and filter tracks based on the date or the duration of the track. This shall make it easier for the users with a large number of tracks to find a specific track. There is a lot of additional data available that is not being shown in the app. Thus, another important goal is to get more data from the API and present it in the details page for each track.