Assignment title: Information
2.1 Introduction
You will extend the work done in Assignment 1. The app needs to be fully complete in terms of the
implementation and the following features must be incorporated [Note: We will cover all of these
aspects in the forthcoming lectures and tute/labs]:
Adaptive Layout
App Extension
Data persistence (Core Data OR SQLite3 ONLY, no other databases allowed)
Remote data access
Implement an iOS/Cocoa framework
Unit tests
Adaptive Layout:
Please make sure that your app works in at least four different geometries – here are some
suggestions-
iPhone 6s – Portrait & Landscape AND iPad Air 2 – Portrait & Landscape
iPhone 5 – Portrait & Landscape AND iPad 2 – Portrait & Landscape
iPhone 5 – Portrait & Landscape AND iPhone 6 – Portrait & Landscape
etc. You can choose your own geometries.
App Extension:
An app extension lets you extend custom functionality and content beyond your app and make it
available to users while they're interacting with other apps or the system. There are various
extensions available. You can read about them at (remember we will cover them during forthcoming
lectures and tute/labs as well):
https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/
Choose an appropriate app extension and use it in your app. During the demo marking session for this
assignment, you should be able to explain the choice of the extension.
Data persistence:
All the relevant data must be stored in the database--- you may choose 'Core Data' or 'SQLite3'. No
other database product should be used.
Data must be saved and retrieved- you should be able to display these features via a screen in the
app.
Remote Data Access:
Your app must access a remote web service (API) and the device must provide some form of
dynamic input to the API endpoint being accessed. The app must also display the data (or use the
data) in a complete, useful way.
Good example:
The user to enters a search term, or the app uses the user's location as a search parameter to an API
endpoint returning nearby restaurants. When the search results are returned, the app provides a detail
screen with photos from the restaurant (returned by the API) and shows the restaurant on a map. The
user searches for a list of events nearby and the results are displayed on a map. Providing the user a list
of search filters (see realestate.com.au) to search an API is also a good example.
Providing a synchronisation service between your user and a remote api.
Bad example:
Hard code a foursquare API request and display only venue titles in a list and only display basic text
data in a detail view.
Implement an iOS/Cocoa framework:
Throughout the course we have covered a number of fundamental components you could use to
build iOS apps. Some of these frameworks have been covered as a part of the course. Apps
implementing features from this category must implement an advanced iOS multimedia or
hardware related framework.
Examples:
Audio/video streaming or processing Image Processing
Augmented reality
2D drawing,
Core bluetooth or other peer-to-peer networking utilising the device's accelerometer
Complex graphics or graphing
Core Map
Use of Camera (if you use this, you will need a real device to demo your app)
Unit tests:
Write at least five unit tests. Unit tests are not the same as UI tests. Make them meaningful.
2.2 Tasks
1. (40 marks) Implement all of the above features, the marks distribution is shown below-
a. (8 marks) Adaptive Layout
b. (5 marks) App Extension
c. (8 marks) Data Persistence
d. (8 marks) Remote Data Access
e. (6 marks) iOS/Cocoa Framework
f. (5 marks) Unit Tests
2. (5 marks = 1 + 4) These will be awarded towards
a. general code elegance
b. the use of MVC pattern
3. (5 marks) Something extra feature: Implement one feature that has not been taught in
this course. Research this part and figure out how to implement it? This is the part where
you can display the passion for the iOS programming. Mild and anemic implementations
will receive a low grade.
2.3 What to submit and How?
PLEASE SUBMIT THE ASSIGNMENT PRIOR TO FACE---TO---FACE DEMO.
Create a README.txt file in the root directly of your project that describes to the tutors what
your feature is, and how the tutor can assess it. Add any extra information that you may want
to convey, references etc.
Zip Readme file and Xcode Project and PDF scan file as a single archive and submit via
Blackboard Assignment 2 submission link.
2.4 Plagiarism
All assignments will be checked with plagiarism-detection software; any student found to have
plagiarised would be subject to disciplinary action. Plagiarism includes
- submitting code that is not your own or submitting text that is not your own
- copying assignments of the students from previous semester
- allowing others to copy your work via email, printouts, social media etc.
- posting assignment questions (in full or partial) on external technical forums
2.5 Consultation sessions
We will organise special help sessions for this assignment. Please keep an eye for the schedule.
Finally
Enjoy! You will learn a lot while creating an app for this assignment. Who knows it could lay the
foundation of your next career!