SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
CORSO BASE IPHONE
                                 Parte 1




martedì 18 ottobre 2011
INIZIAMO!


    • Introduzione

    • Programma

    • Strumenti            di Sviluppo

    • Tecniche            di Sviluppo



martedì 18 ottobre 2011
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
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)


       dichiarazione di interfaccia                                           classe di appartenenza


                                    @interface FClass : NSObject {


                nome della classe       - int variabile;                         variabili di classe
                                        - bool variabile2;

                                    }

                                    - (void)Metodo;
                                                                 metodi (azioni) esposti
                                    @end


martedì 18 ottobre 2011
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

                                        @end




martedì 18 ottobre 2011
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 esposto


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 {
                                                                      Gli accessori
                              - int numero;                           definiscono il
                                                    accessori della
                                                                    comportamento
                                                      proprietà
                                                                    dei metodi di Get
                          }                                               e Set

                          @properties (retain) int numero;

                          - (void)Metodo;

                          @end




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 {
                                                                      Gli accessori
                              - int numero;                           definiscono il
                                                    accessori della
                                                                    comportamento
                                                      proprietà
                                                                    dei metodi di Get
                          }                                               e Set

                          @properties (retain) int numero;

                          - (void)Metodo;

                          @end




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 {
                                                                      Gli accessori
                              - int numero;                           definiscono il
                                                    accessori della
                                                                    comportamento
                                                      proprietà
                                                                    dei metodi di Get
                          }                                               e Set

                          @properties (retain) int numero;

                          - (void)Metodo;

                          @end




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 {
                                                                      Gli accessori
                              - int numero;                           definiscono il
                                                    accessori della
                                                                    comportamento
                                                      proprietà
                                                                    dei metodi di Get
                          }                                               e Set

                          @properties (retain) int numero;

                          - (void)Metodo;

                          @end




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
XCODE
                          L’Ambiente di Lavoro

martedì 18 ottobre 2011
Gruppi, Files, Risorce
                                                           vista di Dettaglio


                          barra di stato



                                      Xcode: Interfaccia

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
INTERFACE BUILDER
                              L’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 APPLICAZIONE
                          Hello 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                                 [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
            doesn't have a superview.




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’ATTENZIONE
                          continua nella prossima sessione

martedì 18 ottobre 2011

Weitere ähnliche Inhalte

Was ist angesagt?

05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 
Py a3 python-metaprogramming
Py a3 python-metaprogrammingPy a3 python-metaprogramming
Py a3 python-metaprogrammingMajong DevJfu
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereMatteo Valoriani
 
06 - Programmazione: Scope Variabili
06 - Programmazione: Scope Variabili06 - Programmazione: Scope Variabili
06 - Programmazione: Scope VariabiliMajong DevJfu
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturatiMajong DevJfu
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013Matteo Valoriani
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#Marco Parenzan
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java BaseK-Tech Formazione
 
Pe a3 perl-metaprogramming
Pe a3 perl-metaprogrammingPe a3 perl-metaprogramming
Pe a3 perl-metaprogrammingMajong DevJfu
 
07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioniMajong DevJfu
 
Scala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéScala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéEdmondo Porcu
 
Eclipse emf
Eclipse emfEclipse emf
Eclipse emfAdvenias
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2Majong DevJfu
 
C# e la Framework Class Library
C# e la Framework Class LibraryC# e la Framework Class Library
C# e la Framework Class LibraryManuel Scapolan
 
Dai delegati a LINQ con C#
Dai delegati a LINQ con C#Dai delegati a LINQ con C#
Dai delegati a LINQ con C#Manuel Scapolan
 

Was ist angesagt? (20)

05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
Py a3 python-metaprogramming
Py a3 python-metaprogrammingPy a3 python-metaprogramming
Py a3 python-metaprogramming
 
C#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivereC#, imparare a programmare e sopravvivere
C#, imparare a programmare e sopravvivere
 
Pe t1 perl-intro
Pe t1 perl-introPe t1 perl-intro
Pe t1 perl-intro
 
06 - Programmazione: Scope Variabili
06 - Programmazione: Scope Variabili06 - Programmazione: Scope Variabili
06 - Programmazione: Scope Variabili
 
Py t1 python-intro
Py t1 python-introPy t1 python-intro
Py t1 python-intro
 
10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati10 - Programmazione: Tipi di dato strutturati
10 - Programmazione: Tipi di dato strutturati
 
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
 
2011.02.19 Introducing F#
2011.02.19 Introducing F#2011.02.19 Introducing F#
2011.02.19 Introducing F#
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
 
Py a4 python-file
Py a4 python-filePy a4 python-file
Py a4 python-file
 
Pe a3 perl-metaprogramming
Pe a3 perl-metaprogrammingPe a3 perl-metaprogramming
Pe a3 perl-metaprogramming
 
OOP with C#
OOP with C#OOP with C#
OOP with C#
 
07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni07 - Programmazione: Tipi di base e conversioni
07 - Programmazione: Tipi di base e conversioni
 
Scala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perchéScala: come recuperare la programmazione funzionale e perché
Scala: come recuperare la programmazione funzionale e perché
 
T8 supporti
T8 supportiT8 supporti
T8 supporti
 
Eclipse emf
Eclipse emfEclipse emf
Eclipse emf
 
11 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 211 - Programmazione: Tipi di dato strutturati pt. 2
11 - Programmazione: Tipi di dato strutturati pt. 2
 
C# e la Framework Class Library
C# e la Framework Class LibraryC# e la Framework Class Library
C# e la Framework Class Library
 
Dai delegati a LINQ con C#
Dai delegati a LINQ con C#Dai delegati a LINQ con C#
Dai delegati a LINQ con C#
 

Andere mochten auch

Andrea Carnimeo presentazione informatica
Andrea Carnimeo presentazione informaticaAndrea Carnimeo presentazione informatica
Andrea Carnimeo presentazione informaticaandreacarnimeo
 
Media Book 33° Rally degli Abeti 2015
Media Book 33° Rally degli Abeti 2015Media Book 33° Rally degli Abeti 2015
Media Book 33° Rally degli Abeti 2015ALESSANDRO BUGELLI
 
Ferrari usine
Ferrari usineFerrari usine
Ferrari usinedenis
 
Fiat esercitazione1
Fiat esercitazione1Fiat esercitazione1
Fiat esercitazione1MartyBizz
 
Galleria ferrari, Maranello 2011
Galleria ferrari, Maranello 2011Galleria ferrari, Maranello 2011
Galleria ferrari, Maranello 2011Francesco Contini
 
Corporate strategy project - Samsung Electronics
Corporate strategy project - Samsung ElectronicsCorporate strategy project - Samsung Electronics
Corporate strategy project - Samsung ElectronicsRiccardo Giovannini
 
кодирование и обработка звуковой информации
кодирование и обработка звуковой информациикодирование и обработка звуковой информации
кодирование и обработка звуковой информацииmetodkopilka
 
Ricerca l'amborghini
Ricerca l'amborghiniRicerca l'amborghini
Ricerca l'amborghinivalterlosa99
 
Presentazione rally
Presentazione rallyPresentazione rally
Presentazione rallygofarusr
 
Presentacion Audi Pps
Presentacion Audi PpsPresentacion Audi Pps
Presentacion Audi PpsSergio
 
Presentation school g. ferrari parma
Presentation school g. ferrari   parmaPresentation school g. ferrari   parma
Presentation school g. ferrari parmagofarusr
 
Lamborghini Gallardo
Lamborghini GallardoLamborghini Gallardo
Lamborghini GallardoPradeep Peter
 
Senza nome ferrari
Senza nome ferrariSenza nome ferrari
Senza nome ferrarihatepain99
 
Digital magazine lamborghini Twintip
Digital magazine lamborghini  Twintip  Digital magazine lamborghini  Twintip
Digital magazine lamborghini Twintip InSide Training
 
Presentazione IPSIA A. Ferrari
Presentazione IPSIA A. FerrariPresentazione IPSIA A. Ferrari
Presentazione IPSIA A. Ferrarigofarusr
 

Andere mochten auch (20)

Andrea Carnimeo presentazione informatica
Andrea Carnimeo presentazione informaticaAndrea Carnimeo presentazione informatica
Andrea Carnimeo presentazione informatica
 
Media Book 33° Rally degli Abeti 2015
Media Book 33° Rally degli Abeti 2015Media Book 33° Rally degli Abeti 2015
Media Book 33° Rally degli Abeti 2015
 
Ferrari usine
Ferrari usineFerrari usine
Ferrari usine
 
Fiat esercitazione1
Fiat esercitazione1Fiat esercitazione1
Fiat esercitazione1
 
Galleria ferrari, Maranello 2011
Galleria ferrari, Maranello 2011Galleria ferrari, Maranello 2011
Galleria ferrari, Maranello 2011
 
Corporate strategy project - Samsung Electronics
Corporate strategy project - Samsung ElectronicsCorporate strategy project - Samsung Electronics
Corporate strategy project - Samsung Electronics
 
La Storia di Apple & Steve.JObs
La Storia di Apple & Steve.JObsLa Storia di Apple & Steve.JObs
La Storia di Apple & Steve.JObs
 
Volkswagen
VolkswagenVolkswagen
Volkswagen
 
Il mediterraneo
Il mediterraneoIl mediterraneo
Il mediterraneo
 
кодирование и обработка звуковой информации
кодирование и обработка звуковой информациикодирование и обработка звуковой информации
кодирование и обработка звуковой информации
 
Ricerca l'amborghini
Ricerca l'amborghiniRicerca l'amborghini
Ricerca l'amborghini
 
Presentazione rally
Presentazione rallyPresentazione rally
Presentazione rally
 
Presentacion Audi Pps
Presentacion Audi PpsPresentacion Audi Pps
Presentacion Audi Pps
 
Presentation school g. ferrari parma
Presentation school g. ferrari   parmaPresentation school g. ferrari   parma
Presentation school g. ferrari parma
 
Lamborghini Gallardo
Lamborghini GallardoLamborghini Gallardo
Lamborghini Gallardo
 
Enzo Ferrari
Enzo FerrariEnzo Ferrari
Enzo Ferrari
 
Senza nome ferrari
Senza nome ferrariSenza nome ferrari
Senza nome ferrari
 
Fiat India
Fiat IndiaFiat India
Fiat India
 
Digital magazine lamborghini Twintip
Digital magazine lamborghini  Twintip  Digital magazine lamborghini  Twintip
Digital magazine lamborghini Twintip
 
Presentazione IPSIA A. Ferrari
Presentazione IPSIA A. FerrariPresentazione IPSIA A. Ferrari
Presentazione IPSIA A. Ferrari
 

Ähnlich wie MS_corso base iOS iPhone_partI

ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaDario Rusignuolo
 
Sviluppare app native per iOS
Sviluppare app native per iOSSviluppare app native per iOS
Sviluppare app native per iOSGaspare Novara
 
Sviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto DigitaleSviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto Digitalelostrettodigitale
 
Non solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitNon solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitMaurizio Delmonte
 
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiMarco Gasparetto
 
Dependency injection: the good parts
Dependency injection:  the good partsDependency injection:  the good parts
Dependency injection: the good partsMassimo Groppelli
 
Lezione 04 - Factory method
Lezione 04 - Factory methodLezione 04 - Factory method
Lezione 04 - Factory methodMarco Bianchi
 
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsNoDelay Software
 
Sperimentazione di Tecnologie di Deep Learning su Sistemi Embedded
Sperimentazione di Tecnologie di Deep Learning su Sistemi EmbeddedSperimentazione di Tecnologie di Deep Learning su Sistemi Embedded
Sperimentazione di Tecnologie di Deep Learning su Sistemi EmbeddedMathiasPoloPerucchin
 
Sviluppare su OpenOffice.org con Java
Sviluppare su OpenOffice.org con JavaSviluppare su OpenOffice.org con Java
Sviluppare su OpenOffice.org con JavaMarcello Teodori
 

Ähnlich wie MS_corso base iOS iPhone_partI (20)

[Objective-C] - Introduzione
[Objective-C] - Introduzione[Objective-C] - Introduzione
[Objective-C] - Introduzione
 
ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - ita
 
Sviluppare app native per iOS
Sviluppare app native per iOSSviluppare app native per iOS
Sviluppare app native per iOS
 
Sviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto DigitaleSviluppare apps native per iOS - Lo Stretto Digitale
Sviluppare apps native per iOS - Lo Stretto Digitale
 
Non solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitNon solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
 
Lezione01
Lezione01Lezione01
Lezione01
 
Lezione01
Lezione01Lezione01
Lezione01
 
Inferno Limbo Italian
Inferno Limbo ItalianInferno Limbo Italian
Inferno Limbo Italian
 
WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessi
 
Corso Java
Corso JavaCorso Java
Corso Java
 
Dependency injection: the good parts
Dependency injection:  the good partsDependency injection:  the good parts
Dependency injection: the good parts
 
Lezione 04 - Factory method
Lezione 04 - Factory methodLezione 04 - Factory method
Lezione 04 - Factory method
 
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
 
Lezione 11 - Bridge
Lezione 11 - BridgeLezione 11 - Bridge
Lezione 11 - Bridge
 
T6 codice
T6 codiceT6 codice
T6 codice
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
Sperimentazione di Tecnologie di Deep Learning su Sistemi Embedded
Sperimentazione di Tecnologie di Deep Learning su Sistemi EmbeddedSperimentazione di Tecnologie di Deep Learning su Sistemi Embedded
Sperimentazione di Tecnologie di Deep Learning su Sistemi Embedded
 
Sviluppare su OpenOffice.org con Java
Sviluppare su OpenOffice.org con JavaSviluppare su OpenOffice.org con Java
Sviluppare su OpenOffice.org con Java
 
Spring @Aspect e @Controller
Spring @Aspect e @Controller Spring @Aspect e @Controller
Spring @Aspect e @Controller
 
Programming iOS lezione 1
Programming iOS lezione 1Programming iOS lezione 1
Programming iOS lezione 1
 

Kürzlich hochgeladen

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 

Kürzlich hochgeladen (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 

MS_corso base iOS iPhone_partI

  • 1. CORSO BASE IPHONE Parte 1 martedì 18 ottobre 2011
  • 2. INIZIAMO! • Introduzione • Programma • Strumenti di Sviluppo • Tecniche di Sviluppo martedì 18 ottobre 2011
  • 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. 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
  • 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 • iPodTouch martedì 18 ottobre 2011
  • 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. 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. 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
  • 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 @end martedì 18 ottobre 2011
  • 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 @end martedì 18 ottobre 2011
  • 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 esposto martedì 18 ottobre 2011
  • 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 l'utilizzo delle keyword @properties e @synthesize. martedì 18 ottobre 2011
  • 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; @end martedì 18 ottobre 2011
  • 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; @end martedì 18 ottobre 2011
  • 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; @end martedì 18 ottobre 2011
  • 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; @end martedì 18 ottobre 2011
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. XCODE L’Ambiente di Lavoro martedì 18 ottobre 2011
  • 23. Gruppi, Files, Risorce vista di Dettaglio barra di stato Xcode: Interfaccia martedì 18 ottobre 2011
  • 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. 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. INTERFACE BUILDER L’Ambiente di Lavoro martedì 18 ottobre 2011
  • 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. INTERFACE BUILDER Gestore XIB Vista Interfaccia Proprietà martedì 18 ottobre 2011
  • 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. LA PRIMA APPLICAZIONE Hello Man! martedì 18 ottobre 2011
  • 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. PRIMA APP : INTERFACCIA UILabel UITextField UIButton martedì 18 ottobre 2011
  • 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; @end martedì 18 ottobre 2011
  • 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. 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 doesn't have a superview. martedì 18 ottobre 2011
  • 36. PRIMA APP:SIMULATORE Proviamo l’app! martedì 18 ottobre 2011
  • 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.zip martedì 18 ottobre 2011
  • 38. GRAZIE PER L’ATTENZIONE continua nella prossima sessione martedì 18 ottobre 2011