Currently, the Android application for enviroCar can record tracks only when it is connected to the OBD-II adapter through Bluetooth. The enviroCar app will be of no use to the user, if he/she does not have a working OBD-II adapter or if Bluetooth is not working on the user’s mobile phone. This limits the usage of the app to a great extent. The main goal of this project is to add plain GPS based recording of a track in the enviroCar Android application. This will increase the usability of the enviroCar app and simultaneously increase the collection of data in the enviroCar server, which can be used to analyze traffic. It is also equally important to automate the GPS based track, for which Activity Recognition features can be used.
Another drawback of the mobile application is the outdated UI/UX, which does not follow material design guidelines. This is unpleasant for the user and causes a lower retention rate of the application. For this reason, another aim of the project is to redesign the application and improve the UI/UX as proposed (proposed designs can be found here).
The core tasks and considerations of the first seven weeks of the project period can be summarized as follows:
- Update the libraries used in the repository to the latest versions.
- Change the user interface of the application to ensure that it is following material design guidelines.
- Implement Plain GPS based track recording procedure.
I will give a more detailed description of the project’s status below. A more technical report about the changes in the project can be found at the enviroCar wiki page and its corresponding Github repository.
Update the libraries used in the repository
When development of the app paused in 2016, many of the libraries used were new versions. They are now old versions. Many libraries have since changed their syntaxes and updated the features they provide. As a result, these libraries needed to be updated to the latest version in order to improve the performance of the application. When I started updating a library X, I needed to update another library Y, which has dependency issues with X. Due to these dependency issues, it took a lot of time to understand them properly and update them. One of the most significant updates was the Dagger library for dependency injection. Similarly, Butterknife, Gradle version, targetSdkVersion and all Android Support libraries versions were updated.
Change the user interface of the application
Previously, the application’s user interface was not attractive enough and missed the material design guidelines. It is crucial to have a good UI/UX for the app to increase the retention of the app. At first, I have removed the navigation drawer and introduced a bottom bar for navigation (drawbacks of the navigation drawer are listed here). I have redesigned the dashboard and made it more informative than the previous layout by displaying user statistics in it. I have also redesigned the track recording screen as shown below. Previous notifications were not informative at the time of recording of the track. Now I have made it display distance traveled, time elapsed and average speed in the notification, while track recording is in progress.
Implement Plain GPS based track recording procedure
In the previous version of the enviroCar Android application, the app only recorded tracks when it was connected to the OBD-II adapter through Bluetooth. If the user didn’t have an OBD-II adapter or if the user had a problem connecting to the OBD-II adapter, then he/she could not start recording the track. This limited the usage of the app. If plain GPS based recording is enabled, the user can record the track without the OBD-II adapter. This improves the chances of recording the track, eliminating the limitations speciﬁed above. I have implemented the Plain GPS based track recording procedure and embedded it into the current UI of the application.
Tasks for the next weeks
At present, the plain GPS based track recording procedure is implemented. It is equally important to implement an automatic track recording procedure for recording GPS based tracks. Activity recognition libraries are thought to be used for the automation of collecting GPS based tracks. At first, the most reliable activity recognition library should be selected and a flawless procedure has to be implemented for automated recording of GPS based tracks.