MS_corso base iOS iPhone_partI

2,538 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,538
On SlideShare
0
From Embeds
0
Number of Embeds
829
Actions
Shares
0
Downloads
53
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

MS_corso base iOS iPhone_partI

  1. 1. CORSO BASE IPHONE Parte 1martedì 18 ottobre 2011
  2. 2. INIZIAMO! • Introduzione • Programma • Strumenti di Sviluppo • Tecniche di Sviluppomartedì 18 ottobre 2011
  3. 3. INTRODUZIONE: CHI SIAMO • MobileSchool • Diffondiamo 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 Truglio Sviluppatore Senior esperto in tecnologie Web e Mobile. Per l’occasione il vostro Docente! • Xcode L’ambiente di sviluppo su cui lavoreremo e il nostro principale nemico/alleato durante tutte le fasi dello Sviluppo! • Iphone Melafonino o surrugato di tecnologia, l’oggetto che vogliamo conquistare con le app che impareremo a sviluppare.martedì 18 ottobre 2011
  4. 4. 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/UITableViewmartedì 18 ottobre 2011
  5. 5. 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 • iPodTouchmartedì 18 ottobre 2011
  6. 6. 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
  7. 7. 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
  8. 8. 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 linterfaccia della classe • laltro (.m) che ne definisce limplementazione Linterfaccia descrive le azioni (i metodi e funzioni) della classe e nasconde limplementazione che definisce il codice vero e proprio, ovvero ciò che le azioni realmente eseguono.martedì 18 ottobre 2011
  9. 9. OBJECTIVE C: ESEMPIO DI INTERFACCIA Un Esempio di Intefaccia (fclass.h) dichiarazione di interfaccia classe di appartenenza @interface FClass : NSObject { nome della classe - int variabile; variabili di classe - bool variabile2; } - (void)Metodo; metodi (azioni) esposti @endmartedì 18 ottobre 2011
  10. 10. OBJECTIVE C: ESEMPIO DI IMPLEMENTAZIONE Un Esempio di Implementazione (fclass.m) interfaccia da implementare #import "FClass.h" @implementation FClass implementazione della classe - (void) Metodo { // commento: ... } implementazione dei metodi @endmartedì 18 ottobre 2011
  11. 11. OBJECTIVE C: I METODI Struttura di un metodo: - (void) Metodo; tipologia di metodo tipo di risultato nome del metodo (- di istanza) (void nessun risultato) (+ di classe) I metodi possono ricevere dati: - (bool) maggioredi:(int)num1 compara:(int)num2; tipo argomento nome argomento nome argomento metodo nome argomento espostomartedì 18 ottobre 2011
  12. 12. 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 lutilizzo delle keyword @properties e @synthesize.martedì 18 ottobre 2011
  13. 13. OBJECTIVE C:PROPRIETÀ 2 Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter: @interface FClass : NSObject { Gli accessori - int numero; definiscono il accessori della comportamento proprietà dei metodi di Get } e Set @properties (retain) int numero; - (void)Metodo; @endmartedì 18 ottobre 2011
  14. 14. OBJECTIVE C:PROPRIETÀ 2 Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter: @interface FClass : NSObject { Gli accessori - int numero; definiscono il accessori della comportamento proprietà dei metodi di Get } e Set @properties (retain) int numero; - (void)Metodo; @endmartedì 18 ottobre 2011
  15. 15. OBJECTIVE C:PROPRIETÀ 2 Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter: @interface FClass : NSObject { Gli accessori - int numero; definiscono il accessori della comportamento proprietà dei metodi di Get } e Set @properties (retain) int numero; - (void)Metodo; @endmartedì 18 ottobre 2011
  16. 16. OBJECTIVE C:PROPRIETÀ 2 Nel file di Interfaccia dobbiamo dichiarare di quali variabili vogliamo creare i getter e setter: @interface FClass : NSObject { Gli accessori - int numero; definiscono il accessori della comportamento proprietà dei metodi di Get } e Set @properties (retain) int numero; - (void)Metodo; @endmartedì 18 ottobre 2011
  17. 17. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI • alloc: viene allocata (predisposta) la memoria necessaria ad ospitare loggetto. • init: viene inizializzato loggetto invocando il suo costruttore, loggetto "prende vita". • use: utilizzo delloggetto. • dealloc: rimozione dalla memoria. alloc init use deallocmartedì 18 ottobre 2011
  18. 18. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI • alloc: viene allocata (predisposta) la memoria necessaria ad ospitare loggetto. • init: viene inizializzato loggetto invocando il suo costruttore, loggetto "prende vita". • use: utilizzo delloggetto. • dealloc: rimozione dalla memoria. alloc init use deallocmartedì 18 ottobre 2011
  19. 19. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI • alloc: viene allocata (predisposta) la memoria necessaria ad ospitare loggetto. • init: viene inizializzato loggetto invocando il suo costruttore, loggetto "prende vita". • use: utilizzo delloggetto. • dealloc: rimozione dalla memoria. alloc init use deallocmartedì 18 ottobre 2011
  20. 20. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI • alloc: viene allocata (predisposta) la memoria necessaria ad ospitare loggetto. • init: viene inizializzato loggetto invocando il suo costruttore, loggetto "prende vita". • use: utilizzo delloggetto. • dealloc: rimozione dalla memoria. alloc init use deallocmartedì 18 ottobre 2011
  21. 21. OBJECTIVE C: CICLO DI VITA DEGLI OGGETTI • alloc: viene allocata (predisposta) la memoria necessaria ad ospitare loggetto. • init: viene inizializzato loggetto invocando il suo costruttore, loggetto "prende vita". • use: utilizzo delloggetto. • dealloc: rimozione dalla memoria. alloc init use deallocmartedì 18 ottobre 2011
  22. 22. XCODE L’Ambiente di Lavoromartedì 18 ottobre 2011
  23. 23. Gruppi, Files, Risorce vista di Dettaglio barra di stato Xcode: Interfacciamartedì 18 ottobre 2011
  24. 24. 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
  25. 25. 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
  26. 26. INTERFACE BUILDER L’Ambiente di Lavoromartedì 18 ottobre 2011
  27. 27. 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
  28. 28. INTERFACE BUILDER Gestore XIB Vista Interfaccia Proprietàmartedì 18 ottobre 2011
  29. 29. 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
  30. 30. LA PRIMA APPLICAZIONE Hello Man!martedì 18 ottobre 2011
  31. 31. 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
  32. 32. PRIMA APP : INTERFACCIA UILabel UITextField UIButtonmartedì 18 ottobre 2011
  33. 33. 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; @endmartedì 18 ottobre 2011
  34. 34. 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
  35. 35. PRIMA APP:IMPLEMENTAZIONE Come già spiegato l’interfaccia descrive la classe, mentre l’implementazione descrive il comportamento: #import [super "firstapp1ViewController.h" didReceiveMemoryWarning]; } @implementation firstapp1ViewController - (void)viewDidUnload { @synthesize scrivi, cambia, ! // Release any retained pulsante; subviews of the main view. ! // e.g. self.myOutlet = nil; } -(IBAction) pulsante_clicker { ! NSString *scritto = [scrivi text]; - (void)dealloc { ! [cambia setText:scritto]; ! [scrivi dealloc]; ! ! [cambia dealloc]; } [super dealloc]; } - (void)didReceiveMemoryWarning { ! // Releases the view if it @end doesnt have a superview.martedì 18 ottobre 2011
  36. 36. PRIMA APP:SIMULATORE Proviamo l’app!martedì 18 ottobre 2011
  37. 37. 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.zipmartedì 18 ottobre 2011
  38. 38. GRAZIE PER L’ATTENZIONE continua nella prossima sessionemartedì 18 ottobre 2011

×