Assignment 6: Persistent Boggle

Due Thu Oct 25 by 9PM

This is a TEAM assignment.

The purpose of this assignment is to help you learn more about how to make a robust Android program that puts/gets information to the Internet, sends notifications, and has robust performance when users switch phones, uninstall/reinstall, and swap external SD cards. You will improve and extend your Boggle game.

You will need to both design and implement the revised Boggle game to allow for for multi-player games. You will need to be creative and use some of the rapid design techniques we have discussed and read about in the class. The more you work out your design carefully in advance, the easier the programming will be. Just for emphasis, the more you work out your design carefully in advance, the easier the programming will be. As discussed in class, your app design and the complexity of programming that app are linked.

Your goal is to redesign your game in these ways:

Above all else, you need to ensure your game has ROBUST behavior (both in terms of design and technology).

You are free to store data on the web using whatever method you wish. To assist you, we will provide a simple server service that will allow you to get/put string/value pairs to our server that is very similar to accessing data using a SharedPreference object. [Information on this is forthcoming].

Important topics to consider:

You are building this game for educational purposes only, not for actual release, so feel free to grab graphics from any source and use them in your game if you want. (Important: For an actual game that was being released you would need to design the graphics yourself or get permission to use all graphics you incorporate, therefore, if you do want to use this app outside of class someday, you might want to design your own graphics or find graphics that you know do not have copyright restrictions).

Your game should be added to your existing app on the Market. Add a new button on your apps initial screen, "Persistent Boggle," which will start your game. Your main app on the Market will then have 6 buttons: About (with your team info), Generate Error (generates error), Quit (exits), Sudoku (runs Sudoko from Assignment 1), Boggle (runs assignment 4), and your new button. Do not add a new icon and launcher for this game ... It should be launched from the home screen of the same app you had for Assignment 1.

If you have teamed up, both you and your team member will submit apps with Persistent Boggle buttons. However, one app will run Persistent Boggle directly. The other app will run it by calling the Persistent Boggle app in the other team member's package.

As you complete this assignment and have “aha!” moments where you figure out tricky things that might hold other people up, you should help out your classmates on Piazza.

Your app should be available on the Play Store by the assignment deadline, and your Git repository should be up to date with your code (and easily buildable from scratch should we need to download it and compile your project).

You will be graded based on how well you follow the instructions above using the app that is downloaded from the Play Store at the time we do the grading. Your application will be tested on actual Android phones, not the emulator.