66860 - Mobile Applications Laboratory

Academic Year 2026/2027

  • Teaching Mode: In-person learning (entirely or partially)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Information Science for Management (cod. 6060)

    Also valid for First cycle degree programme (L) in Computer Science (cod. 8009)

Learning outcomes

The course covers the technological and methodological aspects and the tools for developing applications for mobile devices, primarily on the Android platform, with some references to iOS and hybrid technologies. It includes managing devices equipped with innovative user interfaces, multi-touch functionality, event handling, an in-depth explanation of the architecture of the major mobile systems, architectural design patterns, external data interfacing, sensors and geo-location, networking services, context-aware computing, and application testing. By the end of the course, students will know: The challenges of applications running in a wireless mobile context; The most important platforms for mobile application development; How applications are deployed and run in mobile devices; How to design and implement Android applications with the Android SDK; iOS SDK (basic concepts) and programming with hybrid frameworks (basic concepts)

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
  • Android Fragments and Navigation
  • 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
  • Pervasive computing (maps, sensors, …)
  • Programmatic UI and Compose
  • Flutter

Readings/Bibliography

Online material on https://developer.android.com/
Online material on https://developer.apple.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 and establishes the exam policies.

In particular, after presenting the basic notions and development tools (AndroidStudio and XCode), 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. 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). 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 project (individual or in groups of two) involving the development of a mobile application, in any available technology. 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, possible projects are proposed, 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.

Students with Specific Learning Disorders (SLD) or temporary or permanent disabilities: students are encouraged to contact the University's dedicated support office as early as possible (https://site.unibo.it/studenti-con-disabilita-e-dsa/it). The office will propose any appropriate accommodations for eligible students. Such accommodations must be submitted to the course instructor for approval at least 15 days in advance. The instructor will assess their suitability in relation to the intended learning outcomes of the course.

Regarding assessment, a limited, transparent, and non-substantive use of AI is permitted for support activities, such as summarization and rephrasing. The substantial use of AI to complete any part of the assessment is not permitted.

Teaching tools

Slides, personal computer, projector, online references.

Office hours

See the website of Federico Montori