MS_corso base iOS iPhone_partI
-
Upload
mobileschool -
Category
Technology
-
view
2.477 -
download
0
description
Transcript of MS_corso base iOS iPhone_partI
CORSO BASE IPHONEParte 1
martedì 18 ottobre 2011
INIZIAMO!
• Introduzione
• Programma
• Strumenti di Sviluppo
• Tecniche di Sviluppo
martedì 18 ottobre 2011
INTRODUZIONE: CHI SIAMO
•MobileSchoolDiffondiamo la cultura mobile in Italia organizzando corsi su come realizzare applicazioni per iPhone iOS e Android eseminari invitando a condividere l’esperienza di chi ha già lanciato una startup mobile.
• Francesco Lo TruglioSviluppatore Senior esperto in tecnologie Web e Mobile.Per l’occasione il vostro Docente!
• XcodeL’ambiente di sviluppo su cui lavoreremo e il nostro principale nemico/alleato durante tutte le fasi dello Sviluppo!
• IphoneMelafonino o surrugato di tecnologia, l’oggetto che vogliamo conquistare con le app che impareremo a sviluppare.
•
martedì 18 ottobre 2011
PROGRAMMA DI OGGI
• Introduzione alla Programmazione
• Cenni di Objective-C
• L’ambiente di Lavoro (pre)
• Break [10,30]
• XCode
• Interface Builder
• Break [13,00]
• Interfaccia Utente (MVC)
• La nostra prima Applicazione
• UIScroll View/UITableView
martedì 18 ottobre 2011
OBJECTIVE -C
Objective-C è il principale linguaggio di programmazione che si utilizza per creare applicazioni per OSX.
E' la base da apprendere per utilizzare le librerie (framework) che Apple mette a disposizione e che consentono lo sviluppo di applicazioni su:
• OSX
• iPhone
• iPodTouch
martedì 18 ottobre 2011
OBJECTIVE C
E' un linguaggio di programmazione ad oggetti (OOP) molto simile a altri linguaggi come Java o C++.
Le tecniche di OOP seppure utili verranno spiegate durante il corso, per soffermarci più sul lato pratico. Il Nostro scopo e fornirvi gli strumenti per iniziare immediatamente a sviluppare!
martedì 18 ottobre 2011
OBJECTIVE C: CENNI SUGLI OGGETTI
CLASSI e OGGETTI sono elementi astratti che permettono di rappresentare oggetti reali (o immaginari) in oggetti software.
Ogni Oggetto appartiene a una Classe e i nostri programmi saranno un insieme di oggetti che dialogano tra loro inviandosi messaggi e ricevendo risposte attraverso metodi e funzioni.
martedì 18 ottobre 2011
OBJECTIVE C: LA PRIMA CLASSE
In Objective-C per definire un oggetto, quindi la classe cui esso appartiene, abbiamo bisogno di due file:
• uno (.h) che definisce l'interfaccia della classe
• l'altro (.m) che ne definisce l'implementazione
L'interfaccia descrive le azioni (i metodi e funzioni) della classe e nasconde l'implementazione che definisce il codice vero e proprio, ovvero ciò che le azioni realmente eseguono.
martedì 18 ottobre 2011
OBJECTIVE C: ESEMPIO DI INTERFACCIA
Un Esempio di Intefaccia (fclass.h)
@interface FClass : NSObject {
- int variabile;- bool variabile2;
}
- (void)Metodo;
@end
dichiarazione di interfaccia
nome della classe
classe di appartenenza
variabili di classe
metodi (azioni) esposti
martedì 18 ottobre 2011
OBJECTIVE C: ESEMPIO DI IMPLEMENTAZIONE
Un Esempio di Implementazione (fclass.m)
#import "FClass.h"
@implementation FClass
- (void) Metodo {// commento: ...
}
@end
implementazione della classe
interfaccia da implementare
implementazione dei metodi
martedì 18 ottobre 2011
OBJECTIVE C: I METODI
Struttura di un metodo:
I metodi possono ricevere dati:
- (void) Metodo;
tipo di risultato (void nessun risultato)
nome del metodotipologia di metodo(- di istanza)(+ di classe)
- (bool) maggioredi:(int)num1 compara:(int)num2;
tipo argomento nome argomento
nome argomento esposto
nome argomento metodo
martedì 18 ottobre 2011
OBJECTIVE C:PROPRIETÀ
Le variabili, possono essere lette e/o modificate da chi utilizza le nostre classi, per far questo le nostre variabili dovranno diventare proprietà e fornire dei metodi specifici (getter/setter).
Objective-C può generare automaticamente questi metodi attraverso l'utilizzo delle keyword @properties e @synthesize.
martedì 18 ottobre 2011
OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter :
@interface FClass : NSObject {
- int numero;
}
@properties (retain) int numero;
- (void)Metodo;
@end
accessori della proprietà
Gli accessori definiscono il
comportamento dei metodi di Get
e Set
martedì 18 ottobre 2011
OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter :
@interface FClass : NSObject {
- int numero;
}
@properties (retain) int numero;
- (void)Metodo;
@end
accessori della proprietà
Gli accessori definiscono il
comportamento dei metodi di Get
e Set
martedì 18 ottobre 2011
OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter :
@interface FClass : NSObject {
- int numero;
}
@properties (retain) int numero;
- (void)Metodo;
@end
accessori della proprietà
Gli accessori definiscono il
comportamento dei metodi di Get
e Set
martedì 18 ottobre 2011
OBJECTIVE C:PROPRIETÀ 2
Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter :
@interface FClass : NSObject {
- int numero;
}
@properties (retain) int numero;
- (void)Metodo;
@end
accessori della proprietà
Gli accessori definiscono il
comportamento dei metodi di Get
e Set
martedì 18 ottobre 2011
OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore, l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore, l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore, l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore, l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI
• alloc: viene allocata (predisposta) la memoria necessaria ad ospitare l'oggetto.
• init: viene inizializzato l'oggetto invocando il suo costruttore, l'oggetto "prende vita".
• use: utilizzo dell'oggetto.
• dealloc: rimozione dalla memoria.
alloc init use dealloc
martedì 18 ottobre 2011
XCODEL’Ambiente di Lavoro
martedì 18 ottobre 2011
Xcode: Interfaccia
vista di Dettaglio
Gruppi, Files, Risorce
barra di stato
martedì 18 ottobre 2011
XCODE
•Gruppi e File: gestione file e gruppi (cartelle), aggiunta/rimozione framework, aggiunta/rimozione classi (con il wizard), Warning ed Errori
•Vista di Dettaglio: Modifica del codice, Gestione breakpoint, navigazione tra i file e le classi
•Barra di Stato: mostra lo stato dell’applicazione durante operazioni come la compilazione.
martedì 18 ottobre 2011
XCODE
•Visualizzazione dell’Interfaccia: tenendo premuto Command e doppio click su una classe o oggetto, verrà aperta la relativa interfaccia.Riferimenti alle API: tenedo premuto command e doppio click su un simbolo verranno mostrate le informazioni sull’utilizzo del simbolo.•Completamento del codice: durante la scrittura del
codice, Xcode vi aiuterà nella scrittura del codice.•Chiusura del codice: sarà possibile “raggruppare” il
codice non utile al momento (es. Metodi non usati).
martedì 18 ottobre 2011
These are your primary IB windows.
INTERFACE BUILDERL’Ambiente di Lavoro
martedì 18 ottobre 2011
INTERFACE BUILDER
Interface Builder rende semplice la costruzione dei prototipi grafici senza bisogno di scrivere alcuna riga di codice. Sarà possibile inserire qualunque degli elementi grafici standard come per esempio: pulsanti, etichette, campi di testo, tabelle ecc. solo con il drag&drop.
Xcode, lavora in tempo reale con l’interface builder, quindi le assegnazioni potranno essere effettuate
semplicemente modificando le interfacce.
martedì 18 ottobre 2011
INTERFACE BUILDER
Gestore XIB Vista Interfaccia Proprietà
martedì 18 ottobre 2011
INTERFACE BUILDER
•Gestore XIB: permette la gestione degli elementi presenti nell’interfaccia
•Vista Interfaccia: visualizza in tempo reale l’interfaccia che si sta creando, inoltre permette la gestione di tutti gli elementi del Gestore XIB (drag&drop).
•Proprietà: permette di modificare le proprietà degli oggetti presenti nell’interfaccia e di gestire le associazioni.
martedì 18 ottobre 2011
LA PRIMA APPLICAZIONEHello Man!
martedì 18 ottobre 2011
PRIMA APP
La nostra prima applicazione dovrà contenere gli elementi di base per l’interfaccia e una semplice interazione.
Conoscenze: Associazioni, Eventi;
Obiettivo:
Creare un app che mostri il proprio nome in una textLabel dopo aver letto il valore da una UITextView alla pressione di un tasto.
martedì 18 ottobre 2011
PRIMA APP : INTERFACCIA
UILabel
UITextField
UIButton
martedì 18 ottobre 2011
PRIMA APP : INTERFACCIA
@interface firstapp1ViewController : UIViewController {! UILabel *cambia;! UIButton *pulsante;! UITextField *scrivi;!!}
@property (nonatomic,retain) IBOutlet UILabel *cambia;@property (nonatomic,retain) IBOutlet UIButton *pulsante;@property (nonatomic,retain) IBOutlet UITextField *scrivi;
-(IBAction) pulsante_clicker;
@end
martedì 18 ottobre 2011
PRIMA APP:ASSEGNAZIONE ELEMENTI
Una volta create le proprietà dentro il codice, si dovranno assegnare agli elementi grafici direttamente con l’INTERFACE BUILDER.
Per fare ciò basta trascinare gli elementi dell’Inspector verso gli oggetti grafici nel layout.
martedì 18 ottobre 2011
PRIMA APP:IMPLEMENTAZIONE
Come già spiegato l’interfaccia descrive la classe, mentre l’implementazione descrive il comportamento: #import "firstapp1ViewController.h"
@implementation firstapp1ViewController@synthesize scrivi, cambia, pulsante;
-(IBAction) pulsante_clicker {! NSString *scritto = [scrivi text];! [cambia setText:scritto];!}
- (void)didReceiveMemoryWarning {! // Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];}
- (void)viewDidUnload {! // Release any retained subviews of the main view.! // e.g. self.myOutlet = nil;}
- (void)dealloc {! [scrivi dealloc];! [cambia dealloc]; [super dealloc];}
@end
martedì 18 ottobre 2011
PRIMA APP:SIMULATORE
Proviamo l’app!
martedì 18 ottobre 2011
UISCROLLVIEW / UITABLEVIEW
Mostrare elenchi di dati o griglie di essi è la prima attività necessaria quando si vuole creare un’app di livello professionale o che si connetta a repository remoti per scaricare i dati.
Pertanto come prima esercitazione da analizzare e discutere durante la sessione del corso vi allego un progetto Xcode da discutere nella prossima sessione:
firstApp.zip
martedì 18 ottobre 2011
GRAZIE PER L’ATTENZIONEcontinua nella prossima sessione
martedì 18 ottobre 2011