COMP47390 Mobile App Dev - Cocoa Touch

Academic Year 2021/2022

This module provides a practical introduction to programming on iOS platforms using CocoaTouch and several other frameworks of the iOS SDK. Programming language is swift. Pre-requisites are Object Oriented Programming (ideally python, java, swift), Graphics, Software Engineering. In addition, it is required that students have access to a computer operating macOS and an iOS device, with both supporting the current release of the operating system. Syllabus will included the following topics:

Overview of the iOS SDK,
Swift programming language, Foundation classes,
Designing user interfaces using the Xcode software development tools,
CocoaTouch and UIKit framework, multitouch gesture recognition
Model-View Controller paradigm: Data driven models, Controller hierarchy, Standard and custom views,
Performance Optimization and Threads
Basic Animation, Multimedia & Graphics
Location awareness (CoreLocation and MapKit frameworks)

Note: this module requires strong programming skills

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

The student will acquire knowledge of application development on mobile platforms using touch interfaces and running iOS, learn how to design intuitive user interfaces, and gain experience in programmming using rich API frameworks.

Indicative Module Content:

iOS overview
MVC paradigm and examples
Objects and OOP review
Swift programming language
Foundation library
Xcode IDE
UIKit overview: multitouch gestures, custom views
Protocol and Delegation
Storyboards and multiple MVCs
Modal views and popover
App navigation and segues
View controller lifecycle
UI design and autolayout
ScrollView, ImageView, TableView, CollectionView, data source protocol
Multithreading, Closures
Error handling
UI Animations
Persistence, CoreData
App lifecycle
Introduction to a selection of iOS frameworks (e.g. Location, ML, AR, AV)

Live demos building all apps from scratch: e.g. Simple MVC Calculator, Custom Spirograph View, UI Animation Game, Custom Gesture using CoreML, CoreData and rest API.

Student Effort Hours: 
Student Effort Type Hours
Autonomous Student Learning






Approaches to Teaching and Learning:
Interactive classes with numerous live programming demonstrations 
Requirements, Exclusions and Recommendations
Learning Requirements:

Object Oriented Programming
Software Engineering

Learning Recommendations:

Programming languages (ObjectiveC, C++, Swift)
Graphics (OpenGL)
Graphic User Interface design

Module Requisites and Incompatibles
Not applicable to this module.
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Class Test: 2h iOS programming test Week 6 n/a Graded No


Assignment: Development of iOS apps Varies over the Trimester n/a Graded No


Carry forward of passed components
Resit In Terminal Exam
Autumn No
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Group/class feedback, post-assessment

How will my Feedback be Delivered?

Not yet recorded.

Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Lecture Offering 1 Week(s) - 19, 20, 21, 22, 23, 24, 25 Tues 11:00 - 12:50
Lecture Offering 1 Week(s) - 19, 20, 21, 22, 23, 24, 25 Wed 09:00 - 10:50