CISC181 S2015 ProjectRequirements

From class_wiki
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 use late days on this project, but only as many as both members of your team have.


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.)


  • Milestone 1 (May 11)
    • Outline of full app. On Sakai, 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 Mashup and it will be an arcade-style game where you shoot fruit at hungry monkeys crossing the screen to attack your base..."
      • A list of all planned views and other Android/Java features which will satisfy the above requirements.
      • Your name and your partner's name (if applicable). If you are working in a pair, explain who is doing what
    • Proof of partial app. You should have an Android project at this point which has at least the title screen activity, mostly working. Confirm this with a screenshot of it. If you have made progress on the second or other activities, submit screenshots showing them as well. DO NOT SUBMIT CODE AT THIS MILESTONE!
    • Availability for final project demo (see below) so I can schedule them
  • Milestone 2 (May 18)
    • Full project code submitted on Sakai (just zip up your whole project directory)
    • In-person demo. On May 18, 19, or 20 (whatever works best for you), your team will show the instructor your app running on your device or emulator (after compiling) and demonstrate/explain its features. Both partners must be present, and I will ask both of you about your specific contributions. Plan on this taking about 20 minutes