In the final project for this course, you should either team up into groups of two people or work solo, and work together on a large-scale mobile application. The specifics of the application that you or your team should implement is largely up to you, so long as it fits within the requirements outlines in this document. Though you may work individually, there is not a huge difference in expectation between an individually-created project and a group-created one. Thus, working individually may require you to write more code than you would have had you been in a group. On the other side, working in a group requires the overhead of communication and coordination.
The application that your group implements is up to you! So long as it can fulfill the requirements described in this document, and your group is agreeable to it, then go for it. I provide a few example ideas below. Don’t feel limited to these ideas though! Be creative!
Though the application that you write is largely up to you, it must meet the following requirements:
You should use the design patterns and best-practices discussed in class and in readings, when and where applicable.
Your application should use Fragments in situations where it makes sense to do so, rather than relying solely on Activities for the user interface.
The application must use at least one implicit intent, which would cause an Activity from a different application to be opened. For example, an intent that opens the camera app to take a picture, or an intent that opens up the email app to compose a message.
The application must utilize at least one content provider. We used content providers in three main ways in class: to access contacts, to view images, and to view messaging conversations. You may use one of those three, or you can choose another content provider to use. Which one you choose will depend on the feature requirement(s) of your application.
You application should be capable of saving data, and/or media, and/or user preferences to the local storage on the device. You should use at least one of the storage techniques discussed in class and/or the readings, such as internal files, external files, and shared preferences.
Your application should make web requests in some way/shape/form. Your application could leverage internet access in a number of ways. For instance, you could:
You application should do some form of background work using a Thread / Runnable / AsyncTask / Service. You would want to do this anyway for internet connectivity, but you may use it for other feature(s) as well.
Your application should support both phone and tablet form-factors. The user interface should function well on either size of screen.
Your project should include an in-app help page, which explains to the user (or the grader!) how to use the application.
It should include at least one non-trivial use of animation.
Each team should write a document, describing the plans for the application. Essentially, you can thing of this document as your own, custom final project specification. The document should be somewhere between 3-5 pages, and should be organized into several clearly-labeled sections:
You are required to inform me of your individual / group formation by the date listed above. You should use this Google Form to inform us of your group choice. When you submit your group, you should try to have a general idea of what your project is going to be, but you do not need to be finished with your document. Not doing so by 11/12 may result in a penalty.
You should have completed your project document by the date shown above. Your document should be structured according to the directions in the “Document” section. Submit your document to the gradescope assignment.
There will be one checkpoint meeting on the class date specified above. Your whole group is required to be in attendance. By this meeting, I would like to see that the implementation of your project is at least 50% complete. These meeting(s) will be short meetings that happen during class time.
Each team should sign up for a presentation time, during class time, on either of the two dates shown above. Your presentation should show off your application to your instructors and the class as a whole. At this point, your applications should be 80%+ completed. Technically, since attendance at the live meetings cannot be required, this is not a required part of the final project. However, it can be fun to show what you’ve been working on! Also, can give your practise for your video.
The final project code-base will be due on 11:59pm on the last day of class.
You should submit to gradescope, along with the slides from your presentation, and project document.
You are also required to record a 5-7 minute video presentation going over your application.
You should record the video, upload it to somewhere (dropbox, youtube, vimeo) and then include a file named video.txt
in your gradescope submission.
This file should contain the URL to the video presentation.
You should try to make a good-quality video.
This may be used to help us graders determine your grade.