Programmazione iOS: un’app per il Parsing XML

Spread the love

Giornata impegnativa oggi al corso di programmazione iPhone Mobile Academy promosso dalla Medita. Abbiamo trattato argomenti piuttosto interessanti che facilmente si incontrano nelle comuni applicazioni. In modo particolare oggi vi rilascio il codice di una applicazione che fa il Parsing XML, cioè che riesce a captare i tag di un file XML e fa visualizzare i contenuti nell’App stessa. Anche l’applicazione iSayBlog utilizza questo sistema, e chiaramente tutte le applicazioni che riportano notizie da un sito web.

Ma andiamo per ordine e cominciamo con il primo argomento trattato, le Tab Bar Application. Quando iniziamo un nuovo progetto per applicazione, Apple mette a disposizione una serie di template iniziali che possiamo scegliere. Oggi abbiamo scelto la Tab Bar Application, che permette di creare applicazioni con una tab bar inferiore alla quale collegare più finestre dove inserire il contenuto.E’ una applicazione molto semplice da creare, l’unica nota negativa è che è difficile disallocare la memoria quando finiamo di utilizzare una specifica finestra, quindi l’applicazione potrebbe influire sulle prestazioni del dispositivo.

Parsing XML

Passiamo all’argomento che ci ha preso più tempo, ossia il Parsing di documenti XML. Innanzitutto scaricate il file sorgente da qui, scompattatelo e aprite il progetto con Xcode. Se ancora non avete Xcode scaricatelo ed installatelo seguendo le apposite istruzioni che ho scritto qualche giorno fa.

La maggior parte dei siti web di news esistenti, come anche i blog,  permette la generazione di un file XML, cioè un file dove sono riportati, con dei tag specifici, tutti gli elementi che identificano il contenuto. Un esempio possiamo vederlo connettendoci a questa pagina e vedendo il file sorgente. Ci accorgiamo subito dei tag <title>, <description>, <image>, <link>. Come fare a riportarli su iPhone?

E’ proprio quello che fa la nostra applicazione. Se apriamo i file scaricati, entriamo in RootViewController.m, che rappresenta la schermata principale dell’applicazione, vediamo che entriamo nel file XML e prendiamo quello che c’è all’interno dei tag. Una volta fatto questo, passiamo il loro contenuto al file Dettagli.m, che rappresenta la seconda schermata, dove noi prendiamo gli elementi che ci arrivano dal file precedente e li rendiamo visibili. Infatti se aprite il file Dettagli.xib, vedrete la finestra dello schermo che mostra graficamente come sono collegati gli oggetti al codice.

Build and Run

E’ il momento di testare i risultati: tornate a Xcode e premete il pulsante Build and Run, vedrete il simulatore di iPhone che si apre e che mostra una schermata con i titoli del nostro file XML. Provate a premere su uno di questi e vedrete che si aprirà un’altra finestra in cui troviamo la disposizione degli elementi del file Dettagli.xib ma con i contenuti presi dal file XML. Fantastico no?

Ora provate a fare un esperimento: nel file RootViewController.m ad un certo punto trovate l’indirizzo completo del file XML che dobbiamo elaborare; provate ad inserire al suo posto l’indirizzo di un vostro file XML o di un sito che conoscete, salvate tutto e premete su Build and Run. Cosa succede? Probabilmente starete vedendo sul simulatore l’XML del sito in questione e il contenuto dei tag description!

Conclusione

Ma la giornata non è finita qui, perché come ultimo argomento abbiamo trattato le mappe di Google e il loro inserimento in una applicazione. Poi, stremati, siamo tornati a casa! Al solito mi scuso con gli utenti per non approfondire ulteriormente il codice rilasciato e gli argomenti trattati, vi chiedo un pò di pazienza, poi riprenderemo tutto dall’inizio con molta più specificità!

Come conclusione della giornata devo dire che sono soddisfatto. Abbiamo terminato il terzo giorno su cinque, e già posso dire di aver almeno capito quali sono gli elementi essenziali dello sviluppo per iOS. Inoltre per ogni argomento spiegato creiamo un’app diversa, e questo sarà molto utile in futuro nel caso vogliamo riprendere delle funzioni specifiche per una eventuale nuova app. A domani per un nuovo aggiornamento!

Lascia un commento