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

Anno accademico 2018/19
3° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
"altre conoscenze utili per l'inserimento nel mondo del lavoro"
Tipologia attività formativa
Altro
24 ore
di attività frontali
3 crediti
sede:
insegnamento
in

Modulo dell'insegnamento integrato: PROGRAMMAZIONE DI SISTEMI MOBILI

Obiettivi formativi

L'obiettivo del corso è quello di fornire i pilastri della programmazione mobile su piattaforma iOS rendendo così lo studente autonomo nel design, sviluppo e testing di applicazioni mobili.

Prerequisiti

Principi base di programmazione e programmazione ad oggetti.

Contenuti dell'insegnamento

Il corso copre i principi di base per lo sviluppo di applicazioni rivolte ai dispositivi mobili, come smartphone e tablet, e presenta le principali sfide legate alla progettazione, all'implementazione e alla distribuzione di applicazioni mobili.

Programma esteso

- Introduction to Mobile Computing. Introduction to Objective-C. (4h)
Mobile Computing & Development Introduction: Mobile system architecture and development challenges.
Objective-C - part I: Objective-C language basics, Classes and objects, Methods, Instance variables and properties, Dynamic binding and introspection, Foundation framework.

- OOP with Objective-C (4h)
Objective-C - part II: Object creation, Memory management, Automatic Reference Counting, Protocols, Categories.

- iOS operating system and UIKit (4h)
iOS SDK: iOS operating system, iOS SDK, Tools of the trade, Model-View-Controller, MVC interaction patterns, View Controllers.
UIKit views and controls: View Controller lifecycle, UIColor, UIFont, NSAttributedString, UIKit views and controls: UILabel, UIButton, UISlider, UISwitch, UITextField, UITextView, NSNotificationCenter, keyboard notifications

- Controllers of View Controllers (4h)
Controllers of View Controllers: Multiple MVCs, UINavigationController, Segues, UITabBarController

- Concurrency and Networking (4h)
Blocks, Concurrency, Networking: Blocks, Concurrency and multi-threading, Grand Central Dispatch (GCD), Networking, UIImage & UIImageView.
Scroll View, Table View, Collection View, Web View: Scroll views, Table views, Data source and Delegate, Table view cells, Collection views, Web views

- CoreLocation and MapKit, Sensors and Multimedia, AutoLayout (4h)
Core Location and Map Kit: Core Location, Getting the user’s location Geocoding, Map Kit, Annotating maps, Segueing programmatically, Working with JSON.
Sensors and Multimedia: Core Motion, Working with Audio and Video: Media Player framework, System Sound Services, AVFoundation framework, Camera and Photo Library. AutoLayout.

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

Il corso viene svolto con lezioni frontali in aula dove saranno illustrati sia gli aspetti teorici che pratici tramite la realizzazione di applicazioni ed esempi dedicati.

Modalità verifica apprendimento

L'esame prevede come prova finale la realizzazione di due progetti individuali uno per la piattaforma Android e uno per quella iOS.

Altre informazioni

- - -