back to top

Guida sviluppo applicazioni per iPhone

Introduzione allo sviluppo di applicazioni per iOS

In questa guida andremo ad analizzare i principali aspetti che riguardano lo sviluppo di applicazioni per dispositivi con piattaforma iOS come, ad esempio, iPhone ed iPad. Utilizzando le informazioni ed il codice d'esempio mostrato si vogliono fornire al lettore tutte le basi e gli strumenti necessari per poter realizzare, in maniera del tutto autonoma, applicazioni di media complessità. Come detto precedentemente,...

Le operazioni preliminari – Guida Sviluppo App iOS

Entriamo subito nel vivo della trattazione, mostrando i passi preliminari per poter iniziare a sviluppare applicazioni per iOS. Come prima cosa è necessario iscriversi, in maniera del tutto gratuita, come developer nella pagina dedicata sul sito della Apple raggiungibile a questo link. E' sufficiente seguire il processo di registrazione, che richiede alcune fasi, per ricevere la conferma via e-mail con...

Gli strumenti di lavoro – Guida Sviluppo App iOS

Nel capitolo precedente abbiamo illustrato come scaricare ed installare gli strumenti di lavoro di cui abbiamo bisogno. Facciamo adesso una breve panoramica sui linguaggi e sugli strumenti di lavoro che andremo ad utilizzare in questa guida: Objective C E' il linguaggio di programmazione con il quale si realizzano applicazioni su piattaforma iOS e per applicativi desktop su piattaforma Mac OS. Objective...

Panoramica sull’architettura di iOS – Guida Sviluppo App iOS

Prima di iniziare a trattare lo sviluppo vero e proprio di applicazioni per sistemi iOS, è opportuno fare una breve introduzione delle caratteristiche e della struttura di questa piattaforma. Iniziamo con il dire che la struttura del sistema è di tipo stratificato e possiamo dunque immaginarla come una serie di strati, uno sopra l'altro, che implementeranno determinate funzioni. Dunque...

Objective C: dichiarazione di classi e metodi – Guida Sviluppo App iOS

Andiamo adesso a fare una breve panoramica sul linguaggio Objective C. Come nel linguaggio C, ci troveremo a dover lavorare con file aventi due estensioni: .h e .m. I file con la prima estensione (.h) sono gli header file e dunque conterranno le definizione delle classi, dei tipi e dei metodi. In sostanza viene mostrato un prototipo della classe e dei...

Objective C: implementazione di una classe (esempio pratico) – Guida Sviluppo App iOS

Abbiamo visto, nella lezione precedente, come strutturare il file header per la definizione di una nuova una classe. Andiamo adesso a vedere come viene eseguita l'implementazione della classe nel file .m. Come d'abitudine vediamo un breve listato di codice che poi andremo ad analizzare: #import "MiaClasse.h" @implementation MiaClasse -(void)comparaStringa:(NSString *)stringa2 { miaStringa = initWithString:@"Hello World"]; if(){ NSLog(@"UGUALI"); ...

Objective C: property e synthesize – Guida Sviluppo App iOS

In Objective C gli attributi di una classe vengono definiti come attributi privati. Ciò vuol dire che dall'esterno è impossibile, in maniera diretta, modificare o sapere il valore di un determinato attributo. Nella programmazione ad oggetti, ogni attributo di una classe dovrebbe essere sempre privato per poter implementare il concetto di incapsulamento. Per poter accedere agli attributi, solitamente, vengono creati...

Introduzione ad Xcode – Guida Sviluppo App iOS

Abbiamo visto nei precedenti capitoli, in modo estremamente sintetico, le caratteristiche principali dell'Objective C che lo discostano dagi altri linguaggi di programmazione. Ulteriori approfondimenti riguardo il linguaggio Objective C verranno presentati durante la spiegazione delle applicazioni di esempio che verranno fornite nelle lezioni seguenti. Andiamo adesso ad esplorare il nostro IDE di sviluppo: Xcode Lanciamo dunque Xcode e clicchiamo su Create...

Applicazione window-based: analisi del codice – Guida Sviluppo App iOS

Passiamo all'analisi del codice presente nel nostro progetto window-based. Come possiamo vedere la cartella Classes conterrà solamente due file con la seguente struttura: NomeProgettoAppDelegate Il file di header Andiamo quindi ad aprire il file di header che presenta il seguente codice: #import <UIKit/UIKit.h?> @interface TutorialWebMasterAppDelegate : NSObject <UIApplicationDelegate?> { UIWindow *window; } @property (nonatomic, retain) IBOutlet UIWindow *window; @end Come prima istruzione viene importato il...

Funzione main e gestione della memoria – Guida Sviluppo App iOS

All'interno della cartella Other sources è presente il file main.m. Come in una qualsiasi applicazione C-based, il punto di ingresso di un'applicazione iOS al momento del lancio dell'applicazione è proprio la funzione main. L'implementazione di questa funzione main è minimale e, nella realizzazione delle vostre applicazioni, non avrete alcuna necessità di modificare questa funzione. Andiamo adesso ad analizzare il codice contenuto...

View-based application e ViewController – Guida Sviluppo App iOS

Dopo una breve parentesi sulla gestione della memoria, apriamo un nuovo progetto in Xcode e questa volta scegliamo, come template, View-based application (ho assegnato a questo nuovo progetto il nome "TutorialMrWebmaster"). Come possiamo vedere vengono generati due file TutorialMrWebmasterAppDelegate TutorialMrWebmasterViewController entrmbi con i rispettivi file di intestazione. Se andiamo ad aprire il file header del delegato vedremo che ci sono alcune novità rispetto...

Creiamo una vista (view) utilizzando il codice – Guida Sviluppo App iOS

Spiegato nel capitolo precedente che cosa è un ViewController ed a cosa serve, siamo pronti per disegnare la nostra view direttamente da codice. Per raggiungere il nostro obiettivo è possibile implementare il codice sia nel metodo loadView sia nel metodo viewDidLoad in quanto non è presente nessun file .xib da caricare. Dato che il lettore potrebbe usare questo progetto...

Introduzione ad Interface Builder – Guida Sviluppo App iOS

A questo punto della guida sospendiamo un attimo gli esempi pratici scritti in Objective C, per introdurre un altro utilissimo strumento che ci viene offerto: ovvero Interface Builder. Come abbiamo detto all'inizio di questa guida, Interface Builder è un ottimo tool per creare rapidamente delle interfacce grafiche. Nel capitolo precedente abbiamo mostrato come il sistema di riferimento cambi a seconda...

Utilizzare Interface Builder – Guida Sviluppo App iOS

Dopo questa breve introduzione possiamo passare alla pratica; vediamo quindi come utilizzare Interface Builder e poi collegare gli elementi grafici al nostro codice sorgente. Apriamo dunque Xcode e creiamo un nuovo progetto view-based application e poi nella cartella contenente i file .xib apriamo quello relativo al ViewController. Ora, come prima cosa selezione l'elemento view dalla Document Window e andiamo...

UIButton e gestione dei touch dell’utente – Guida Sviluppo App iOS

Nel capitolo precedente abbiamo creato una semplice inerfaccia grafica contenente due bottoni che, se cliccati, non producono nessuna azione. In questo capitolo andremo, quindi, ad associare uno specifico comportamento in relazione al touch dell'utente. Iniziamo con il dire che i bottoni (classe UIButton) derivano da una superclasse detta UIControl che fornisce una base di implementazione per oggetti come bottoni e...

Creare un menu per un’applicazione: la struttura del progetto – Guida Sviluppo App iOS

Fino a questo momento abbiamo sempre lavorato con una sola View. A questo punto, però, abbiamo tutti gli elementi per poter creare un menù per un'applicazione e gestire così più viste, una per ogni voce del menù. Dato che ogni applicazione possiede un menù, abbiamo voluto dare al lettore delle basi concrete da cui partire per sviluppare autonomamente un'applicazione. Inoltre...

Creare un menu per un’applicazione: il delegate – Guida Sviluppo App iOS

Come prima cosa andiamo a vedere il codice da inserire all'interno del delegate dell'applicazione. Partiamo dal file di header: #import # <UIKit/UIKit.h> @class Vista1ViewController; @class Vista2ViewController; @class Vista3ViewController; @class MenuViewController; @interface GuidaAppDelegate : NSObject <UIApplicationDelegate?> { UIWindow *window; Vista1ViewController *vista1ViewController; Vista2ViewController *vista2ViewController; Vista3ViewController *vista3ViewController; MenuViewController *menuViewController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) Vista1ViewController *vista1ViewController; @property (nonatomic, retain) Vista2ViewController *vista2ViewController; @property (nonatomic,...

Creare un menu per un’applicazione: il MenuViewController – Guida Sviluppo App iOS

Nella lezione precedente abbiamo inserito il codice relativo al delegato ed abbiamo stabilito che la prima schermata che verrà mostrata all'utente è quella relativa al menù di navigazione. A questo punto vediamo il codice da inserire all'interno del file header del nostro MenuViewController: #import # <UIKit/UIKit.h> @class GuidaAppDelegate; @class Vista1ViewController; @class Vista2ViewController; @class Vista3ViewController; @interface MenuViewController : UIViewController { GuidaAppDelegate *appDelegate; IBOutlet UIButton...

Creare un menu per un’applicazione: i ViewController delle viste – Guida Sviluppo App iOS

A questo punto non ci resta che inserire il codice per i ViewController delle viste e fare gli opportuni collegamenti degli elementi grafici con Interface Builder. Dunque andiamo a vedere il codice relativo al file header del ViewController: #import # <UIKit/UIKit.h> @class GuidaAppDelegate; @interface Vista1ViewController : UIViewController { GuidaAppDelegate *appDelegate; IBOutlet UIButton *backButton; } - (IBAction) backButtonAction:(id)sender; @end Il codice da inserire, come possiamo vedere,...

Creare un menu con Interface Builder – Guida Sviluppo App iOS

Apriamo dunque il file .xib relativo al menù con Interface Builder e clicchiamo su File's Owner. Spostandosi nella sezione connections vedremo che non è possibile associare nessun elemento grafico ad una direttiva del codice sorgente. Questo perchè i file .xib che non sono generati in automatico all'atto di creazione del progetto, è come se fossero entità a se stanti...

Aggiungere effetti di transizione tra le view – Guida Sviluppo App iOS

L'applicazione vista precedentemente, seppur abbellita con qualche immagine per bottoni e per lo sfondo, risulta comunque un'interfaccia statica. Sarebbe carino inserire qualche effetto di transizione tra una vista ed un'altra per rendere il tutto più gradevole per l'utente. Anche in questo caso ci vengono offerti delle classi e dei metodi che gestiscono alcune transizioni con pochissimo sforzo: vediamo come...

Mostrare a video un’immagine utilizzando UIImageView – Guida Sviluppo App iOS

Nei capitoli precedenti abbiamo utilizzato alcuni semplici elementi grafici dall'aspetto predefinito (come, ad esempio, Navigation Bar, button label ed altro). Andiamo adesso ad introdurre in che modo possiamo inserire delle immagini all'interno della nostra interfaccia grafica. Iniziamo con il dire che è possibile gestire svariate tipologie di immagini, ma si consiglia sempre l'uso di immagini .png. Questo perchè il formato...

La classe UITouch – Guida Sviluppo App iOS

Quando l'utente tocca lo schermo di un dispositivo touch il sistema (o meglio l'applicazione) è in grado di catturare l'evento al fine di modellare un comportamento in relazione ad ogni evento. Fino a questo momento, nelle applicazioni di esempio, abbiamo solo trattato il caso in cui un'utente clicchi su un specifico bottone, ma non abbiamo gestito il comportamento dell'applicazione...

Inseriamo qualche animazione sfruttando touchBegan e touchEnd – Guida Sviluppo App iOS

Combinando le potenzialità offerte dalla classe UITouch con la possibilità di eseguire delle animazioni, si possono ottenere degli effetti molto interessanti. Quello che andremo a fare in questo capitolo è creare delle semplici animazioni modificando gli attributi dell'oggetto che vogliamo animare. Vi sarà sicuramente capitato, utilizzando qualche applicazione sul vostro iPhone o iPod Touch, di imbattervi in una schermata iniziale,...

Utilizziamo la classe UITouch ed il metodo touchesMoved – Guida Sviluppo App iOS

Come detto precendentemente, con la classe UITocuh, siamo in grado di conoscere le coordinate esatte in cui si trova il dito dell'utente sullo schermo del dispositivo. Utilizzando questa proprietà e sfruttando il metodo touchesMoved possiamo permettere all'utente di disegnare sul dispositivo, come se stesse usando un qualsiasi programma di grafica, semplicemente muovendo il dito sullo schermo. Quello che vogliamo...

Conoscere le caratteristiche del dispositivo in uso – Guida Sviluppo App iOS

In alcune applicazioni risulta utile conoscere le proprietà del sistema come, ad esempio, il nome del dispositivo, il modello e molto altro. Questa operazione viene eseguita in maniera molto semplice utilizzando la classe UIDevice che ci mette a disposizione diversi metodi per conoscere le caratteristiche del dispositivo nel quale è stata lanciata l'applicazione. Vediamo adesso come utilizzare questa classe, ed...

Salviamo dei dati con NSUserDafault – Guida Sviluppo App iOS

Ogni applicazione degna di questo nome permette un certo grado di personalizzazione da parte dell'utente. Per "personalizzazione" s'intende la possibilità, per un utente, di poter salvare alcuni dati in maniera permanente per poterli recuperare ai successivi avvii dell'applicazione. Facciamo un esempio pratico per mostrare al lettore un classico utilizzo di salvataggio di dati. Immaginiamo che un'applicazione, al primo avvio,...

Riflessioni su NSUserDefault – Guida Sviluppo App iOS

Nel capitolo precedente abbiamo scritto tutto il codice necessario e fatto le opportune connessioni con Interface Builder per creare una sorta di "memoria" per le preferenze utente dell'applicazione. Andiamo adesso a commentare l'esecuzione della nostra applicazione. Una volta cliccato su build and run il simulatore mostrerà, come interfaccia, i due bottoni per le lingue e nella label sarà presente il...

Utilizziamo una UIAlertView ed associamole un delegato – Guida Sviluppo App iOS

Ci sarà capitato sicuramente, maneggiando un dispositivo iOS come un iPhone o un iPad, di imbatterci nelle alert view. Le alert view sono quelle finestre che appaiono con una piccola animazione e ci notificano qualcosa: generalemnte un errore o l'impossibilità di fare qualcosa. Per esempio se proviamo ad utilizzare Safari con la wi-fi spenta e senza l'uso della rete...

Istanziare una UIAlertView con un delegato e customizzazione della alert – Guida Sviluppo App iOS

Nel capitolo precedente abbiamo visto come creare un delegato per una UIAlertView adesso, l'ultima operazione che ci resta da compiere, consiste nell'associare alla alert quel delegato al momento dell'istanziazione. Andiamo dunque nel file di implementazione del ViewController e inseriamo il seguente codice al posto di quello vecchio: UIAlertView *alert; DelegatoAlert *_delegato = init]; alert = initWithTitle:@"MRWebMaster" message:@"Alert View di MRWebMaster" delegate:_delegato cancelButtonTitle:@"Cancel"...

Inserire del testo mediante un UITextField – Guida Sviluppo App iOS

Uno degli elementi del framework UIKit più utilizzati e che permette la massima interazione con l'utente è l'elemento UITextField. Questo elemento è il classico campo di testo che, se cliccato, farà apparire sul display una tastiera virtuale per permettere all'utente di poter immettere del testo. Data la sua importanza in ogni applicazione è opportuno fornire al lettore la lista...

Eventi temporizzati con NSTimer – Guida Sviluppo App iOS

Molto spesso, in molte applicazioni, abbiamo necessità che certe operazioni vengano eseguite in maniera programmata a certi intervalli di tempo. Per esempio, in un gioco potremo utilizzare questo metodo per far apparire sullo schermo degli ostacoli che il presonaggio deve evitare. Ciò che ci permette di utilizzare, in maniera molto efficiente, un timer è la classe NSTimer. Con questo...