Learning objectives
The purpose of the course is to address the basic principles for developing on cutting-edge mobile platforms. In particular, students will be provided with the ability to understand:
The principles and key aspects of programming in a mobile environment.
Students will learn to apply these skills and will be capable of programming simple applications on Android smartphones.
Prerequisites
Strictly recommended prerequisites are:
-Object Oriented Programming
Recommended prerequisites for a better understanding of the course:
-Database fundamentals
- Software Engineering
Course unit content
The course will focus on the introduction to mobile application development for Android environments, with references to Cross-platform development. In particular, the following topics will be covered in the course:
Introduction to Mobile Computing (Architectures and Patterns): 16%
Object Oriented Programming in Kotlin: 10%
Android Environment Development: 42%
Processing of Sensor Data: 8%
Natural Language Processing with Mobile Devices: 16%
Cross-platform development: 8%
Full programme
The course will cover the introduction to mobile application development for Android environments, with a brief overview of Cross-platform development. In particular, it will be divided into 10 submodules:
1)Introduction to the Kotlin language
Language basics
Object Oriented Programming in Kotlin
Toy samples in Android Studio
2)Android basics
Layouts
Material Design guidelines
Best practices for User Interface development
Navigation and cross-device support
3)Networking
Connections and data retrieval using HTTP and REST
Data retrieval using Wi-Fi and Bluetooth
Exchange of information in JSON format
4)Data persistence
Internal storage
External storage
SQLite and Android ROOM
5)Background services
Android Work Manager
Service Life Cycle
Notifications
6)Concurrency
Concurrency in Kotlin
Concurrency and UI
Concurrency and Android
7)Sensors and multimedia (Raw data)
Accelerometer
Gyroscope
Camera
8)Android Open Source Project (Software-based motion sensors)
Gravity sensor
Linear accelerometer
Rotation vector sensor
Significant motion sensor
Step counter sensor
Step detector sensor
9)Towards Artificial Intelligence
Android Speech Recognizer -> SpeechToText
Android TextToSpeech
Introduction to Natural Language Processing
19)Native development Vs Cross-platform
Introduction to the React Native framework
Introduction to the Flutter framework
Analysis and comparison for project purposes
Bibliography
- Instructor-provided slides during lectures
- Open-access documentation: https://developer.android.com
- Laboratory exercises
Teaching methods
Lectures and laboratory exercises.
Assessment methods and criteria
The examination methods include:
1) The development of a final project related to the creation of a mobile application, either proposed by the student or chosen from those offered by the instructor.
2) The preparation of a detailed technical report on the project activity to be submitted at least 10 days before the examination date.
3) An oral examination involving theoretical questions and a PowerPoint presentation of the project activity.
Other information
- - -
2030 agenda goals for sustainable development
- - -