In the past few years, the envirocar app has been enhanced with new features. These features have significantly improved the functionality of the app. My goal is to make sure that all these features are implemented well so that users have a bug free experience.
Goal 1 : Identify and remove deprecated libraries
My first goal was to identify and remove the deprecated libraries along with improving the UI design.
I have updated all the libraries in build.gradle to their latest stable versions (see PR) and also changed the alert dialogs implementation. Dialogs were previously implemented using Materialdialog.builder, which is now deprecated. Therefore, I have replaced it with MaterialAlertDialogBuilder. Along with adapting the newer implementation approach, I have improved the design of the dialogs. Each dialog now has a toolbar and icon (see PR). I have also replaced the previous circular progress bar with a horizontal progress bar (See PR).
Hence, the goal of identifying the deprecated libraries and updating them has been achieved. Now the app contains libraries that are up to date with the latest releases.
Goal 2 : Feature testing
Many new features have been added in the last few years. These have improved the app functionality to a great extent. But several features have not been completely tested for all cases. Hence, I have tested and resolved all the edge cases to make sure that app functions work fine in all cases. A few such cases are:
- Google has recently made it mandatory to have location permissions to discover new bluetooth devices. With the current implementation, GPS and permissions are not requested/checked before starting the bluetooth discovery. As a result, newly available bluetooth devices are not being discovered. I have resolved this (see PR). The app now notifies the user about the need for location permissions and GPS. Bluetooth discovery starts only after the location permissions and GPS are turned on.
- I have implemented a countdown timer to reduce the waiting time and improve bluetooth device discovery. For example: When we click on the start track button in the dashboard, the dialog does not get dismissed when the device is not in range. New device discovery usually takes < 15 seconds, i.e., in most cases, new valid devices are discovered within 15 sec. But the app continues to show the user that bluetooth discovery is taking place. Hence, I have adjusted the function to accommodate all the cases of discovery time (see PR).
Goal 3 : UX Bug fixing
I have resolved several bugs related to User experience. These subtle improvements have improved the user experience to a great extent.
- In the OBD Activity, wrong toast messages appear to the user while using the app. I have resolved them and now the app shows more meaningful and correct messages (see PR).
- I disabled the Rescan option while discovery is in progress and improved the alignment in the app (see PR).
I will continue to resolve the bugs and improve the existing features. This includes:
- Adding a dark theme to the app (see Issue).
- Notifying user when there is no Internet in the logbook (see Issue)
- Fixing a few more UX bugs, such as:
Overall, I could say that we are heading in the right direction in resolving the bugs present in the app. I would like to thank all my mentors for reviewing my code and improving my implementation. This was a great learning experience to see the same bug/feature resolved in multiple approaches. I hope to continue the good work and improve the User experience in enviroCar Android.