Skip to Main Content (Press Enter)

Logo UNINSUBRIA
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills

UNI-FIND
Logo UNINSUBRIA

|

UNI-FIND

uninsubria.it
  • ×
  • Home
  • Degrees
  • Courses
  • Jobs
  • People
  • Outputs
  • Organizations
  • Third Mission
  • Projects
  • Expertise & Skills
  1. Courses

SCV0241 - Programming mobile devices

courses
ID:
SCV0241
Duration (hours):
56
CFU:
6
SSD:
INFORMATICA
Year:
2025
  • Overview
  • Syllabus
  • Degrees
  • People

Overview

Date/time interval

Secondo Semestre (23/02/2026 - 29/05/2026)

Syllabus

Course Objectives

The objective of this course is to present in detail the aspects related to the programming of mobile devices. The course starts from the discussion of the architectures of mobile devices and the peculiar characteristics of the programming of these devices. The most common software architectures are then presented, and the Android case is discussed in detail. The main frameworks that make up the Android system and the services that can be integrated within the applications with particular attention to the Google API, are analyzed. Application examples are then presented, based on which an analysis of the application development process is performed.
At the end of the course the student
1. has the knowledge necessary to understand the most advanced aspects of the Android framework, the use of its components and services. Furthermore, the student has the necessary knowledge to deal individually with other mobile application development frameworks.
2. is able to design, develop and test applications for mobile devices based on Android and to understand the frameworks available for service integration.
3. is able to choose independently the solutions best suited to the implementation of a specific application.
4. is able to fully communicate the characteristics of a programming framework for mobile devices and to discuss the architectural choices underlying the completed projects.

Course Prerequisites

The student dealing with this course must have a detailed knowledge of the architecture of the computers, of programming in the Java language and of the fundamental data structures.

Teaching Methods

The course is divided into lectures (40 hours) which are used to understand what the programming of mobile devices is, and exercises (16 hours) to learn programming in the mobile environment.
Given the highly applicative characteristic of the course, the lectures will be interspersed with exercises carried out in an equipped laboratory. The laboratory allows concrete manipulation of the topics covered in class through the possibility of being able to choose and decide the best solution to a given problem.
Attendance at the lessons followed by the study of the topic is strongly recommended to be able to face the exercise connected to the topic.

Some exercises require an evaluation phase made by the teacher through the Moodle platform. The assessments of these exercises contribute to the final grade for the exam.

Assessment Methods

The exam consists of a set of questions formulated to verify the knowledge and expected learning outcomes through developing and discussing a project developed in the Android framework. The test aims to verify that the student has understood the distinctive programming features for mobile devices by making the right architectural choices in developing the project. The written test, via online quiz, can be taken at the end of the course, during the exam sessions. To pass the exam, the student must: • answer about 20 quizzes on topics covered in class and made available through the Moodle platform during the exam session in one of the available computer labs. This test allows the student to obtain a V1 grade between 0 and 30, assigned automatically when the time available is up. The test is passed with any grade achieved. • develop a project chosen from the set of projects available or proposed by the student. The project must be agreed with the teacher before proceeding with the development. The project must be developed entirely with GIT, and the link must be delivered to the teacher before the exam. The total grade V2 between 0 and 30 for the project depends on the quality of the delivered project, how it is presented, and the answers to the questions asked by the teacher about the project. The presentation of the project takes place through a laptop or PC in which AndroidStudio and an Android emulator are installed. It is possible to present the project after completing the quizzes, regardless of the grade obtained in the latter. The final mark is given by the average of the two marks, V1 and V2, plus a possible increase/decrease of a maximum of 5 points which will depend on the quality and degree of knowledge of the project presented. The test is passed if the final grade is greater than or equal to 18/30.

Contents

The lessons will address the following topics:

Introduction to mobile devices (8 h, educational goal 1)
- Hardware architecture of a mobile device
- Development and production environments at Android Studio
- Distinctive features of mobile device programming (usability, robustness, ...).
- Android and Kernel versions.
- Dalvik VM and ART VM,
- LogCat as a logging system
- Types of applications in the Android environment

Essential elements in mobile device programming (32 h, educational objective 2)
- Creating a HelloWorld App for Android
- Git as a versioning system for mobile application projects
- Creation of an Activity and study of its life cycle
- Configuration and management of an onClick event in event-driven programming. Listener
- Components of an App, Processes, and Task
- Task and Backstack for the navigation among the various activities of an application
- Resources of an Android App: Color, Dimension, Internationalization, etc.
- Management of the contents of an Activity using View and View Groups such as ListView, GridView, RecyclerView, Adapters, and Adapters.
- Fragments and their use.
- Creating apps with a local database. Examples with SQLite
- Explicit and implicit intents
- Toolbar creation and management, ActionBar, menu

Advanced elements in mobile device programming (16 h, training objectives 3 and 4)
- Google Maps, Location Based Services, Location providers, Geocoding
- Permissions for the use of sensitive information on a mobile device.
- Firebase for authentication, analytics, real-time database
- Thread, AsyncTask, Services

Topics will be addressed using Kotlin and Java programming languages for the Android environment. Nevertheless, many of the topics covered in the course are of general validity, and the proposed techniques are applied to different languages.

Course Language

Italian

More information

Given the continuous evolution of mobile device programming, particular textbooks that risk becoming obsolete after a few months are not offered.
The teaching material is available on the e-learning website: Slides, lecture notes, and application examples.
However, several books and websites can profitably be used by students to integrate the material provided through e-learning. For example
- To study the structure of Android studio projects: https://developer.android.com/training/basics/firstapp/
- To study the architecture of the app: https://developer.android.com/jetpack/docs/guide
- Book updated to a recent version of Android:
The Busy Coder’s Guide To Android Development (Final Version)
Author(s): Murphy Mark L.
Series: The Busy Coder’s Guide to Android Development
Publisher: CommonsWare, Year: 2019

Degrees

Degrees

COMPUTER SCIENCE 
Bachelor’s Degree
3 years
No Results Found

People

People

GALLO IGNAZIO
Settore INFO-01/A - Informatica
PE6_11 - Machine learning, statistical data processing and applications using signal processing (e.g. speech, image, video) - (2020)
Goal 3: Good health and well-being
Gruppo 01/INFO-01 - INFORMATICA
Goal 4: Quality education
AREA MIN. 01 - Scienze matematiche e informatiche
Goal 9: Industry, Innovation, and Infrastructure
PE6_7 - Artificial intelligence, intelligent systems, multi agent systems - (2020)
PE6_8 - Computer graphics, computer vision, multi media, computer games - (2020)
Ricercatori
No Results Found
  • Accessibility
  • Use of cookies

Powered by VIVO | Designed by Cineca | 26.4.5.0