MS_corso base iOS iPhone_partI

38
CORSO BASE IPHONE Parte 1 martedì 18 ottobre 2011

description

La prima parte delle slide del CORSO BASE PER SVILUPPATORI iOS iPHONE - ottobre 2011. Slideshow di Francesco Lo Truglio

Transcript of MS_corso base iOS iPhone_partI

Page 1: MS_corso base iOS iPhone_partI

CORSO BASE IPHONEParte 1

martedì 18 ottobre 2011

Page 2: MS_corso base iOS iPhone_partI

INIZIAMO!

• Introduzione

• Programma

• Strumenti di Sviluppo

• Tecniche di Sviluppo

martedì 18 ottobre 2011

Page 3: MS_corso base iOS iPhone_partI

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

Page 4: MS_corso base iOS iPhone_partI

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

Page 5: MS_corso base iOS iPhone_partI

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

Page 6: MS_corso base iOS iPhone_partI

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

Page 7: MS_corso base iOS iPhone_partI

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

Page 8: MS_corso base iOS iPhone_partI

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

Page 9: MS_corso base iOS iPhone_partI

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

Page 10: MS_corso base iOS iPhone_partI

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

Page 11: MS_corso base iOS iPhone_partI

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

Page 12: MS_corso base iOS iPhone_partI

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

Page 13: MS_corso base iOS iPhone_partI

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

Page 14: MS_corso base iOS iPhone_partI

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

Page 15: MS_corso base iOS iPhone_partI

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

Page 16: MS_corso base iOS iPhone_partI

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

Page 17: MS_corso base iOS iPhone_partI

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

Page 18: MS_corso base iOS iPhone_partI

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

Page 19: MS_corso base iOS iPhone_partI

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

Page 20: MS_corso base iOS iPhone_partI

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

Page 21: MS_corso base iOS iPhone_partI

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

Page 22: MS_corso base iOS iPhone_partI

XCODEL’Ambiente di Lavoro

martedì 18 ottobre 2011

Page 23: MS_corso base iOS iPhone_partI

Xcode: Interfaccia

vista di Dettaglio

Gruppi, Files, Risorce

barra di stato

martedì 18 ottobre 2011

Page 24: MS_corso base iOS iPhone_partI

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

Page 25: MS_corso base iOS iPhone_partI

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

Page 26: MS_corso base iOS iPhone_partI

These are your primary IB windows.

INTERFACE BUILDERL’Ambiente di Lavoro

martedì 18 ottobre 2011

Page 27: MS_corso base iOS iPhone_partI

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

Page 28: MS_corso base iOS iPhone_partI

INTERFACE BUILDER

Gestore XIB Vista Interfaccia Proprietà

martedì 18 ottobre 2011

Page 29: MS_corso base iOS iPhone_partI

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

Page 30: MS_corso base iOS iPhone_partI

LA PRIMA APPLICAZIONEHello Man!

martedì 18 ottobre 2011

Page 31: MS_corso base iOS iPhone_partI

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

Page 32: MS_corso base iOS iPhone_partI

PRIMA APP : INTERFACCIA

UILabel

UITextField

UIButton

martedì 18 ottobre 2011

Page 33: MS_corso base iOS iPhone_partI

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

Page 34: MS_corso base iOS iPhone_partI

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

Page 35: MS_corso base iOS iPhone_partI

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

Page 36: MS_corso base iOS iPhone_partI

PRIMA APP:SIMULATORE

Proviamo l’app!

martedì 18 ottobre 2011

Page 37: MS_corso base iOS iPhone_partI

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

Page 38: MS_corso base iOS iPhone_partI

GRAZIE PER L’ATTENZIONEcontinua nella prossima sessione

martedì 18 ottobre 2011