This is a multi-part staged assignment that will give each student the opportunity to develop a practical android app with many different types of elements. The application is a driving learner's log. The overall concept and initial design has been created for you: driveTime.pdf. Over the next several weeks you will implement various components of this app.
For the first phase you must create the user interface, but not any of the back end processing. In other words, define the layouts and declare the corresponding activities in the manifest file. Implement the interface by creating and populating all the files that go into the res folder. You must create the main tabbed view, the drive activity, the log list, and the entry detail activity as they appear in the design document. Add icons of your choosing for each tab and the app itself. For the stats activity, you only need to include the total hours progress bar. We will experiment with alternate designs for the rest of that view later.
Make sure you have worked through the "Hello Views" tutorial on the Android website, and looked at relevant API samples before beginning!
Do not worry about implementing actual data manipulation, menus, or view transitions at this point. For this phase we are only interested in how the user interface looks and feels. We should be able to see what the different views will look like through the graphical layout viewer in Eclipse, and by reading through the various files in the res directories, as well as the manifest file. You have some flexibility in how you create your overall layouts for each activity (linear, relative, grid, etc), but you must adhere to the design as closely as possible with respect to (relative) placement, button types, spinners, colors, etc. Please submit the entire project as a zip file on Blackboard.
Grading Breakdown: [5] manifest, [5] colors & icons, [5] strings, [3] tabbed main view, [5] drive activity, [4] list activity, [5] view/edit entry activity, [3] stats activity.
Start implementing the back-end of your user interface, in particular the functionality for the Drive Tab. For this deadline you are expected to be able to create a new log entry using the start and stop buttons, enter the date, calculate its time, make selections for the other settings, and add the time to the total hours and day/night breakdown. Add SAVE/CANCEL buttons to this activity. The saved data (total hours and day/night breakdown) should be reflected on the stats page. You are not yet required to maintain a listing of all the entries or implement the log entry edit activity. However, you are encouraged to keep stats for the more specialized categories at this point as well.
A (not wonderful) solution to part A is posted as DriveLayout.zip for those of you who need a leg up into this next phase.
Grading Breakdown: DRIVE: (2) start, (2) stop, (4) elapsed time, (2) date picker, (2) day/night, (2) lesson type spinner, (2) conditions spinner, (1) cancel; STATS: (3) total hours, (6) day/night hours, (4) data persistence when app closes/launches.
Finish implementing the functionality behind your interface by completing the log list. Make your data persistent so that each time the application is launched, the prior data is available. Also make the activity to edit a log entry functional. Use a context menu on the items in the log list to choose edit/view or delete operations. Remember to update necessary statistics categories if an entry is changed.
Grading Breakdown: [10] database, [4] context menu, [10] edit, [3] delete, [3] update totals
Design and implement the full stats page. Be creative and use good design principles in how you represent and organize the data.
More options: add customization of lesson types or conditions; add customization of required hours; add multiple learners.