PROGRAMMAZIONE DI SISTEMI MOBILI (1° MODULO)
cod. 1006703

Anno accademico 2021/22
2° anno di corso - Secondo semestre
Docente
- Simone CIRANI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
24 ore
di attività frontali
3 crediti
sede:
insegnamento
in

Modulo dell'insegnamento integrato: PROGRAMMAZIONE DI SISTEMI MOBILI

Obiettivi formativi

La finalità del corso è quella di affrontare i principi di base per lo sviluppo su piattaforme mobili di ultima generazione.
In particolare verrà fornita allo studente la capacità di comprendere:
- i principi e gli aspetti chiave della programmazione in ambiente mobile
- le caratteristiche delle due principali piattaforme principali per smartphone e tablet: Android e iOS.

Lo studente imparerà ad applicare tali competenze e sarà capace di programmare semplici applicazioni su smartphone in ambiente iOS ed Android.

Prerequisiti

Prerequisiti:
- Programmazione di base (algoritmi e strutture dati)
Le seguenti voci sono fortemente consigliate:
- Esperienza con la programmazione orientata agli oggetti
- Design pattern

Contenuti dell'insegnamento

Introduzione allo sviluppo su piattoforme mobili.
Architettura delle piattaforme mobili e componenti chiave.
Programmazione su Piattaforma iOS.

Programma esteso

- Introduzione al Mobile Computing. Introduzione all'Objective-C.
Mobile Computing & Development Introduzione: architettura del sistema mobile e sfide di sviluppo.

- Objective-C - parte I: Nozioni di base sul linguaggio Objective-C, Classi e oggetti, Metodi, Variabili di istanza e proprietà, Binding dinamico e introspezione, Foundation Framework.

- OOP con Objective-C
Objective-C - parte II: Creazione di oggetti, Gestione della memoria, Automatic Reference Counting, Protocolli, Categorie.

- Sistema operativo iOS e UIKit
iOS SDK: sistema operativo iOS, iOS SDK, Tools of the trade, Model-View-Controller, Pattern di interazione MVC, View Controller.
Viste e controlli UIKit: ciclo di vita di ViewController, UIColor, UIFont, NSAttributedString, view e control: UILabel, UIButton, UISlider, UISwitch, UITextField, UITextView, NSNotificationCenter, notifiche tastiera

- Controller di ViewController
MVC multipli, UINavigationController , Segues, UITabBarController

- Concurrency & Networking
Blocchi di concorrenza e rete, concorrenza, networking: blocchi, concorrenza e multi-threading, Grand Central Dispatch (GCD), networking, UIImage e UIImageView.

- Scroll View, Table View, Collection View, Web View
Scroll views, Table views, Data source e Delegate, Table view cells, Collection views, Web views

- CoreLocation e MapKit, sensori e multimedia, auto-layout
Core Location e Map Kit: Core Location, Recupero della posizione dell'utente. Geocoding, MapKit, Annotazione di mappe, Segue programmatiche, Utilizzo di JSON.

- Sensori e Multimedia: Core Motion, Audio&Video:
Media Player, System Sound Services, AVFoundation, Fotocamera e Libreria Foto. Auto-Layout.

Bibliografia

Programming iOS 7
by Matt Neuburg
O'Reilly Media - December 2013

iOS 7 Programming Fundamentals
by Matt Neuburg
O'Reilly Media - October 2013

Metodi didattici

Didattica frontale ed esercitazioni.

Modalità verifica apprendimento

Progetti individuali di fine corso per piattaforme Android ed iOS.

Altre informazioni

- - -