Cerca nel blog

Pubblicità

banner-125x125 banner-125x125 banner-125x125 banner-125x125

Feed RSS e Newsletter

Puoi seguire il mio blog abbonandoti al feed RSS, se non sai cos'è un feed RSS prova a guardare questo video... Spiega tutto!

Icona Feed RSS

Twitter

PayPal

Se ti piace questo blog puoi pensare ad una donazione.

Tutti i fondi ricevuti saranno utilizzati per il mio sollazzo personale. :-)

Ultimi commenti...

k8: wow addirittura un esame su ste robe.. bello :D che uni fai carlo?

Davide Salerno: Premesso il fatto che ho un odio recondito verso JS, amo JQuery ;-)

Luca: Ext è veramente un bel framework, forse il migliore per produrre interfacce coerenti. Purtroppo la licenza lo...

carlo: Io l’ho dovuto usare per un esame (la versione 2), ma il professore me l’ha fatto odiare. Però,...

gianluca: si proprio non c’è niente di peggio che aver scritto ore di css e javascript soddisfattissimi del...

Flex 3, Adobe AIR e le API di Feedburner

lunedì 17 novembre 2008
1 Star2 Stars3 Stars4 Stars5 Stars (2 voti, media: 4,50)
Loading ... Loading ...

Oggi vediamo come sviluppare da zero una piccola applicazione desktop Adobe AIR (azzarderei il nome di "widget") che ci permetterà di controllare quanti lettori ha un feed RSS pubblicato con Feedburner.

Per poter leggere i dati di un feed RSS il proprietario di quest'ultimo deve aver attivato il servizio "awareness API" nel proprio pannello di controllo Feedburner

Per seguire questo tutorial avete bisogno di:

  • Flex Builder 3. Potete scaricare una versione trial a questo indirizzo
  • Una conoscenza di base di Actioscript 3
  • Un po' di pazienza... Il post sarà luuuungo! :)

Veniamo a noi. Per prima cosa creiamo un progetto Adobe AIR all'interno di Flex Builder 3.

Selezionate File -> New -> Flex Project

Flex Adobe AIR - 1

Nella nuova finestra che si aprirà assegnate un nome al progetto e selezionate Desktop Application, poi Finish.

Flex Adobe AIR - 2

Il nostro progetto è pronto. Ci ritroveremo davanti a 2 files:

  • Feedburner.mxml (il sorgente dell'applicazione)
  • Feedburner-app.xml (il file che contiene le impostazioni per la creazione del pacchetto Adobe AIR)

Flex Adobe AIR - 3

In Feedburner-app.xml potrete impostare tutte le "proprietà" della vostra applicazione (dimensione della finestra, icone, chrome, ecc...) Non ve ne preoccupate per ora, il file è talmente commentato che potrete occuparvene da soli in un secondo momento, decidendo ogni più piccolo aspetto della vostra applicazione.

Detto questo veniamo al design della nostra applicazione. Per fare quello che dobbiamo fare (cit.) ci servono almeno:

  • Un campo input (dove inseriremo l'indirizzo del nostro feed)
  • Un bottone (per lanciare l'azione)
  • Una label (che andrà a contenere il risultato della nostra elaborazione)

Cliccando sulla scheda "Design" all'interno di Flex Builder possiamo disegnare la nostra applicazione come se ci trovassimo all'interno di Visual Basic: basta trascinare i vari componenti all'interno della nostra applicazione, assegnare un ID ad ogni elemento e organizzare colori, testi e disposizioni.

Velocissimo e precisissimo.

Nulla vieta di aggiungere altre "decorazioni" (io ad esempio ho aggiunto il logo di Feedburner e qualche label "decorativa")

Flex Adobe AIR - 4

Nella scheda "Source" ritroveremo la nostra interfaccia scritta in MXML: un linguaggio molto simile all'html, fatto di tag e attributi dove andremo ad aggiungere il nostro codice ActionScript un po' come aggiungiamo JavaScript alle pagine web. Possiamo modificare gli elementi della nostra applicazione sia dalla scheda "Source" che dalla scheda "Design". Ovviamente la scelta dell'una o dell'altra dipende solo dalla precisione che vogliamo ottenere o dalla comodità dell'una rispetto all'altra...

Per vedere "live" il risultato del nostro lavoro basterà cliccare l'icona a forma di insetto (debug) che avvierà la nostra applicazione AIR. Ci ritroveremo davanti alla nostra interfaccia che non farà assolutamente nulla. :mrgreen:

Disegnata l'interfaccia abbiamo bisogno quindi di "codice"... Questa applicazione deve pur far qualcosa! :P

Cosa ci serve? Lo schema è presto fatto:

  • Dobbiamo inserire l'indirizzo di un feed RSS all'interno del nostro campo di input.
  • Al click sul pulsante deve essere chiamato lo script che scarica il file XML dal servizio API di Feedburner (ho usato questo per semplificare l'applicazione)
  • Dobbiamo interpretare il nostro file XML e stampare a video il risultato (possibilmente gestendo eventuali errori)

Per richiamare una funzione al click del pulsante basta aggiungere l'attributo click="" nel tag <mx:Button>

  • Inserendo click="checkFeedburner(feed.text)" al click sul bottone eseguiremo la funzione checkFeedburner() passandogli come parametro il valore contenuto nel campo di testo che ha id="feed"
Il codice completo dell'applicazione lo trovate a fine post, in un file separato. Purtroppo il plugin che uso per evidenziare il codice non è compatibile né con MXML né con ActionScript (con quest'ultimo lo è in parte vista la sintassi simile al JavaScript)

Ci appoggeremo al tag <mx:HTTPService> per la richiesta dei nostri dati.

<mx:HTTPService id="feedburnerService" resultFormat="e4x"
fault="feedburnerFault(event);" result="feedburnerResult(event)" />

Analizziamone un attimo gli attributi:

  • id: identifica univocamente il nostro HTTPService
  • resultFormat: in questo caso sappiamo che riceveremo un file XML come risultato e scriviamo e4x (ci permetterà di accedere in un battibaleno al nostro XML utilizzando una sintassi semplificata). Altre alternative sono XML, text, object e flashvars. Fate riferimento al manuale per capire di cosa si tratta.
  • fault: la funzione che verrà eseguita se la connessione per un qualunque motivo fallisse
  • result: la funzione che verrà eseguita se la connessione avrà successo

Ok, ok. Il grosso è fatto. Al click sul bottone spediamo il nostro bel HTTPService

private function checkFeedburner(feedRSS:String):void
{
feedburnerService.url = "http://api.feedburner.com/awareness/1.0/GetFeedData?uri=" + feedRSS;
feedburnerService.send()
check.label = "Caricamento..."
check.enabled = false;
}

La funzione costruisce l'URL a cui spedire la richiesta e disattiva  momentaneamente il pulsante di invio (finesse).

In caso di mancata connessione riceveremo un messaggio di errore

private function feedburnerFault(evt:FaultEvent):void
{
var title:String = evt.type + " (" + evt.fault.faultCode + ")";
var text:String = evt.fault.faultString;

Alert.show(text, title);
check.label = "Controlla!"
check.enabled = true;
}

Se invece la connessione è andata a buon fine controlleremo se l'XML ricevuto contiene effettivamente il dato richiesto e aggiorneremo l'applicazione di conseguenza.

private function feedburnerResult(evt:ResultEvent):void
{
var risultato:Object = evt.result;
if(risultato.feed.entry.@circulation.toString()!= "")
counter.text = risultato.feed.entry.@circulation.toString()
else
// Il feed non esiste in feedburner oppure non è stato trovato perché digitato male...
counter.text = "ERRORE!"

// Riabilito il pulsante per una nuova ricerca
check.label = "Controlla!"
check.enabled = true;

}

Fatto questo possiamo finalmente pubblicare il nostro file e distribuirlo in giro per la rete, eventualmente creando un badge per facilitarne l'installazione.

Basterà cliccare Project -> Export Release Build... e seguire il wizard passo passo. Ci verrà richiesto di creare un certificato da allegare all'applicazione: Flex Builder permette di crearlo gratuitamente, anche se rimarremo "anomimi".

Installando infatti l'applicazione essa verrà mostrata come creata da uno "sconosciuto".

Flex Adobe AIR - 5

Se volete installare l'esempio sulla vostra macchina potete scaricare il file .AIR che ho creato (serve il "player", lo trovate qui, anche se non è proprio un player...) e, una volta installato, provare a contare i lettori del mio feed RSS http://www.napolux.com/feed :mrgreen: (mi raccomando, ricordate l'http:// davanti!)

Detto questo veniamo al sorgente completo dell'applicazione. Il file MXML lo trovate, commentato, a questo indirizzo.

L'applicazione è tutt'altro che perfetta ed è ovviamente migliorabile. Ad esempio non recupera i dati per feed già passati su server Google (come ad esempio http://feedproxy.google.com/TechCrunch)

L'applicazione, togliendo il chrome, viene fuori così:

Qualche considerazione, per concludere:

  • Tempo medio trascorso dal concept dell'applicazione alla sua effettiva installazione sul mio pc: 15 minuti. (ci ho quasi messo di più a fare gli screenshot) a dimostrazione di quanto sia facile sviluppare in Flex.
  • L'applicazione gira su Windows XP, Vista, MacOS e Linux: stesso codice (non l'ho testato su Linux, qualche anima pia me lo dice nei commenti se funziona anche là?), 4 sistemi operativi, senza doversi preoccupare di nulla: la cosa rimane vera (con qualche piccola eccezione) anche per progetti più complessi.
  • Quello che ho fatto io con Flex Builder 3 professional (di cui possiedo regolare licenza e che non costa proprio pochissimo) potete farlo gratis con un editor di testo e il Flex SDK. Non c'è bisogno di acquistare per forza una licenza Flex Builder, anche se a dir la verità aiuta un sacco.

Ci sono domande? :P

Questo articolo è stato pubblicato lunedì, 17 novembre 2008 alle ore 09:31 Se non vuoi perdere nemmeno un articolo del mio blog abbonati al feed RSS. Se non sai cos'è un feed RSS puoi guardare questo video, spiega tutto!

In alternativa puoi abbonarti alla newsletter, riceverai un'email ogni volta che verrà pubblicato un nuovo post. Il tuo indirizzo email sarà gestito da Feedburner.

  

18 Commenti a “Flex 3, Adobe AIR e le API di Feedburner”

  1. Julius scrive:

    Wow questo si che è un Tutorial style Napolux :grin:

  2. Napolux scrive:

    @ Julius:
    Sul tuo feed funziona :P

  3. Ele scrive:

    Bel tutorial. era da un po’ che ne cercavo qualcuno su AIR :smile:

    Ma l’opzione a cui accennavi all’inizio dove sarebbe? :???:

  4. Napolux scrive:

    @ Ele:
    Se ti riferisci al file di opzioni per l’applicazione lo trovi nella stessa cartella del sorgente MXML :)

  5. Bohtont scrive:

    Che bel tutorial, lo diffondo subito :D , ovviamente coi crediti ^^

  6. Ele scrive:

    Napolux ha scritto:

    @ Ele:

    Se ti riferisci al file di opzioni per l’applicazione lo trovi nella stessa cartella del sorgente MXML

    No (o meglio… in effetti anche :razz: ) mi riferivo all’opzione di Feedburner messa all’inizio dell’articolo (awareness API)

  7. Napolux scrive:

    @ Ele:
    Ah ecco. La trovi nella scheda del tuo feed sul sito feedburner.com sotto la voce “publicize”.

    Ovviamente devi essere iscritta a feedburner per poterla attivare.

  8. Ele scrive:

    Tnx :wink:

  9. Francesco Gavello scrive:

    Un bellissimo tutorial, complimenti Napolux! :grin:

  10. EmaWebDesign scrive:

    Davvero complimenti, chi vuole fare un tutorial da oggi in poi sa dove prendere spunto.

    Hai sottolineato due cose importanti, realizzare l’interfaccia dell’applicazione ha la stessa semplicità di VB con il risultato che può girare sui principali OS.

    Per questo vedo di buon occhio AIR (come credo molti).

  11. Giuseppe scrive:

    Madonna che tutorial! :shock: :shock:

  12. Napolux scrive:

    @ EmaWebDesign:
    Io la vedo un po’ così: hanno cercato di prendere un po’ del buono da questo e quel prodotto e l’hanno infilato in AIR.

    C’è flash, c’è Visual Basic (per dire, eh), c’è Flex, c’è HTML, JavaScript e ActionScript.

    Vediamo un po’ questo mischione dove ci porta. IMHO ci porterà lontano…

  13. DnaX scrive:

    L’anima pia risponde: sì, funziona perfettamente anche su Linux!

    Ottimo tutorial ;)

  14. Napolux scrive:

    @ DnaX:
    Un grazie all’anima pia :P

  15. Adobe AIR e le API di Feedburner: reloaded | Undolog.com scrive:

    [...] spunto dall’ottimo tutorial di Napolux, Flex 3, Adobe AIR e le API di Feedburner, che mostra come scrivere una semplice applicazione (o widget) Adobe AIR usando Flex 3, per [...]

  16. Giovambattista Fazioli scrive:

    E in Flash come verrebbe?
    Vedi: http://www.undolog.com/2008/11/18/adobe-air-e-le-api-di-feedburner-reloaded/

  17. Gioxx’s Wall » Blog Archive » Best of Week #30 scrive:

    [...] Flex 3, Adobe AIR e le API di FeedBurner [...]

  18. I migliori post della settimana #3 | EmaWebDesign :: Web Programming / Web Design scrive:

    [...] Flex 3, Adobe AIR e le API di Feedburner Oggi vediamo come sviluppare da zero una piccola applicazione desktop Adobe AIR (azzarderei il nome [...]