CSCI 5708 Mobile Computing Assignment 1 solution




5/5 - (5 votes)

Your task for this assignment is to develop an Android tip calculator using the concepts covered in the
course. This is an individual assignment that you will complete on your own and not in a group. You may
use any material (including code) that was provided in the lab as you desire.
Learning Objectives:
1. To practice developing Android applications and develop confidence in app development,
2. to practice the application of Neilson’s usability heuristics,
3. to gain familiarity and practice using Android Studio and Kotlin, and
4. to develop an application that you can use for your portfolio.
Your application will allow a user to input the amount of a bill (in dollars) and to specify the tip
percentage (from 0 to 25%). It will then calculate the tip and display the total amount to pay (bill + tip).
Figure 1 provides an example of a possible layout. Should you Google “tip calculator app” and view
Images, you will find many more examples of possible layouts. You do not need to provide any form of
“bill splitting” but should you do so, you will be eligible for a small bonus. Your app must satisfy the
following requirements:
1. It will have a monetary display where the user can view the output of their calculations. As we
are working with monetary values, your results should be shown to 2 decimal places (rounded).
2. A button for a decimal point and buttons for the digits 0 to 9.
3. Buttons should be provided for displaying the result, resetting the calculator (clear), and making
corrections during data entry.
4. Your application must use the same version of Android that we use in the labs.
5. The default tip should be 15%, the default bill should be $0, and if bill splitting is implemented,
the default party size should be 1.
Implementation Notes
The wireframe of Figure 1 is a potential visual guide for your application. You are not
expected to replicate the same layout or styles of this wireframe (e.g., fonts, colours).
Feel free to design the visual aspects of the calculator yourself and modify the
wireframe if a more effective design is possible.
You should apply Nielsen’s Usability Heuristics1 when developing your application. As a
hint, think of what errors the user could make. How can you prevent these errors from
happening? How can the user recover from an error? I recommend reading the article
“Preventing User Errors: Avoiding Unconscious Slips”2
. Examine potential usage
scenarios to ask yourself questions such as; “How can I prevent a user from entering
‘1250.00’ instead of ’12.50’ (or the reverse)?” Remember, expecting a user to think
when using an application is a prescription for disaster.
Your target audience is English speaking Haligonians, age 18 and above, going to restaurants, pubs, and
diners. They will be using Canadian Dollars, are any sex/gender, and use Android phones less than 3
years old. There is no need for any network connection to use the application.
Submit a ZIP file (via containing the Android application (including all
source code files) for your assignment. Your submission should contain a README text file with any
notes that you wish your marker to read (e.g., compilation flags needed, special installation instructions,
references for online resources accessed). Your code should be well formatted, easy-to-read,
maintainable, and comprehendible. In general, no external documentation (other than design and
planning documents) are needed; if your calculator requires instructions, it probably does not have a
very useful or intuitive user interface. Ensure your name and Banner number are in every file.
Note: A marking rubric is available in a separate file, accessible on Brightspace.
“10 Usability Heuristics for User Interface Design”
“Preventing User Errors: Avoiding Unconscious Slips”
Figure 1 Wireframe Example