66860 - Mobile Applications Laboratory

Academic Year 2024/2025

  • Moduli: Luciano Bononi (Modulo 1) Federico Montori (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Information Science for Management (cod. 8014)

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

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

Introduction:

  • overview of technologies for iPhone, iPod Touch e iPad (and iOS in general).
  • overview of Android Technology

iOS Module:

  • iOS technology layers: Core OS, Core Services, Media, Cocoa Touch.
  • iOS e iOS SDK. Development tools for iOS: Xcode, Storyboard, Simulator.
  • Swift and Swift UI language (notes on differences with ObjectiveC).
  • Model-View-Controller.
  • Target, Action, Outlets.
  • Foundation Framework and UIKit (Cocoa Touch), user interface, UIWindow e UIView.
  • UIViewController and MultiViews, controllers and views.
  • Touch events and Multi-touch, gestures.
  • Debugging and Testing of iOS apps incrementally developed in classes.

Android Module:

  • Thehistory of Android versions
  • Installing the Android SDK
  • The Android Architecture
  • Java and Kotlin
  • The Android Resources System
  • Android Activities and Fragments
  • Android Intents
  • Android Layouts, Widgets and Events
  • Android Menu, Dialog and Toasts
  • Android Services and Background
  • Android Data Management
  • Maps Support (Google Maps, Mapbox, ...)
  • Android Network
  • Android Design guidelines and patterns
  • Android Navigation
  • Android System Services (alarms, sensors, vibration, audio)
  • Hybrid development framework
 

 

Readings/Bibliography

Matt Neuburg, iOS 11 Programming Fundamentals with Swift: Swift, Xcode, and Cocoa Basics, any later edition October 2017,

Craig Clayton, Learn iOS 11 Programming with Swift 4 - Second Edition: Learn the fundamentals of iOS app development with Swift and Xcode (2020) or any later edition.

Online Material on iOS Developer Library: https://developer.apple.com/library/ios/navigation/

Massimo Carli, Android 9 Guida completa per lo sviluppo di applicazioni mobile. Apogeo, ISBN: 8850334745

Materiale online su https://developer.android.com/

Teaching methods

The course is scheduled in the second semester, as a single class totalling 6 cfus, divided in two modules (iOS and Android). The course is structured with live lessons, in italian, with the slides and material in english. After the introduction to the fundamentals and principles of mobile applications' design, the basic notion of MVC (model-view-controller) design pattern and the software development kit for iOS (Xcode) and Android environments, the course is splitted into two concurrent lines with lessons and lab-programming specifically devoted to development of mobile applications in iOS and Android.

Every lesson is self-contained and illustrates a specific topic. Many references in each lesson are provided to libraries, tools and SDK, debug, etc. In most cases, the lessons are finalized with a live programming demo realizing a composite application which incorporates all the design, methodologied, best practices illustrated in the lesson. This allows the students to learn the concepts and understand their application in practice. Students are immediately able to realize their own applications on their own devices or in the laboratories in total autonomy.

The course will also include some useful guidelines and elements for hybrid applications' development.

In relation to the kind of activities and didactical methods adopted, the attendance to this class will require the preliminary participation of all the students to the Modules 1 and 2 of the Safety rules on study places, which can ne followed remotely in e-learning via the following link: [https://elearning-sicurezza.unibo.it/ ]

Assessment methods

The course requires the development of a typically individual project (in some cases a group of two people) with the realization of a iOS and/or Android application. A oral part will be planned to discuss the choices and motivations in the project realization (more or less 30 minutes). By the end of the classes, some project templates will be proposed, with various degrees of extensions possible. Interested students could proposed personalized projects (in this case the project application must be preliminary defined and agreed with the teacher and tutor, by sending an email with subject "Proposal for project of LAM exam A.A. X/Y" to the email address of the tutor of the class. Once defined a project (predefined or personalized) the candidate must develop the application in iOS or Android (or both) and prepare a 10-15 minutes presentation (with 10-20 slides) and a summary (pdf, ps, html) with the contents of the oral illustration, material, source code, device used, etc. The project must be delivered within one of the 6 deadlines that will be defined in the academic year: June, July, September, October, November, February. The project must be submitted within the planned deadlines (which will be communicated via mailing lists and website), by means of the VIRTUALE platform and attaching a zipped archive with the project and presentation/report. Once submitted the project, the students are invited to the oral part in the 2 weeks following the submission deadline. The oral part will be kept in presence in the teachers' offices or in a room of the Department of Computer Science and Engineering, in Mura Anteo Zamboni 7. The oral part also includes questions on all the program of the course, and questions on the demos presented during the lessons on both the platforms (iOS and Android). Students must be equivalently prepared to provide answers to both the development platforms. The outcome of the project evaluation and oral part will provide two different evaluations in the range [0..30]. Both evaluations must be sufficient to receive a overall sufficient evaluation and pass the exam. When the final score is equal or exceeds 30/30 the student could be awarded with "cum laude" evaluation.

Teaching tools

Electronic slides, personal computer and projector.
Microsoft Teams for sharing the video of slides and live programming sessions.
Laboratory devices.
Recommended readings and Web material.

Office hours

See the website of Luciano Bononi

See the website of Federico Montori

SDGs

Quality education Decent work and economic growth Industry, innovation and infrastructure Sustainable cities

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.