Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due
NIT3213 Mobile Application Development
Assignment 1 – Mobile Timetabler Android Application
Due Date: Week 8
This assignment will test your Android development skills and is worth 10% of your overall unit mark.
You should work with a partner, two students per group is the maximum.
Android Development
Your application must perform all tasks listed in this document, and can run on any Android device with a minimum API version of 19 (KitKat 4.4) up to the latest version of Android.
Your application should be created to display correctly on an emulated Nexus 5X ( 1080 X 1920 pixels in portrait orientation) - however, by using sizes specified in "density independent pixels" (dp) the application should also be able to display correctly on any Android device with any sized screen and resolution.
Plagiarism Policy
- Do NOT share code with fellow students’ other than your group. I mean it. I have to mark all these projects, and I look at them closely. If I see two projects with identical code, all students involved get zero for the assignment.
- You may, and are in fact encouraged to, discuss the project with your fellow students. The goal being that you understand how to create good, high-quality Android applications – and that understanding then flows into the exams where you'll be asked questions on Android application development. Just don't share projects/code – code it yourself, learn from your mistakes, and become a great developer.
Application Specification
Project Settings
Your Android application should have the following settings:
Minimum SDK: API 19 Android 4.4
Application Name: Mobile Timetabler
Project Name: MobileTimetabler<your-student-ID-number>
For example, MobileTimetabler30078589
Package name: au.edu.vu.timetable<your-student-ID-number>
For example, au.edu.vu.timetable30078589
Application Description
Your Mobile Timetabler application will do exactly what it sounds like. When the application first launches, it will display the days of the week Monday through to Friday, and underneath each day, it will display some details (which you will enter, and which will be saved into a simple SQLite database) about what classes / labs you have on that day.
When the application starts it should have two buttons which are displayed at the top of the screen:
- A button to create a New appointment, and- A button to Delete appointment(s).
Under this, in a LinearLayout inside a ScrollView, there should be 5 centred TextViews with the days of the week Monday through Friday.
Under each day should be the text for one or more appointments. If there are no appointments saved for that day then the text "No appointments." is displayed.
An example of the MainActivity layout is shown below in figure 1 (Figures provided in this assignment are as sample only):
When the user clicks the [New appointment] button, an "onClick" method is executed which creates a new Intent, and starts a new NewAppointmentActivity using that intent.
The NewAppointmentActivity layout has two buttons, one to [Create appointment] which triggers the creation of a new Appointment object which must be saved to the SQLite database, and a second [Back] button which simply finishes the NewAppointmentActivity and returns to the MainActivity.
Under these two buttons are 5 radio buttons with the text "Mon", "Tue", "Wed", "Thur", and "Fri" on them inside a horizontal RadioGroup. It also has TextViews which display the words "Time", "Duration" and "Description". Under each of these three TextViews are EditText views which allow the user to enter text for the time, duration and description of the appointment.
The layout of the NewAppointmentActivity is shown in Figure 2, below:
Once the user clicks the New appointment button, the appointment must be saved in the database, and the NewAppointmentActivity finishes so we return to the MainActivity, which in both the onCreate and onResume methods calls another method called populateSchedule - which reads all the appointments from the database and puts them under the correct day for which they are scheduled. For example, after saving the above appointment, our new schedule is shown below in Figure 3.
A user can check some, all or none of the checkboxes and then click the [Delete selected] button, which will trigger deletion of the appointments from the database. This is achieved by creating a List of the checkbox id values where the checkbox is checked, and then passing that list to a deleteScheduleItems method which goes through each value in the list and deletes the record with that id from the database.
An example layout for the standard version of the DeleteAppointmentActivity is shown below in Figure 4:
The appointment class stores an id value which uniquely identifies an appointment.
The day field is a value between 1 and 5 where 1 means "Monday" and 5 means "Friday".
The time, duration and description properties are all plain Strings.
The DeleteAppointmentActivity class - Standard Version
We then call the deleteAppointments method (on a AppointmentDataSource object), passing it the list of appointment id's to delete.
When the [Create appointment] button is clicked we create a new Intent and start a new
The database name should be appointments.db
If the [Create appointment] button is clicked the appointment is saved to the database.
However, if the user opts to create a new appointment but has not entered any time, duration or description information (i.e. all three strings are empty) - then placeholder text is used for each field, which is specified as "<No time>", "<No duration>" and "<No description>" respectively. After saving the appointment the activity finishes and we are returned to the MainActivity.
Assignments will be marked on the basis of fulfillment of the requirements.
Refer to the unit Description for details of the policy on marking of late assignments. Any applications for extensions or special consideration should be made as early as possible, and in all cases prior to the deadline for submission.
Requirement |
Weight |
Mark |
Correct usage of defining labels, the text on text views and buttons |
2 |
|
Correct usage of defining text styles for schedule items and TextViews |
2 |
|
Correct layout for MainActivity |
1 |
|
Correct layout for NewAppointmentActivity |
1 |
|
Correct layout for DeleteAppointmentActivity |
1 |
|
Ability to create database with correct schema |
1 |
|
Correct creation of the Appointment class |
1 |
|
Ability to save a new appointment to the SQLite database with details as entered by the user |
3 |
|
Ability to retrieve a previously saved appointment from the SQLite database |
3 |
|
Ability to display a retrieved appointment |
3 |
|
Ability to delete an appointment from the SQLite database |
2 |
|
Demonstration in Week 9 Lab |
5 |
|
Assignment mark total |
|
/ 25 |
Contribution to unit mark (out of 10%) |
|
% |