Realizzazione di messa a fuoco: pulpTunes

17 dic 2008 alle 01:41 da Eric Miraglia | In implementazioni YUI | 1 commento

Alejandro Pedraza si è laureato in Economia e fu presto annoiato a morte in un lavoro d'ufficio per un paio di mesi. Si rese conto che dovrebbe seguire la sua vocazione vera vita e trasformare la notte-e-week-end di programmazione in qualcosa che avrebbe pagato le bollette, anche. Un avvio fallito e un paio di posti di lavoro poi come sviluppatore principale, è stato concentrato sulla costruzione di applicazioni sullo stack LAMP e Java e contribuendo a molti progetti open source durante il suo tempo libero. Egli è l'autore di pulpTunes , un nuovo modo di accedere alla vostra libreria di iTunes tramite un browser web. pulpTunes fa ampio uso di YUI.

Che cosa ti ha interessato a costruire una interfaccia web per iTunes? O è una domanda stupida?

(No, non è una stupida domanda:)) Io ho una collezione considerevole canzone nel mio iTunes. Un app per la fornitura di me con accesso web sembrata una bella cosa da avere, e mi avrebbe dato la possibilità di giocare con le tecnologie web e desktop nella stessa applicazione.

Si è scelto YUI per molti degli elementi dell'interfaccia utente nella tua applicazione. Quali componenti specifici YUI stai usando, e per quali scopi?

Coerenza YUI e reusage dei componenti attraverso l'intero ecosistema ti consente di salire su qualsiasi nuovo componente potrebbe essere necessario con l'avanzare del progetto. Così ho cercato di attaccare con YUI sola, e ho dovuto guardare altrove solo per il giocatore canzone flash, per ovvie ragioni.

pulpTunes produce una singola pagina web, il cui layout è dichiarato attraverso il CSS Griglie lib. Non c'è bisogno di brutto hack CSS, e si può garantire la vostra pagina sarà la stessa in tutti i principali browser. Questa è una delle mie librerie preferite YUI, a causa del risparmio di tempo enorme e la pace della mente che fornisce.

La lista delle canzoni è un DataTable accompagnato da un paginator , alimentato attraverso una connessione XHR. Personalizzazione del tavolo e guarda l'impaginazione è stato davvero facile da solo prevalente alcune regole CSS dalla pelle di Sam, che è molto ben commentato. La formattazione personalizzata per la colonna voto è un 3-fodera codice javascript. La tabella (e la sezione playlist a sinistra) fanno uso del componente menu per visualizzare un menu contestuale per eseguire operazioni su una canzone o una playlist.

Io sto usando un Slider componente per regolare tampone del giocatore. Con essa si punta a quel punto in corso si vuole scaricare la canzone per iniziare a giocare.

Ci sono pochi messaggi popup e finestre di dialogo in app, che sono resi con il contenitore dei componenti.

La maggior parte dei componenti YUI che ho usato (ce ​​ne sono 12) sono prelevate da yui.yahooapis.com in una singola richiesta attraverso il molto conveniente Loader YUI . E, naturalmente, sto usando il YUI Compressor per comprimere per i 15k un file javascript che contiene tutta la logica dell'applicazione.

Stai usando effetti pacchetto Dav Glass in aggiunta a YUI. Quali sono le funzionalità di disegno della collezione di Dav specifico?

Provenendo da un prototipo mondo Scriptaculous +, ero molto felice di scoprire che qualcuno aveva già portato a tutti gli effetti YUI grande Scriptaculous. E [perché Dav è un membro del] squadra YUI, potrei stare tranquilli sulla sua qualità. Sto utilizzando il BlindDown e gli effetti BlindUp per mostrare e nascondere le cover d'arte.

Uno degli elementi principali della vostra applicazione è la DataTable che consente di visualizzare il songlists. Qual è stata la tua esperienza, come la costruzione di un XHR-fed DataTable con dati JSON? Quali lezioni hai imparato che sono degni di essere condivisi con altri sviluppatori?

La parte di alimentazione XHR era abbastanza semplice. Anche se mi sono ricordato che cercano di tornare un po HTML nella risposta JSON, che non ha funzionato, ma che sembrava un bug del browser.

Impaginazione e smistamento è stato facile pure, ma ho dovuto fornire una funzione personalizzata GenerateRequest perché, se non ricordo male, YUI assume i record devono essere ordinati in quanto la prima richiesta al server, e nel mio caso ho voluto aspettare fino a che l'utente effettivamente cliccato su di una colonna per iniziare a restituire record ordinati.

Ho anche avuto qualche problema in un primo momento quando si cerca di recuperare i record specifico nella tabella, ma poi mi sono reso conto dell'esistenza di un intero gruppo di metodi di supporto solo per questo, come getTrEl() e getRecord() che non sono menzionati nella documentazione generale . Quindi il mio consiglio ovvio è che il vostro letto l'intera API per qualsiasi componente vi ritroverete a fare il lavoro pesante.

pulpTunes è un progetto SourceForge . Stai cercando di costruire una comunità di sviluppatori per lavorare sul progetto con voi?

Sì, questa è l'idea. Sto anche utilizzando SourceForge per tenere traccia di bug e richieste di funzionalità, per cui qualsiasi tipo di feedback da parte degli utenti è inoltre accolto con favore. Progettisti grafici sono invitati pure, se vogliono fornire pelli aggiuntive per l'applicazione.

Quali sono le prospettive per pulpTunes?

Sono passati solo pochi giorni da quando la prima versione stabile è fuori, e la risposta è stata tremenda. Credo di avere già un'idea abbastanza precisa delle caratteristiche più importanti per la prossima versione: autenticazione utente, ricerca, shuffle e pulsanti di ripetizione, e la capacità di classificare i brani.

Condividere ed estendere: Bookmark with del.icio.us | Digg it! | reddit!

1 commento

  1. Grazie per questo Eric articolo,

    Alejandro Pedraza, è il chiaro esempio dell'importanza di seguire i tuoi sogni.

    Gli auguro il meglio e incoraggia i programmatori a contribuire con questo interessante progetto.

    Buon Natale!

    JPS

    Commento di Juan Pablo Santamaria - 22 Dicembre 2008 #

Al momento l'inserimento di commenti non è in questo momento.

Ospitato da Yahoo!

Copyright © 2006-2012 Yahoo! Inc. Tutti i diritti riservati. Privacy Policy - Termini del Servizio

Powered by WordPress su Yahoo! Web Hosting .