PROGRAMMING OF MOBILE SYSTEMS
cod. 1006702

Academic year 2023/24
3° year of course - Second semester
Professor
- Gianfranco LOMBARDO
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
"altre conoscenze utili per l'inserimento nel mondo del lavoro"
Type of training activity
More
48 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in ITALIAN

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

- - -