Android Media App Dev

IGME-590

Android Take Home Practical

Overview

Now that you've envisioned a fully-featured dice rolling app, we're going to have you build a simple version of it over the weekend. It will be easy to use and have the base functionality in place. (But it probably won't be too pretty)

As long as you've met all of the requirements, adding more features is OK. For example, a Betrayal at House on the Hill player might want to add a D3 to the mix.

Improving the UI (which shouldn't be too hard) is encouraged. Next week we'll look at adding support for landcape orientation, as well as support for tablets - so feel free to do that now, or wait until it's assigned in class.

The assignment is worth 5% of your final grade, is graded out of 10 points, and no late submissions will be accepted, so post what you have before the due date to receive partial credit.

*Important* - This is a take home practical exam and is a *solo* assignment you will do without any outside assistance other than online Android references or our textbook. It is OK (and encouraged) to help each other out with general Java questions or Android Studio issues, but don't step over the line and give another student your Java code and/or XML layouts. Doing so actually does substantial harm to their learning, and exposes you both to Academic Dishonesty charges.

**Important** - The Prof is available for questions Tuesday night 9/8 in the open lab GOL-2000 from 6-7PM, and during regular office hours Wednesday 9-11AM (I'm located in the main IGM office)

Requirements

  1. The Android Studio project settings will be the same as what the BNR text uses.
  2. The UI should be intuitive - a typical user will be able to easily use the app without any instructions. (-1 to -3 points if not met)
  3. The app's starting UI state will be functionally equivalent to the screen shot below. (2 points)
  4. The user will be able to choose a die of either D4, D6, D8, D10, D12, D20, or D100. It should be obvious to the user which die is the current die. These will be represented in the UI as either Buttons, ImageButtons, or RadioButtons. There will be feedback given to the user that a new die was chosen and what its value is, and spreadTextView will be updated. (2 points)
  5. The user will be able to choose a number of dice between 1 and 25. There will be feedback given to the user that a new number of dice was chosen and what that number is, and numDiceTextView and spreadTextView will be updated. (2 points)
  6. After the user has tapped the Roll button, the total results will be displayed in the totalTextView, and the component values of the roll (i.e. before they are totaled up) will be displayed in spreadTextView. (2 points)
  7. A sound will be played when the Roll button is tapped. (2 points)
  8. Install the app on a physical Android device and bring it to class on the due date. This is *optional* because not everyone has a device yet, but if you already own or have access to Android hardware, please install your app on it.
  9. Bonus: Enable the Settings menu so that an "About this App" Activity will be presented. (+1 point)

Hints

Screenshots

Starting UI State

screen shot

User has selected a 10-sided die, rolled 5 times

screen shot

User has tapped the Roll button

screen shot

UI Elements Labeled

screen shot