CS 1699 Special Topics in Computer Science (Section 1115) Introduction to Android Programming Spring 2018 |
Assignment 3 (Optional) - Android Trivia Game version 3.0
Important Note: This assignment is optional. If you do it, it will replace the lowest-graded of the other two assignments.
Deadline: Friday 4/27 @ 11:59pm
Submission instructions: Submit a single zip file containing your code and resources to CourseWeb. To package your code as a single ZIP file, you may select the menu option File -> Export to Zip File in AndroidStudio.
Required Knowledge: This assignment requires knowledge of:
Services
Content Providers
2-D Graphics
In the third optional assignment, we will extend the Trivia game app that we built in the previous two assignments with the following features:
1. (30% of the grade) The Play activity shows a simple 2-D game with 2 sprites. When the sprites collide, the old Play activity (displaying the questions) shows up. Feel free to use your own ideas for the sprite design and movement patterns.
2. (40% of the grade) Design and implement a Content Provider to wrap the app data. In the previous assignment, we used both a local SQLite database and a remote (Firebase in particular) database to store the set of terms and definitions, the user profile, and the scores. All access to these data items from the app now goes through the Content Provider that you develop for this assignment.
3. (30% of the grade) Develop a Service to be responsible of syncing the local data with the remote database. The developed service listens to updates from the remote database and update the local data through the Content Provider. The service also listens on updates to the local data (by using the change notification mechanism of the Content Provider) and updates the remote database accordingly.
Hints:
1. These instructions on preparing your development environment may be useful.
2. Your submissions will graded using the following setup: Android Studio 3.0.1 with the following Virtual Device: Nexus 6P API 26 (1440 x 2560: 560dpi; All other configurations remain default).