The University of Sheffield
Department of Computer Science

COM6510 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 module emphasises 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 teams.

Session Autumn 2024/25
Credits 15
Assessment

Coursework. Students will work in teams to plan, design and develop an Android application, for a given set of requirements.

Individual assessment - Blackboard test 

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 object-oriented programming
  • 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 an understanding of how to optimise the performance of mobile applications software
  • to develop skills in implementing mobile software applications that use text and touch input, as well as sensors.
Learning Outcomes  By the end of the module the student will be able to:
  • Describe the software architecture of a modern mobile device
  • Apply design patterns such as model-view-controller or MVVM when developing software for mobile devices
  • Create software for mobile devices, making use of unique features of these devices such as touch input, sensors, foreground and background services.
  • Understand the importance of usability in mobile applications and know best practices in implementing mobile apps
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 object-oriented software development and programming.

Optional modules within the department have limited capacity. We will always try to accommodate all students but cannot guarantee a place. 

Teaching Method There will be 1 lecture a week in a lecture theatre, and 2 hours of lab-based lecture. Lectures provide the basic technical material and models/knowledge/practices that students need to be able to understand.
Programming is a practical skill, so the lectures are supplemented with lab-based classes in which lecture topics are practised and applied. These classes support the development of practical, industry relevant, programming skills.
Feedback Discussion with staff during lab classes provides formative assessment during weeks 1 through 10. A demonstration will be given in week 11, with verbal feedback given to team/s during the session. An online forum is also available for asking questions related to lectures/labs/assignment, etc., with replies given up till the end of week 11.