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
- Operating systems and multithreading
Recommended prerequisites for a better understanding of the course:
-Database fundamentals
- Software Engineering
Course unit content
The course will focus on introducing mobile application development for Android environments, with an overview of Cross-platform development. Specifically, the following topics will be covered:
I-ntroduction to Mobile Computing (Architectures and Patterns)
-Object-Oriented -Programming in Kotlin
-Development in the Android environment
-Local and remote databases
-Concurrent and asynchronous programming
-Sensor data processing
-Introduction to Machine Learning for mobile applications
Full programme
The course will focus on introducing mobile application development for Android environments, with an overview of Cross-platform development. It will be divided into 10 submodules:
1)Introduction to Kotlin language
Language basics
Object-Oriented Programming in Kotlin
Toy samples in Android Studio
Android basics
2)Layouts
Best practices for User Interface development
Navigation and cross-device support
Networking
3)Connections and data retrieval via HTTP and REST
Data retrieval using WiFi and Bluetooth
Information exchange in JSON format
Data persistence
4)Internal storage
External storage
SQLite and Android ROOM
Background services
5)Android Work Manager
Service Life Cycle
Notifications
Concurrency
6)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
10)Design patterns for software development
Creational patterns
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
- - -