The University of Sheffield
Department of Computer Science

COM31007 Software Development for Mobile Devices

Summary

This module aims to provide a thorough grounding in the principles of software development for mobile devices. The Android platform will be used as an example, although the modules emphasizes general principles that are common across all mobile platforms. An important aim of the module is to demonstrate the real-world application of object-oriented programming principles and design patterns in software for mobile devices. Students undertake a substantial software implementation project, working in pairs.

Students should be aware that there are limited places available on this course.

Session Autumn 2023/24
Credits 10
Assessment Students will work in small teams to complete a programming assignment, which will require them to design and implement a system that demonstrates achievements of all three learning outcomes.
Lecturer(s) Mr Andrew Stratton
Resources
Aims
  • to develop an understanding of the software architecture underlying modern mobile devices
  • to develop an understanding of how design patterns are used in software frameworks for mobile devices
  • to develop skills in team working
  • to develop an understanding of usability in mobile applications
  • to develop an understanding of how to process data in a mobile application
  • to develop an understanding of how to access programmatically and use efficiently a phone's sensors
  • to develop skills in implementing mobile software applications that use text and touch input.
Learning Outcomes  By the end of the unit, a candidate will be able to:
  • Describe the software architecture of a modern mobile device (A1).
  • Apply design patterns such as model-view-controller or MVVM when developing software for mobile devices (A2, A7).
  • Create software for mobile devices, making use of unique features of these devices such as touch input, sensors, foreground and background services (A3, A5, A6, A7).
Content
  • Introduction to mobile computing
  • How to design a mobile app
  • Android framework
  • Tools and development environments
  • App lifecycle
  • Views and layouts
  • Sensors
  • Persistence and databases
  • Creating background and foreground services
  • Sending data to a server
Restrictions

Students should be experienced in Java programming and object-oriented software development. The maximum number of students allowed on the module is 55.

Cannot be taken with COM4510 or COM6510.

Teaching Method There will be 1 lecture a week in a lecture theatre, and 1 hours of lab-based lecture. Lectures provide the basic technical material that students need to be able to understand (A1, A2, A4, A5, A6). Programming is a practical skill, so the lectures are supplemented with 1 hour of lab. According to the topic, one hour online lab may be turned into a lab-based lecture.
Feedback

Discussion with staff during lab classes provides formative assessment throughout semester.