Obiettivi formativi
Introduzione allo sviluppo su piattoforme mobili.
Architettura delle piattaforme mobili e componenti chiave.
Programmazione su Piattaforma iOS.
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
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.
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.