The University of Sheffield
Department of Computer Science

COM6510 Software Development for Mobile Devices


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 groups. The module will be taught primarily using the Java and/or Kotlin languages.

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

Session Autumn 2021/22
Credits 15
Assessment Coursework. Students will plan, design and develop an Android application, working in groups.
Lecturer(s) Dr Po Yang & Dr Temitope Adeosun
  • 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.
Objectives By the end of the unit, a candidate 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
  • 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 This module is only suitable for students who are strong programmers in an object oriented language (Java is a requirement). The maximum number of students allowed on the module is 75.
Essential skills Students should be very experienced in object-oriented software development.
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 that students need to be able to understand.
Programming is a practical skill, so the lectures are supplemented with lab-based classes in which specific technical topics are thought and applied. These classes support the development of practical programming skills.
Feedback Feedback on solutions to laboratory exercise sheets, throughout the semester
Feedback on interim and final stages of the project work
Recommended Reading
  • Android architecture components
  • Android Interface guidelines
  • Android design guidelines