CISC181 S2019 ProjectRequirements

From class_wiki
Revision as of 13:07, 1 May 2019 by Cer (talk | contribs) (Submission)
Jump to: navigation, search

For this final project, you will create a simple app that uses a number of Android features (listed below). You may target any phone/tablet version of Android if you wish to use more recent features (no TV/watch apps, please).

Possible ideas:

  • 2-D graphical game This could be an approximation of a board game like checkers or Othello, a card game, or something more free-form like Pong, Space Invaders, or Whack-A-Mole. Or you can completely make your own game up.
  • Graphing calculator The user enters parameters for a restricted type of formula (polynomial, trig functions, etc.) and it is graphed. Or data can be read from user-specified file for scatter-plot or connected curve plot. Options allow zooming, setting colors.
  • Paint program User can choose paintbrush, shape, color, etc. and swipe around with their finger/stylus to draw and/or resize shape. Drawings are savable.
  • Your idea?? Please e-mail me a quick proposal ASAP so that I can give you feedback on the scope of your project before you get too far into it.

You will not be graded on artistic ability or the skill of your game's computer opponent (if you even add such an option), but rather on your app's functionality and meeting the requirements listed below. Whatever you choose to do, the code should be all your own regardless of any examples that you consult.

You are free to work as a pair on this project. It is highly recommended that your team have at least one actual Android device or a computer with an accelerated emulator for development. You can NOT use late days on the second part of the project -- May xx is a hard deadline for Canvas submission.

Requirements

In general, your app should have at least 2 activities, each of which uses a variety of views:

  • Title screen activity with the following features:
    • A title with modified font size and color
    • A thematically-related image
    • Instructions (these may pop up or be scrollable if they are long)
    • Settable options (using checkboxes/radio buttons/spinner/text editing/etc.)
    • Button to start main activity (e.g., game)
  • Main activity. What happens here depends on what your app does. For a game, these are some possible features:
    • Canvas where drawing/painting is done
    • Touch input allowing the user to control the action beyond just buttons
    • A score of some sort that is kept and displayed at all times (could be money if a card game)
    • Animation: something moves without the need for user input

Furthermore, your app should:

  • Use at least one Collection interface such as an ArrayList, Set, or Map
  • Read and/or write at least one external data source such as a text file, preferences file, or Internet-connected resource (could be a web page, or the Maps API, etc.)

Submission

  • Milestone 1 (May xx) (worth 5%)
    • Outline of full app. On Canvas, submit a document describing what your app will do in detail. This should include:
      • An app name and description of planned functionality. For example: "My app is called Monkey Mango Maelstrom and it will be an arcade-style game where you shoot fruit at ravenous primates streaming across the screen toward your peaceful jungle picnic..."
      • A list of all planned views and other Android/Java features which will satisfy the above requirements.
      • Your name and your partner name(s) (if applicable). If you are working in a pair or trio, explain who is doing what
    • Availability for final project demo (see below) so I can schedule them
  • Milestone 2 (May xx) (worth 10%)
    • Full project code submitted on Sakai (just zip up your whole project directory)
    • In-person demo. On May xx, yy, or zz (there will be sign-ups), your team will show the instructor your app running on your device or emulator (after compiling) and demonstrate/explain its features. All partners must be present, and I will ask each of you about your specific contributions. Plan on this taking about 20 minutes