CS317 – Mobile App Development

Credits 20
Level 3
Semester 2
Prerequisites CS207 Advanced Programming
Availability Possible elective
Contact Lectures: 15 | Videos: 7 | Labs: 33
Assignments: 70 | Self study: 75
Assessment 50% classwork, 50% written 2-hour examination
Resit Resit is by a 2-hour examination.
Lecturer Dr Mark Dunlop

General Aims

Students should gain a good understanding of the issues in developing for mobile environments, approaches to handling these issues and skills in developing for a widespread mobile platform.

Learning Outcomes

On completion of the class, a student should:

  • understand the special nature of mobile app development.
  • understand and be able to develop graphical user interfaces for mobile apps.
  • understand networking requirements/challenges for mobile app development and be able to understand and develop solutions.
  • understand and be able to develop 2D and 3D graphics as appropriate for mobiles.
  • have an awareness of research into advanced interaction techniques for mobiles.


Mobile Graphical User Interfaces (Application lifecycle, Event-based programming, defining flexible screen layouts, linking code with resources, Model-View-Controller design; permissions and app security); Data Storage on Mobile Devices (local databases, local files, settings); Networking (data exchange standards, designing for highly unstable networks, synchronisation); Mobile 2D Graphics (screen graphical elements, 2D standards, animation); Mobile 3D Graphics (Computer graphics 3D modelling and lighting, 3D standards); Linking to other phone services (sending texts and emails, showing maps); Sensors (typical range of sensors, location input, accelerometer input, approaches to handling sensor input, smoothing sensor data); Mobile Large Data Solutions (crowd sourcing and data sharing); Mobile Interaction Techniques (user experience vs usability, mobile interface guidelines, novel interaction approaches). Legal aspects of mobile computing and future directions. Alternative platforms and development environments and frameworks.

Transferable Skills and Cognitive Ability Learning Outcomes

  • To strengthen a student’s programming ability in environments with large APIs.
  • To strengthen a student’s programming ability in unstable situations.
  • To build team-development skills.
  • To build skills in working with a common mobile platform.

Recommended Text/Reading*

* This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Cameron, Dane. A Software Engineer Learns HTML5, JavaScript and jQuery. CreateSpace Independent Publishing Platform, 2013.

Crockford, Douglas. JavaScript: The Good Parts, O’Reilly Media, Inc., 2008.

Frain, Ben. Responsive web design with HTML5 and CSS3. Packt Publishing Ltd, 2012.

Griffiths, Dawn, and David Griffiths. Head First Android Development: A Brain-Friendly Guide. O’Reilly Media, Inc., 2017.