Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa



Documenti analoghi
Elenco argomenti (1/2)

Sviluppo e manutenzione di un applicazione CAD tramite le WPF e l MV-VM

30 Collaboratori. Provenienti dalle più importanti agenzie internazionali e con grandi esperienze sviluppate nei più diversi settori merceologici.

ICARO Terminal Server per Aprile

Indice generale. Ringraziamenti...xi. Introduzione...xv. Capitolo 1 Tweet di benvenuto in ios Programmazione in ios...23

Guida all uso delle Web View su ios

WEB SEMINAR Dettaglio servizio

Guida di Installazione GCC

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Tecnologie dei Linguaggi di Programmazione

Architetture software

Corso Sviluppo App Iphone Ipad. Corso Sviluppo App Iphone Ipad Programma

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

Organizzazione delle informazioni: Database

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Laboratorio di Informatica

DESY è un prodotto ideato e sviluppato da

Programmazione Java Avanzata Spring - JDBC

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

CORSO DI PROGRAMMAZIONE JAVA

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso Sviluppo Apps su iphone e ipad Corso Online Sviluppo Apps su iphone e ipad

Cookie Policy per

Presentazione di Cedac Software

Organizzazioni nel Grid Computing

Progettaz. e sviluppo Data Base

CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP!

tesi di laurea Anno Accademico 2004/2005 relatore Ing. Massimo Ficco candidato Pasquale Incarnato Matr. 534/938

sito web sito Internet

Requisiti: Obiettivi: Procedimento:

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Progettazione : Design Pattern Creazionali

#cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Amazon EFS (elastic file system)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

PROGETTUALITA DIDATTICA DIPARTIMENTO

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

DBMS (Data Base Management System)

Cosa è un foglio elettronico

Informazioni sull'aggiornamento software. Nome file: UPD05014.bin. Contenuto

Capitolo 4 Pianificazione e Sviluppo di Web Part

Reingegnerizzazione di un Content Management System verso l accessibilità secondo la normativa italiana

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Progetto e sviluppo di unʼapplicazione iphone per lʼaccesso a reti di sensori senza fili."

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

Titolare del trattamento dei dati innanzi descritto è tsnpalombara.it

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Informazione. Piacere di guidare AGGIORNAMENTO SOFTWARE. INFORMAZIONI.

Indice PARTE PRIMA L INIZIO 1

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Come importare le foto senza utilizzare una fotocamera 2

Al giorno d oggi, i sistemi per la gestione di database

PROXYMA Contrà San Silvestro, Vicenza Tel Fax

AULA VIRTUALE Dettaglio servizio

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Introduzione al data base

Introduzione ai sistemi di basi di dati

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

LA MOBILITÀ A PORTATA DI MANO QUALCHE TOCCO SUL VOSTRO DISPOSITIVO MOBILE È TUTTO QUELLO CHE SERVE PER EFFETTUARE STAMPE E SCANSIONI SULLA STAMPANTE

Una architettura peer-topeer per la visualizzazione 3D distribuita

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Cookie Policy per

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Il database management system Access

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Mobile & Technology. Area di formazione. Corso ios base. Corso ios avanzato. Il mondo delle App: idee, creatività, business.

Progettazione di Basi di Dati

Componenti di una applicazione. Un programma applicativo è strutturato come un insieme organizzato di tre componenti funzionali:

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

CdL in Medicina Veterinaria - STPA AA

Hardware delle reti LAN

Architetture Applicative

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Strutture di accesso ai dati

Come valutare e scegliere un Sistema Operativo Embedded

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Panoramica: che cosa è necessario

DATANET Innovation & Integration

Divisione Education Technology. keep the knowledge flowing. Zainetto. verde. Education Provider

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Web Conferencing and Collaboration tool

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

WE FOR YOU. Gestione Documentale integrata con ERP

1 di :14

Introduzione al sistema operativo Il file system: file, directory,...

Applicazioni. ios e Android. con Google Maps. Giacomo Andreucci

Piattaforma ilearn di Hiteco. Presentazione Piattaforma ilearn

Transcript:

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