Dopo tanta teoria finalmente iniziamo a scrivere la nostra prima applicazione!!!
Dopo tanta teoria è giunto il momento di scrivere la nostra prima, piccola, applicazione.
Realizzeremo il classico Hello World in cui l'utente immette il proprio nome in un input testuale, preme un pulsante e il risultato compare in una text-label.
Prima di aprire xCode un'ultima nota teorica. Programmare per iPhone vuol dire rispettare il design patter Model-View-Controller secondo lo schema:

Oggi disegneremo la nostra view con interface-builder, scriveremo il nostro controller e il nostro model tramite xcode.
La view rappresenta il modo con cui la nostra applicazione si interfaccia con l'utente, contiene elementi grafici e di input, le iterazioni ricevute dalla view vengono quindi passate al controller che ha il compito di modificare la vista e il model, questo (o questi) sono classi rappresentanti i nostri dati, avvolte possono essere semplici (come nel caso che a breve prenderemo in esame), avvolte complesse come nei progetti che vorrete intraprendere quando avrete imparato a scrivere applicazioni *serie*
Let's go!
Apriamo xCode e creiamo un nuovo progetto come iPhone -> View-Based Application.

Chiamiamo il nostro progetto "test" e diamo un'occhiata a cosa ci propone xCode.

xCode ha creato per noi diversi file, analizziamoli prima di proseguire.
- Classes - Raggruppamento virtuale di file che contiene tutte le classi del nostro progetto.
- testAppDelegate - Il Delegate principale della nostra applicazione, in particolare viene implementata di default la funzione applicationDidFinishLaunching:
- (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch [window addSubview:viewController.view]; [window makeKeyAndVisible]; }In cui viene associata la view alla finestra principale. - testViewCotroller - Il controller relativo alla nostra view, di default vengono implementati i metodi shouldAutorotateToInterfaceOrientation: responsabile del cambio di orientamento dell'interfaccia
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationPortrait); }e didReceiveMemoryWarning metodo alternativo al delegate visto nel capitolo precedente per gestire la richiesta di memoria del sistema operativo.- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview // Release anything that's not essential, such as cached data }
- testAppDelegate - Il Delegate principale della nostra applicazione, in particolare viene implementata di default la funzione applicationDidFinishLaunching:
- Other Sourcers
- test_Prefix.pch - Prefisso comune a tutti file del progetto in particolare vengono importati gli header di Foundation e UIKit
#ifdef __OBJC__ #import #import #endif
- main.m - Punto di ingresso della nostra applicazione, questione già affrontata nelle sezioni precedenti.
#import int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; }
- test_Prefix.pch - Prefisso comune a tutti file del progetto in particolare vengono importati gli header di Foundation e UIKit
- Resources
- testViewController.xib - Il file della view che andremo ad analizzare fra qualche instante
- MainWindow.xib - Il file della finestra principale, il contenitore che andrà a contenere la/le nostre view.
- Info.plist - Il file delle preferenze della nostra applicazione.
- Framework - Cartalla che contiene i framework che importiamo nella nostra applicazione.
- Products - Cartella che contiene gli eseguibili compilati da xCode.


