FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Brief
Assignment 2: iOS Portfolio Exercises
Due Date: Thursday Week 7 (18th April, 11:55PM) – Weight: 30%
For this assignment, you will complete a series of weekly portfolio tasks to create To-Do List app. This application will track a self-contained list of tasks that includes details including a due date. This assignment assesses your understanding of iOS mobile development fundamentals.
The application will support the following features:
– A main launch screen that connects to all other sections
– An “Add Task” screen for the user to add new tasks to the collection
– A “Task List” / search screen to view all tasks in the application and search through them
– A “Task Detail” screen which shows all information related to a specific task
– A “Completed Tasks” screen to display all tasks previously completed
The assessment is composed of 4 cumulative portfolio tasks, based directly on the first 4 weeks lab class material. These tasks are designed in such a way that you can work on them progressively over the early weeks of the unit after you have completed the lab exercises. We strongly recommend that you work on Assignment 2 in this way. The specific exercises and expectations for each exercise are included below. Note, the application MUST adhere to the Apple Human Interface Guidelines.
1
FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Exercise 1 – Construct Add Task Screen
For this task you will start by constructing the initial skeleton of the To-Do List application with a single Add Task screen. You will be developing this application on the iOS platform using the latest version of Xcode. This task assesses your understanding of the basics of the platform; including development of simple user interfaces, classes and view controllers.
Part 1: Write a Task class
You are required to develop a simple class called Task that encapsulates the properties and functionality of a Task.
You are free to determine what properties your Task class will need but it must at the MINIMUM include the following:
– Task Title
– Description
– Due Date
– Has Been Completed
Additionally, the Task class should include the following functionality:
– Ability to change properties, including validation
– A method that returns a string summary of the task
Part 2: Build the Add/Edit Task screen
The next step is to design an interface for creating/editing a Task. This interface must meet the following requirements:
– Have a field where the user can enter each necessary piece of information
– Have a button to save (or update) the entered information for the task
– Have a button to cancel, and not save ((or update) the task
– Validation for entered information, e.g., a task must have a title
– Some feedback about whether the task was successfully saved or updated
The design of the user interface is up to you to decide.
Part 3: Write the Controller
The final step is the write the View Controller that will control the interface. This class should read the user input and provide feedback to the user. This can be done via the use of a Message Box.
The controller class will need to invoke methods of your Task class and should also have methods (actions) that are called when either of the two buttons are tapped. The view controller should both allow for new tasks to be created from the values entered by a user and also allow the user to update a previously created task (if one is specified).
2
FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Exercise 2 – Build Application Shell
For the second portfolio exercise, you will continue building the To-Do List application. In this set of tasks, you will begin expanding out the application structure to include all screens and navigation.
Part 1: Create the Main screen
For the first step you are required to create the Main screen that will be used to navigate the application. You may design this screen in any way that you see fit. At minimum the screen must provide access to the “Search Tasks” screen (this can be the “Task List” screen if you prefer) and the “Add Task” screen
Part 2: Create the Task List / Search Tasks screen
For this step you will need to create a placeholder screen for showing a task list with a way to search this list (you will implement this in Exercise 3). Since this screen shows a list of items, it should be implemented using a TableViewController.
Part 3: Create the Completed Tasks screen
For this step you will need to create a placeholder screen for the Completed Tasks view (you will implement this in Exercise 3). Again, since this screen shows a list of items, it should be implemented using a TableViewController.
Part 4: Create the Task Detail screen
For this step you should create a placeholder screen for showing the details of a single task to the user. At this point we will not fully implement this, but you should consider the UI design and prepare it for Exercise 3.
3
FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Exercise 3 – Construct Task List / Search and Task Detail screen
In exercise three you will be building out the task list / search screen which contains a complete list of all tasks currently needing to be completed.
Part 1: Build the Task List / Search screen
For the first step you are required to create the Search Tasks screen that will be used to display a list of all uncompleted Tasks known by the app. You should design this screen with Apple Human Interface Guidelines in mind. At minimum the screen should have the following:
– A search bar (that can be used to filter the task list)
– A scrollable list of tasks (where tapping on one takes you to the Task Detail screen)
– An indication of the number of tasks in the list
Each task displayed in this list should include at minimum the task name and due date. If the current date is past the due date, i.e., the task is overdue, it should be displayed in a way to allow the user to quickly identify it.
Tasks on this list should be able to be deleted and marked as complete. If a task is complete it should NOT appear on this list.
If a Task is selected by a user, the application should display the Task Detail screen providing full information on the selected task.
We suggest you hard-code some “dummy” task information to display for testing your task list / search so you don’t need to enter tasks on each launch.
Part 2: Build the Completed Tasks screen
This step requires you to build a similar screen to the Task List / Search screen. Instead only tasks that have been completed should be displayed.
Part 3: Implement the Task Detail screen
Continuing from Exercise 2, you must complete the implementation of the Task Detail screen so that it can be accessed by clicking on a Task from either of the list screens (Task List and Completed Task List). A button to allow for editing should also be included.
4
FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Exercise 4 – Implementing Core Data
For the final portfolio exercise, you will complete development of the To-Do List app. For this exercise you will create a persistent database to store all tasks. Previously you made use of dummy data for testing purposes and all additional tasks created in the app were not saved between application runs. For data persistence we will make use of the Core Data framework.
Note: Whilst this portfolio exercise may appear shorter than others, the steps involved are quite time consuming. DO NOT leave this until the last minute.
Part 1: Update Task class
For the first step you are required to make further changes to the Task class to allow it to be properly mapped to our persistent storage. In order to do this, you will need to re-create the Task class so that it is implemented as a Core Data Managed Object.
Part 2: Write the Database Controller
You are required to write a controller class that will handle communications between CoreData and our UI screens. This class will need to contain the following at minimum:
• A method for initialising connection to CoreData
• A way of saving a new Task
• A way of loading Tasks
• A way of deleting a Task
• A way of updating a Task
Part 3: Update Create Task Screen
For the next step you are required to make changes to the Create Task screen from exercise 1. (These changes will be within the View Controller class and not the UI itself.)
When the user taps on the Save Task button, (in addition to showing information on the Task) the Task should be added to CoreData. Likewise, when the user saves updates to a Task these changes should be made to the Task in the persistent database.
Part 4: Update Search Task Screen and Completed Tasks Screen
For this task you are required to make changes to the Task List / Search screen and Completed Tasks screen so that they now fetch all uncompleted and completed tasks respectively from CoreData. Again, this should not require any changes to the UI, only the code of the View Controllers.
5
FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Marking Criteria:
This assessment is worth 30% of your total marks for this unit. You must submit a single iOS project that includes the functionality of all four exercises. Functionality from exercises 1–3 are worth 20% of the assignment each, with functionality from Exercise 4 being worth 40%.
Each exercise will be marked against the following criteria:
• Implemented Functionality
Your exercise must successfully implement all required features of the application as outlined in the above instructions.
• Coding Quality
Your code should be readable and high quality. Your code should object-oriented design principles. The code should be well structured, with good method and property naming. The code should be well commented, and comments must explain application logic and the function of all code you have written. The code should follow appropriate iOS practices and patterns taught throughout the semester.
• Interface Design
Your User Interface for each exercise must have the required UI elements as outlined in the above instructions. These should be arranged using appropriate layout constraints, so they display neatly on different iPhone sizes. The interface should adhere to the Apple Human Interface Guidelines.
Feedback will be returned within two weeks to help assist you in building your final application for the semester. Your mark will be reflected in the Moodle Gradebook with written feedback.
6
FIT3178: iOS App Development
Assignment 2 – iOS Portfolio Exercises
Submission Requirements:
Your assignment will need to be submitted online via Moodle. Your portfolio project should be submitted as a single iOS project compressed in a ZIP archive.
Your submission will be marked according to the marking criteria described above. If you have any questions or concerns regarding any part of the portfolio tasks, feel free to post on the discussion forums on Moodle.
Ensure that any external resources that you used during development are referenced in your code (Excluding unit material). Failure to reference resources used will be considered as plagiarism and can result in a mark of 0 being awarded for the assessment.
Failure to submit your assignment on time will result in a 5% mark penalty for each day late (including weekends) up to a maximum of 7 days late. Submissions later than 7 days will receive a mark of 0.
If you are unable to submit your assignment on time due to circumstances beyond your control, you may be able to apply for special consideration. Special consideration applications should be made to the lecturer with a completed form and supporting documentation (see link) within two business days of the assignment deadline.
https://www.monash.edu/exams/changes/special-consideration#in-semester
7