- Programmazione di Dispositivi Mobili
- Introduzione
Syllabus del corso
Obiettivi
Alla fine del corso lo studente sarà in grado di sviluppare applicazioni in ambiente Android avendo cura anche di aspetti legati alla user experience
Contenuti sintetici
Progettazione e sviluppo di applicazioni mobili. Progettazione dell'interfaccia utente. Sviluppo di applicazioni per dispositivi Android.
Programma esteso
- Sviluppo di applicazioni mobili
- Opportunità di mercato
- Requisiti tecnici per Apple (iOS), Google (Android)
- Sfide: dimensioni limitate dello schermo, problemi di memoria e frammentazione
- Cenni a framework cross-platform (e.g., Flutter, React Native, Apache Cordoba, Sencha, Corona, Xamarin)
2) Progettazione dell'interfaccia utente
- Linee guida per la progettazione di un'interfaccia utente non solo bella, ma anche usabile (Material Design)
- Le persone al primo posto: parametri da considerare per rendere accessibile a tutti la propria applicazione
- Progettazione Mobile First e Responsive Design
- Imparare ad usare i colori, i font, e in generale i componenti grafici più appropriati per ogni contesto
3) Sviluppo di applicazioni per dispositivi Android
- Introduzione alla piattaforma Android
- Ambiente di sviluppo: Android Studio, Google Software Development kit e le versioni, Genymotion e debugger
- Ciclo di vita di un'applicazione: le Activity e i Fragment
- Layout e widget di base ed avanzati
- La concorrenza: threads e task asincroni
- Oltre l'aspetto grafico: Content provider e Service
- Architettura di un'applicazione Android
- Pubblicazione di un'applicazione sul Google Play Store
Prerequisiti
Programmazioe ad oggetti con Java e programmazione distribuita
Modalità didattica
Lezioni e esercitazioni in aula. Laboratori assistiti con supporto del tutor e materiale ausiliario.
Il corso sarà erogato in italiano.
Nel periodo di emergenza Covid-19 le lezioni, esercitazioni e i laboratori si svolgeranno combinando lezioni videoregistrate asincrone a lezioni sincrone.
Materiale didattico
Periodo di erogazione dell'insegnamento
Secondo semestre
Modalità di verifica del profitto e valutazione
La consegna consiste di un documento di descrizione del progetto, del software e la relativa documentazione. La discussione verterà sulla soluzione programmativa adotatta sul progetto.
Il progetto sarà valutato rispetto alla completezza della solzione proposta, alla progettazione della soluzione e alla user experience.
Orario di ricevimento
Su appuntamento.
Aims
At the end of the course the student will be able to develop Android apps, also taking care of aspects related to the user experience.
Contents
Design and development of mobile applications. Design of the user interface. Development of applications for Android devices.
Detailed program
1) Introduction to the design and development of mobile applications
- Development of mobile applications
- Market Opportunities
- Technical requirements for Apple (iOS), Google (Android)
- Challenges: limited screen size, memory problems and fragmentation
- Notes to cross-platform framework (e.g., Flutter, React Native, Apache Cordoba, Sencha, Corona, Xamarin)
2) Designing the user interface
- Guidelines for designing a user interface that is not only beautiful, but also usable (Material Design)
- People in first place: parameters to consider in order to make your application accessible to all
- Mobile Design First and Responsive Design
- Learn how to use colors, fonts, and in general the most appropriate graphic components for each context
3) Development of applications for Android devices
- Introduction to the Android platform
- Development Environment: Android Studio, Google Software Development kit and versions, Genymotion and debugger
- Life cycle of an application: Activities and Fragments
- Basic and advanced layouts and widgets
- The competition: asynchronous threads and tasks
- Beyond the graphic aspect: Content providers and services
- Architecture of an Android application
- Publish an application on the Google Play Store
Prerequisites
Object-oriented programming with Java and distributed programming
Teaching form
Lectures and recitations. Practice labs with tutor support and auxiliary leaning material.
The course will be given in Italian.
During covid-19 emergency, the lectures, recitations and practice labs will be both online and recorded.
Textbook and teaching resource
Android Programming: The Big Nerd Ranch Guide (3rd Edition)
Semester
Second semester
Assessment method
Assignment of a practical project and oral discussion of the project.
The artifacts of the project must include a project description document, the software and its documentation. The oral discussion will focus on the solution adopted on the project.
The project will be evaluated with respect to the completeness of the proposed solution, the design of the solution, and the user experience.
Office hours
On appointment.