66860 - Mobile Applications Laboratory

Academic Year 2025/2026

  • Moduli: Federico Montori (Modulo 1) Federico Montori (Modulo 2)
  • Teaching Mode: In-person learning (entirely or partially) In-person learning (entirely or partially) (Modulo 1); In-person learning (entirely or partially) (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Information Science for Management (cod. 8014)

Learning outcomes

At the end of the course, the student knows methodological and technological aspects, and application development tools for mobile devices both under iOS (iPhone, iPad, iPod Touch) and Android platforms. Students will understand the management of devices with innovative user interfaces, multi-touch, event management, ObjectiveC programming, Xcode and Cocoa Touch, Eclipse and Android SDK, design patterns, I/O, sensors and geo-localization/maps APIs, networking services, debugging and testing of applications. In addition, students will understand the basic issues of applications' execution in wireless mobile scenarios, and will experience the most relevant platforms for mobile applications' development, APIs of internal devices, multimedia management, iPhone and Android SDK and design of applications under a Model-View-Control pattern.

Course contents

  • Overview of the technological aspects of mobile devices

  • Differences between hybrid, native, and Web applications

  • Android Setup

  • Android Architecture and Components

  • Kotlin for Android

  • Android Activities

  • Android Views, Layouts, and Events

  • Android Resources

  • Android Intents

  • iOS Setup

  • iOS Architecture and Components

  • Swift for iOS

  • iOS Storyboards and UIKit

  • iOS Targets, Actions, and Outlets

  • Architectural Design Patterns

  • Android Background Work

  • Android Data Management

  • Android Fragments and Navigation

  • Pervasive computing (maps, sensors, …)

  • Programmatic UI and Compose

  • Programmatic UI and SwiftUI

  • Unit Tests and UI Tests

  • Flutter

  • React Native

Readings/Bibliography

Online material on https://developer.apple.com/library/ios/navigation/

Online material on https://developer.android.com/

Teaching methods

The course takes place in the second semester and is structured as in-person lectures held in Italian, with course materials provided in English. It first introduces the fundamental concepts that are covered in the rest of the course. In particular, after presenting the basic notions and development tools (iOS Xcode and Android SDK), the course is divided into two parallel but asymmetrical tracks of lectures and laboratory sessions focused on mobile application development in the Android and iOS environments.

Each lecture addresses a specific topic, with many references to support libraries, development tools, and debugging facilities. In most cases, lectures conclude with the practical application of the presented concepts through programming exercises carried out live in class by the instructor (demos). This approach fosters understanding of the principles and their practical implementation, enabling students to independently develop their own prototype applications outside the classroom (using personal development tools or the course’s teaching laboratory facilities).

The course also provides introductory elements to guide students toward hybrid application development.

Given the type of activities and teaching methods adopted, attendance in this course requires prior completion by all students of Modules 1 and 2 of the safety training for study environments, available in e-learning mode at: [https://elearning-sicurezza.unibo.it/ ]

Assessment methods

The course requires the completion of a typically individual project (in some cases, groups of two are allowed) involving the development of an iOS and/or Android application (if the student wishes, it may also be hybrid). The project must then be discussed, including the design and implementation choices, during an oral exam session (approximately 30 minutes). Before the end of the course, several types of mobile applications are proposed as possible project topics, along with possible levels of extension and complexity. If interested, students may propose their own project ideas. In this case, the application must be agreed upon in advance with the instructor and the tutor, preferably by sending an email with the subject line: “Proposta progetto esame corso LAM A.A. X/Y” to the course tutor’s email address.

Once the project has been defined (either approved by the instructor or selected from the provided list), the student must develop the application and prepare: a 10-minute presentation (supported by 10–15 slides); a written report in electronic format (PDF), equivalent to an expanded version of the presentation’s verbal content, including a description of how the application works supported by screenshots, design choices, and all references to materials, developed code, and documentation sources.

There are normally six annual submission deadlines: June, July, September, November, January, and February. Projects must be submitted by the indicated deadlines (communicated via the course mailing list and on the VIRTUALE course portal), exclusively through the course’s VIRTUALE platform, by uploading a compressed archive containing the project code and the report. After submission, students are usually invited to the oral exam within one or two weeks following the deadline. The exam date is scheduled in advance on Almaesami and published on the course newsgroup to allow interested students to attend. The exam takes place in person at the instructor’s office or in one of the seminar rooms of the Department of Computer Science and Engineering, located at Mura Anteo Zamboni 7. The exam session (project demo/presentation) also includes an oral examination (consisting of questions and short exercises) covering the entire course syllabus, including theoretical questions about the in-class demos carried out on both platforms (iOS and Android). Students are therefore required to be familiar with the development techniques illustrated in class for both platforms. The outcome of the project discussion results in a grade out of 30, which may be adjusted upward or downward based on the theoretical part of the oral exam. This determines the proposed final grade. Both parts of the exam must be passed in order to pass the course. If the final grade reaches or exceeds 30/30, honors (lode) may be awarded.

Teaching tools

Slides, personal computer, projector.

Online references.

Office hours

See the website of Federico Montori