$29
Despite recent increases in Cape Town dam levels, access to clean water will be an ongoing problem worldwide. For this assignment you will build a basic water calculator and diary to help track and calculate the user’s water impact (i.e. W()).
Overview
The application should open with an overview screen which contains the following elements:
A calculator launcher (add diary entry)
A list of diary entries, each showing the date and total amount of water consumed on that day
The total water consumed for all entries
The average water consumed per day
Calculator
Tapping on the calculator launcher (in the overview screen) will open a calculator, in which the user can enter estimates in liters under the following categories: shower, toilet, hygiene (bathroom sink usage), laundry, dishes, drinking, cooking, cleaning, other. Refer to the City of Cape Town Think Water calculator for reference (http://coct.co/thinkwater/). The calculator should show a running total and include a button for saving the total as the diary entry for a particular date. Saving an entry will take you to the entry’s page in the diary. There should also be a button that will allow the user to exit the calculator without saving, which will return to the previous activity.
Diary
Tapping on an item in the list of diary entries will open that entry’s page. Each page should display the following:
Entered totals for the categories
Total for all categories
Button for navigating to the next entry (disabled if last entry)
Button for navigating to the previous entry (disabled if first entry)
Button for return to Overview
Button for calculator
Provide support for strings in at least two languages of your choice, using the phone’s locale to determine what language you will use. (I’m okay if you pretend French is actually pirate language.)
When you open the application, it should always open to the last screen viewed, including any previously entered form data. Screen rotations should not delete partially entered data or take you to a different screen. If you choose to use icons for the buttons or the overview page, you may place those in the resources.
Any native code should be written in Java, not Kotlin. Please submit your source code, and a compiled APK that will run on a Google Nexus 5X emulator running Nougat (API Level 24). All files should be put into a single archive, which should be named according to your student number and the assignment number, e.g. ABCXYZ001_CSC2002S_A1. Upload the file and then ensure that you have uploaded the correct file.
You may develop your app in whatever environment you prefer (Android Studio is recommended). However, you should test that it runs with the emulator that comes with Android Studio. You must also sign up on Vula to do a five-minute demo and code walkthrough with one of the tutors during one of the designated slots before Thursday 23 August. Failure to show up for your demo and to successfully demonstrate your app by this date will result in zero marks for demo portion of the assignment. If you will not be doing the demo on your own android device or on an emulator on your laptop, please be sure to arrive for your demo early so that you can set it up and ensure that it is running on an emulator on one of the available machines in time for your appointment.
I highly recommend that you start working on this right away. The biggest barrier in getting this assignment done is often getting your development environment configured and running, rather than the code itself. Please reference the Android Developer tutorials and other resources on https://developer.android.com/training/index.html.