1. Homepage
  2. Programming
  3. NIT3213 Mobile Application Development Assignment 1 - Mobile Timetabler Android Application

NIT3213 Mobile Application Development Assignment 1 - Mobile Timetabler Android Application

Engage in a Conversation
AustraliaVUVictoria UniversityNIT3213Mobile Application DevelopmentMobile Timetabler Android ApplicationJavaAndroid

Assignment 1 – Mobile Timetabler Android Application
CourseNana.COM

  CourseNana.COM

This assignment will test your Android development skills and is worth 10% of your overall unit mark. CourseNana.COM

You should work with a partner, two students per group is the maximum. CourseNana.COM

Android Development


This assignment requires you to develop a simple Android application that uses many Activities, which are related using Intents. To write the application you will need to use the Android Studio (IDE) 2.3.3.. CourseNana.COM

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. CourseNana.COM

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. CourseNana.COM

Plagiarism Policy

I highly recommend that you familiarise yourself with what is and what is not considered plagiarism, but I'll summarise the key aspects below: CourseNana.COM

·       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.

CourseNana.COM

·       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. CourseNana.COM

Application Specification

  CourseNana.COM

Project Settings


Your Android application should have the following settings: CourseNana.COM

Minimum SDK: API 19 Android 4.4 CourseNana.COM

Application NameMobile Timetabler CourseNana.COM

Project Name: MobileTimetabler<your-student-ID-number> CourseNana.COM

For example,  MobileTimetabler30078589 CourseNana.COM

 
CourseNana.COM

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. CourseNana.COM

When the application starts it should have two buttons which are displayed at the top of the screen: CourseNana.COM

-        A button to create a New appointment, and CourseNana.COM

-        A button to Delete appointment(s). CourseNana.COM

Under this, in a LinearLayout inside a ScrollView, there should be 5 centred TextViews with the days of the week Monday through Friday. CourseNana.COM

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. CourseNana.COM

An example of the MainActivity layout is shown below in figure 1 (Figures provided in this assignment are as sample only): CourseNana.COM

CourseNana.COM

Figure 1 - The MainActivity layout. There are 3 appointments saved, one on Monday, another on Wednesday and the final one on Friday. CourseNana.COM

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. CourseNana.COM

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. CourseNana.COM

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. CourseNana.COM

The layout of the NewAppointmentActivity is shown in Figure 2, below: CourseNana.COM

  CourseNana.COM

CourseNana.COM

Figure 2 - The CreateNewAppointment Activity CourseNana.COM

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. CourseNana.COM

CourseNana.COM

Figure 3 - The result of adding a new appointment CourseNana.COM

If the user then clicks the [Delete appointment(s)] button the DeleteAppointmentActivity is executed. There are two ways that you can write the DeleteAppointmentActivity - a standard way. CourseNana.COM

DeleteAppointmentActivity - Standard Version


When a DeleteAppointmentActivity is launched, the database is queried for all saved appointments, and each appointment is displayed in a list of dynamically created checkboxes, one appointment per checkbox. CourseNana.COM

The id value from the database is retrieved (along with all other fields for each appointment), and the program sets the id value of the checkbox to be the id of the appointment. This way, the id value of each checked checkbox is the id value of the appointment we want to delete from the database. CourseNana.COM

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. CourseNana.COM

If the user clicks the [Back] button the activity finishes and we are returned to the MainActivity without making any changes to the database. CourseNana.COM

An example layout for the standard version of the DeleteAppointmentActivity is shown below in Figure 4: CourseNana.COM

CourseNana.COM

Figure 4 - The standard version of the DeleteAppointmentActivity CourseNana.COM

After deleting the "fly a kite" appointment above, our appointment list in the MainActivity will now look like Figure 5, below: CourseNana.COM

CourseNana.COM

Figure 5 - The result of deleting an appointment from the list of appointments stored for Monday. CourseNana.COM

Project Files

The classes used to in this program are as below (your project name and package should contain your student ID number, as specified in the project settings section on page 2 of this document): CourseNana.COM

 Class Specification CourseNana.COM

The Appointment class

  CourseNana.COM

The appointment class stores an id value which uniquely identifies an appointment. CourseNana.COM

The day field is a value between 1 and 5 where 1 means "Monday" and 5 means "Friday". CourseNana.COM

The time, duration and description properties are all plain Strings. CourseNana.COM

Getters and Setters work as normal, and the display() method is just used to print out the fields of an appointment to the console, which comes in useful when debugging your application. CourseNana.COM

 

The AppointmentDataSource class

CourseNana.COM

The AppointmentDataSource class allows us to create an AppointmentDataSource object, which provides methods to: CourseNana.COM

-        Open the database, CourseNana.COM

-        Insert an appointment into the database, CourseNana.COM

-        Delete one or more appointments by providing a List of id values of the record(s) to delete, CourseNana.COM

-        Return a List of all the appointments in the database, and CourseNana.COM

-        Close the database. CourseNana.COM

The DeleteAppointmentActivity class - Standard Version

 

CourseNana.COM

When the DeleteAppointmentActivity starts, it populates a List of Appointments from the database. The text for each appointment is created through appending the time, duration and description data in a StringBuilder object, and then creating a new CheckBox and setting that appointment text on it. Additionally, each checkbox is assigned the id value of the appointment it represents. CourseNana.COM

When the Delete appointment(s) button is clicked, we go and find which checkboxes are currently checked, and add the id value(s) of the CheckBox to the list of appointments to delete. CourseNana.COM

We then call the deleteAppointments method (on a AppointmentDataSource object), passing it the list of appointment id's to delete. CourseNana.COM

 

The MainActivity class

CourseNana.COM

The MainActivity class starts by running the populateSchedule() method, which opens the database, retrieves all the saved appointments, and adds the text of those appointments to the timetableLayout displayed. CourseNana.COM

When the [Create appointment] button is clicked we create a new Intent and start a new NewAppointmentActivity. CourseNana.COM

When the [Delete appointment(s)] button is clicked, we create a new Intent use it to start a new DeleteAppointmentActivity. CourseNana.COM

  CourseNana.COM

The MySQLiteHelper class

CourseNana.COM

The MySQLiteHelper class creates our SQLite database. CourseNana.COM

The DATABASE_CREATE string must contain commands to create the table with the following schema: CourseNana.COM

COLUMN_ID          - integer primary key autoincrement
COLUMN_DAY         - integer not null
COLUMN_TIME        - text not null
COLUMN_DURATION    - text not null
COLUMN_DESCRIPTION - text not null
CourseNana.COM

The database name should be appointments.db CourseNana.COM

 

The NewAppointmentActivity class

  CourseNana.COM

CourseNana.COM

The NewAppointmentActivity allows the user to select a day from a group of RadioButtons, and then enter text (as a String) for the time, duration and description. CourseNana.COM

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. CourseNana.COM

If the [Back] button is pressed then the activity finishes without saving the appointment and we are again returned to the MainActivity. CourseNana.COM

Submission and marking process

  CourseNana.COM

Create a single zip file containing the Android Studio project of your Mobile Timetabler and upload it to the upload location on VU Collaborate for Assignment 1 of this unit. CourseNana.COM

Assignments will be marked on the basis of fulfillment of the requirements. CourseNana.COM

In addition to the marking criteria, marks may be deducted for failure to comply with the assignment requirements, including (but not limited to): CourseNana.COM

  • incomplete functionality,
  • incomplete submissions (e.g. missing files)

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.
CourseNana.COM

Assignment 1 – Mobile Timetabler CourseNana.COM

Student name:                                                            Student ID: CourseNana.COM

Student name:                                                            Student ID: CourseNana.COM

  CourseNana.COM

Requirement CourseNana.COM

Weight CourseNana.COM

Mark CourseNana.COM

Correct usage of defining labels, the text on text views and buttons CourseNana.COM

2 CourseNana.COM

  CourseNana.COM

Correct usage of defining text styles for schedule items and TextViews CourseNana.COM

2 CourseNana.COM

  CourseNana.COM

Correct layout for MainActivity CourseNana.COM

1 CourseNana.COM

  CourseNana.COM

Correct layout for NewAppointmentActivity CourseNana.COM

1 CourseNana.COM

  CourseNana.COM

Correct layout for DeleteAppointmentActivity CourseNana.COM

1 CourseNana.COM

  CourseNana.COM

Ability to create database with correct schema CourseNana.COM

1 CourseNana.COM

  CourseNana.COM

Correct creation of the Appointment class CourseNana.COM

1 CourseNana.COM

  CourseNana.COM

Ability to save a new appointment to the SQLite database with details as entered by the user CourseNana.COM

3 CourseNana.COM

  CourseNana.COM

Ability to retrieve a previously saved appointment from the SQLite database CourseNana.COM

3 CourseNana.COM

  CourseNana.COM

Ability to display a retrieved appointment CourseNana.COM

3 CourseNana.COM

  CourseNana.COM

Ability to delete an appointment from the SQLite database CourseNana.COM

2 CourseNana.COM

  CourseNana.COM

Demonstration in Week 9 Lab CourseNana.COM

5 CourseNana.COM

  CourseNana.COM

Assignment mark total CourseNana.COM

  CourseNana.COM

/ 25 CourseNana.COM

Contribution to unit mark (out of 10%) CourseNana.COM

  CourseNana.COM

% CourseNana.COM


Comments:
CourseNana.COM

  CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
Australia代写,VU代写,Victoria University代写,NIT3213代写,Mobile Application Development代写,Mobile Timetabler Android Application代写,Java代写,Android代写,Australia代编,VU代编,Victoria University代编,NIT3213代编,Mobile Application Development代编,Mobile Timetabler Android Application代编,Java代编,Android代编,Australia代考,VU代考,Victoria University代考,NIT3213代考,Mobile Application Development代考,Mobile Timetabler Android Application代考,Java代考,Android代考,Australiahelp,VUhelp,Victoria Universityhelp,NIT3213help,Mobile Application Developmenthelp,Mobile Timetabler Android Applicationhelp,Javahelp,Androidhelp,Australia作业代写,VU作业代写,Victoria University作业代写,NIT3213作业代写,Mobile Application Development作业代写,Mobile Timetabler Android Application作业代写,Java作业代写,Android作业代写,Australia编程代写,VU编程代写,Victoria University编程代写,NIT3213编程代写,Mobile Application Development编程代写,Mobile Timetabler Android Application编程代写,Java编程代写,Android编程代写,Australiaprogramming help,VUprogramming help,Victoria Universityprogramming help,NIT3213programming help,Mobile Application Developmentprogramming help,Mobile Timetabler Android Applicationprogramming help,Javaprogramming help,Androidprogramming help,Australiaassignment help,VUassignment help,Victoria Universityassignment help,NIT3213assignment help,Mobile Application Developmentassignment help,Mobile Timetabler Android Applicationassignment help,Javaassignment help,Androidassignment help,Australiasolution,VUsolution,Victoria Universitysolution,NIT3213solution,Mobile Application Developmentsolution,Mobile Timetabler Android Applicationsolution,Javasolution,Androidsolution,