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 modules 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. You will undertake a
substantial software implementation project, working in pairs. The module will be taught primarily using the Java and/or Kotlin languages.
You should be aware that there are limited places available on this module. |
Session |
Autumn 2023/24 |
Credits |
15 |
Assessment |
Coursework. Students will plan, design and develop
an Android application, working in groups. |
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 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
|
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 |
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 65. |
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 |
|