Lezione 1 Sviluppo di Applicazioni per ios Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios
Oggi... ios e ios SDK Strumenti di sviluppo Linguaggio Objective C Fondamenti di OOP
Dispositivi ipad iphone ipod Touch
iphone 2007 iphone 3G 2008 iphone 3GS 2009 iphone 4 2010 iphone OS 1.0 iphone OS 3.1.3 iphone OS 2.0 ios 4.2.1 iphone OS 3.0 ios 4.3 ios 4.0 ios 4.3 ipad 2010 ios 3.2 ios 4.3
iphone 4 ipad 640 * 960 pixel 768 * 1024 pixel 960 * 640 pixel 1024 * 768 pixel iphone 3, 3GS ipod Touch 320 * 480 pixel 480 * 320 pixel Retina display (iphone 4) 1 point = 2 pixel
Due tipi di software girano sui dispositivi ios Le applicazioni ios I contenuti web Le applicazione scritte utilizzando ios SDK WebApps Pagine Web Ottimizzate per ios Pagine Web Compatibili con ios
Due tipi di software girano sui dispositivi ios Le applicazioni ios I contenuti web Le applicazione scritte utilizzando ios SDK WebApps Pagine Web Ottimizzate per ios Pagine Web Compatibili con ios
Due tipi di software girano sui dispositivi ios Le applicazioni ios I contenuti web Le applicazione scritte utilizzando ios SDK WebApps Pagine Web Ottimizzate per ios Pagine Web Compatibili con ios
Due tipi di software girano sui dispositivi ios Le applicazioni ios I contenuti web Le applicazione scritte utilizzando ios SDK WebApps Pagine Web Ottimizzate per ios Pagine Web Compatibili con ios
Due tipi di software girano sui dispositivi ios Le applicazioni ios Le applicazione scritte utilizzando ios SDK XI contenuti web WebApps Pagine Web Ottimizzate per ios Pagine Web Compatibili con ios
Due tipi di software girano sui dispositivi ios Le applicazioni ios Le applicazione scritte utilizzando ios SDK XI contenuti web WebApps Pagine Web Ottimizzate per ios Pagine Web Compatibili con ios
Le applicazioni ios Le applicazione scritte utilizzando ios SDK
Noi parleremo solo di applicazioni native ios Le applicazioni ios Le applicazione scritte utilizzando ios SDK
ios Overview Architettura di ios
Core OS
Core Services Core OS
Media Core Services Core OS
Cocoa Touch Media Core Services Core OS
Cocoa Touch Media Core Services Core OS
Core OS OSX Kernel Power Management Mach 3.0 BSD Sockets Security Keychain Access Certificates File System Bonjour
Cocoa Touch Media Core Services Core OS
Cocoa Touch Media Core Services Core OS
Core Services Collections Address Book File Access Networking SQLite Core Location Net Services Threading Preferences URL Utilities
Cocoa Touch Media Core Services Core OS
Cocoa Touch Media Core Services Core OS
Media Core Audio OpenAL Audio Mixing Audio Recording Video Playback JPEG, PNG, TIFF PDF Quartz (2D) Core Animation OpenGL ES
Cocoa Touch Media Core Services Core OS
Cocoa Touch Media Core Services Core OS
Cocoa Touch Multi-Touch Controls Accelerometer View Hierarchy Localization Alerts Web View Map Kit Image Picker Camera
Piattaforma Gli Strumenti Il Linguaggio I frameworks I Concetti OO
Gli Strumenti Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni
Gli Strumenti Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni
Gli Strumenti Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni
Gli Strumenti Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni
Gli Strumenti Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni
Gli Strumenti Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni
Utilizzare sempre lo strumento adatto Xcode Interface Builder Instruments Codice Debugging Documentazione Interfaccia utente Outlets Actions Profiling Prestazioni Ottimizzazioni Tutto ciò che può essere fatto con IB, può esser fatto anche tramite il codice, non c è nessuna magia. Generalmente parlando: se una cosa può essere fatta con IB, allora dovrebbe essere fatta con IB. In questo modo scriverete per la maggior parte del tempo il codice specifico della vostra applicazione e non il codice generico.
Il linguaggio Objective C NSString *mytext = [NSString stringwithformat: @ %@, self.label.text]; Qual è il segreto del successo? Integrazione tra gli strumenti, i frameworks e il linguaggio con una buona dose di OO patterns!
I frameworks Che cosa sono i frameworks? Il Framework è una directory che contiene delle risorse relazionate fra di loro. Il Framework può essere considerato come se fosse una libreria condivisa o package in Java. Però, i frameworks contengono, oltre le classi, anche le immagini, i suoni, la documentazione, le stringhe localizzate ecc.
I frameworks Foundation UI Kit Core Data Map Kit, Core Location... Fornisce tutte le classi di base: stringhe, numeri, collezioni ecc., utilizzate come mattoni per costruire altre classi. Gli elementi dell interfaccia utente come finestre, viste, controlli, caratteri, ecc. Fornisce i meccanismi necessari per la memorizzazione e la modellazione dei dati, indipendenti dal tipo di elaborazione utilizzata. e tanti altri che aggiungono tutte quelle funzionalità che rendono l utilizzo di applicazioni ios un esperienza unica.
I frameworks Foundation UI Kit Core Data Map Kit, Core Location... Fornisce tutte le classi di base: stringhe, numeri, collezioni ecc., utilizzate come mattoni per costruire altre classi. Gli elementi dell interfaccia utente come finestre, viste, controlli, caratteri, ecc. Fornisce i meccanismi necessari per la memorizzazione e la modellazione dei dati, indipendenti dal tipo di elaborazione utilizzata. e tanti altri che aggiungono tutte quelle funzionalità che rendono l utilizzo di applicazioni ios un esperienza unica.
I frameworks Foundation UI Kit Core Data Map Kit, Core Location... Fornisce tutte le classi di base: stringhe, numeri, collezioni ecc., utilizzate come mattoni per costruire altre classi. Gli elementi dell interfaccia utente come finestre, viste, controlli, caratteri, ecc. Fornisce i meccanismi necessari per la memorizzazione e la modellazione dei dati, indipendenti dal tipo di elaborazione utilizzata. e tanti altri che aggiungono tutte quelle funzionalità che rendono l utilizzo di applicazioni ios un esperienza unica.
I frameworks Foundation UI Kit Core Data Map Kit, Core Location... Fornisce tutte le classi di base: stringhe, numeri, collezioni ecc., utilizzate come mattoni per costruire altre classi. Gli elementi dell interfaccia utente come finestre, viste, controlli, caratteri, ecc. Fornisce i meccanismi necessari per la memorizzazione e la modellazione dei dati, indipendenti dal tipo di elaborazione utilizzata. e tanti altri che aggiungono tutte quelle funzionalità che rendono l utilizzo di applicazioni ios un esperienza unica.
I frameworks Foundation UI Kit Core Data Map Kit, Core Location... Fornisce tutte le classi di base: stringhe, numeri, collezioni ecc., utilizzate come mattoni per costruire altre classi. Gli elementi dell interfaccia utente come finestre, viste, controlli, caratteri, ecc. Fornisce i meccanismi necessari per la memorizzazione e la modellazione dei dati, indipendenti dal tipo di elaborazione utilizzata. e tanti altri che aggiungono tutte quelle funzionalità che rendono l utilizzo di applicazioni ios un esperienza unica.
I frameworks Foundation UI Kit Core Data Map Kit, Core Location... Fornisce tutte le classi di base: stringhe, numeri, collezioni ecc., utilizzate come mattoni per costruire altre classi. Gli elementi dell interfaccia utente come finestre, viste, controlli, caratteri, ecc. Fornisce i meccanismi necessari per la memorizzazione e la modellazione dei dati, indipendenti dal tipo di elaborazione utilizzata. e tanti altri che aggiungono tutte quelle funzionalità che rendono l esperienza unica, l utilizzo di applicazioni ios.
I frameworks vanno utilizzati Dovunque possibile usate le classi fornite dall Apple prima di scrivere le vostre. Alcuni segnali d allarme vi indicano che dovreste passare più tempo ad esplorare i frameworks: State scrivendo i metodi che hanno più di 50 righe, inclusi i commenti! Non sapete a cosa servono Option and Command key ( ) in Xcode!
Object Oriented MVC Target/Action Delegates Notification Permette di dividere un insieme di oggetti che collaborano tra di loro in gruppi distinti in base al ruolo che svolgono. Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento. Consiste nella comunicazione senza forte accoppiamento fra gli oggetti.
Object Oriented MVC Target/Action Delegates Notification Permette di dividere un insieme di oggetti che collaborano tra di loro in gruppi distinti in base al ruolo che svolgono. Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento. Consiste nella comunicazione senza forte accoppiamento fra gli oggetti.
MVC Model View Controller Gestisce i dati e lo stato dell applicazione senza occuparsi dell UI e del modo in cui verranno presentati. Di solito è persistente. Presenta le informazioni raccolte dal Modello. Mette a disposizione degli utenti gli oggetti coi quali possono interagire. Non è il proprietario dei dati! E il mediatore tra il Modello e la Vista. Aggiorna la Vista quando cambia il Modello. Aggiorna il Modello quando gli utenti manipolano le Viste.
Object Oriented MVC Target/Action Delegates Notification Permette di dividere un insieme di oggetti che collaborano tra di loro in gruppi distinti in base al ruolo che svolgono. Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento. Consiste nella comunicazione senza forte accoppiamento fra gli oggetti.
Object Oriented MVC Target/Action Delegates Notification Permette di dividere un insieme di oggetti che collaborano tra di loro in gruppi distinti in base al ruolo che svolgono. Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento. Consiste nella comunicazione senza forte accoppiamento fra gli oggetti.
Object Oriented MVC Target/Action Delegates Notification Permette di dividere un insieme di oggetti che collaborano tra di loro in gruppi distinti in base al ruolo che svolgono. Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento. Consiste nella comunicazione senza forte accoppiamento fra gli oggetti.
Object Oriented MVC Target/Action Delegates Notification Permette di dividere un insieme di oggetti che collaborano tra di loro in gruppi distinti in base al ruolo che svolgono. Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento. Consiste nella comunicazione senza forte accoppiamento fra gli oggetti.
Controller Model View
Controller Model View
Controller Model View
Controller Model View
Controller Model X View
Controller Target/Action Delegates View Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento.
Controller Target/Action Delegates View Evita il legame tra un elemento generico, riutilizzabile, dell interfaccia utente e il comportamento specifico. Reagisce alle modifiche avvenute su un altro oggetto Influenzandone il comportamento.
Controller Model Notification Consiste nella comunicazione senza forte accoppiamento fra gli oggetti. Un oggetto trasmette le informazioni ad un numero qualsiasi di altri oggetti senza essere avere specifiche informazioni su di essi.
Controller Model Notification Consiste nella comunicazione senza forte accoppiamento fra gli oggetti. Un oggetto trasmette le informazioni ad un numero qualsiasi di altri oggetti senza essere avere specifiche informazioni su di essi.
MVC View Controller Model
MVC View Controller Model
MVC View Controller Model Non escludere mai il controller dalla messaggistica
MVC View Controller Model Disaccoppiare gli oggetti
MVC View Controller Model
MVC View target/action Controller delegate Model Target/Action, Delegate
MVC View target/action Controller delegate Model
MVC View target/action Controller delegate Model KVC/KVO, Notification
View View View View Controller Controller Controller Controller Model Model Model Model Model
View View View View delegate Controller delegate Controller target/action Controller delegate target/action Controller Model Model Model Model Model
View View View View delegate Controller delegate Controller target/action Controller delegate target/action Controller Model Model Model Model Model
Demo
a seguire... Il linguaggio Objective C La sintassi Costrutti particolari di Objective C Category Protocol Property