Lavoro nel settore web da più 10 anni, anche se in realtà già molto prima avevo creato in casa mia, con il supporto economico e motivazionale di mio padre, un BBS. Per certi versi questo può essere considerato lontano antenato dell'odierno sito internet, in quanto gli utenti vi si collegavano avendo modo di comunicare o scambiarsi file ed informazioni.

Da quando ne feci una professione fui incantato da Dreamweaver (a suo tempo ancora di Macromedia, prima dell'acquisizione Adobe). Lo comprai all'apertura dell'azienda e lo usai su computer Windows — tutto ciò accadde prima della mia conversione — per molti anni e con buona soddisfazione. Tuttavia con il susseguirsi delle versioni, l'applicazione si riempì di caratteristiche che a me non interessavano, per lo più automatismi per neofiti. Così anno dopo anno, computer dopo computer, mantenni la licenza della prima versione acquistata.

Passando poi a Mac — meglio tardi che mai — un po' per un senso di continuità e un po' perché non trovai a primo acchito valide alternative, ripresi ancora una volta Dreamweaver. Su Mac OS X l'applicazione andava maluccio: pesante e con soventi creash e soprattutto ormai era diventata qualcosa di molto diverso da quello che era inizialmente ed io ne usavo al massimo il 10%. Ciò che chiedo ad un ambiente di sviluppo per il web è sostanzialmente una buona gestione del codice (con colorazione e soprattutto completamento automatico visto che non ti puoi ricordare tutto), ma anche l'integrazione con un ftp per effettuare immediatamente l'upload di uno o più file modificati. Ho provato per un po' a lavorare con l'accoppiata free Smultron e CyberDuck, ma va bene quando gestisci un sito o comunque progetti semplici. Ho dato anche una chance ad Eclipse, ma è macchinoso e troppo pomposo per le mie esigenze.

Dopo qualche tempo mi sono imbattuto per caso in Espresso di MacRabbit ed è stato amore a prima vista.

espresso ide sviluppo web mac

L'applicazione fa ne più ne meno quello che voglio, in una interfaccia pulita e gradevole, perfettamente integrata con il Mac. Ma andiamo per gradi...

In primo luogo Espresso può essere usato per editare un singolo file, oppure per gestire un intero sito internet. Per lo più io lavoro in questa seconda modalità, che registra in un file di configurazione all'interno della cartella locale del sito, le informazioni relative al progetto. Il fatto che utilizzi file e non un database è fondamentale dal momento che così non ho dati da portarmi dietro da un computer all'altro. Posiziono il progetto sul server web aziendale nella cartella del sito internet e riesco ad accedervi da qualsiasi postazione, anche una nuova, avendo già tutte le configurazioni condivise, come i dati del server ftp di riferimento ed anche i file aperti nell'ultima sessione.

progetti web

Per motivi di tempo non mi sono impegnato più di tanto nell'organizzazione dei progetti, ma è anche possibile assegnare icone e colori a piacimento o addirittura scegliere una immagine personalizzata dal disco.

ide per progetti web

Una volta aperto un progetto, la struttura dell'applicazione è molto chiara ed immediata. In cima c'è una classica barra degli strumenti, mentre nella colonna di sinistra si trovano in sequenza:

  • l'elenco dei file aperti (vengono indicati con un puntino quelli modificati)
  • la struttura della directory di progetto
  • e più in basso ancora (anche se nell'immagine non si vede) il setup del server ftp

Nell'area centrale c'è chiaramente la parte più importante dell'applicazione, ovvero l'editor. C'è la colorazione del codice (ovviamente), il completamento automatico del codice (per CSS, HTML, Javascript, PHP, XML, XSL),  indentazione in blocco, il collapse di blocchi di codice, numerazione delle linee, ricerca/sostituzione veloce, vai alla linea e tutte le cose che ci si aspetta da un editor che si rispetti.

ambiente di sviluppo web per mac

Sulla destra c'è poi un pannello denominato "Tools" (nascondibile), in cui si trova in cima un navigatore (che permette di spostarsi nella struttura annidata del documento, che sia esso un CSS, PHP, HTML) ed in fondo un'area per attivare la modalità Quick Publish (che ad ogni salvataggio manda il file sul server ftp) ed una per gli Snippets. Questi ultimi sono delle porzioni di codice personalizzabili, che si possono creare al fine di velocizzare il lavoro se siamo soliti scrivere spesso blocchi simili. Con un clic ad esempio, creo un nuovo documento HTML con le specifiche XHTML, il link al css ed uno pronto per una sorgente javascript, i vari meta dell'header (compresi favicon, keyword e description), il body e il resto.

Tra le opzioni della toolbar c'è la possibilità di attivare una live preview (che ovviamente funziona solo con il codice lato client e non con quello PHP o SSI che richiedono un server web) e poi l'accesso alla modalità ricerca avanzata. Questa opzione nella prima release mancava e l'ho suggerita via mail allo sviluppatore più di una volta. Non mi ha mai risposto, ma dopo un po' l'ho vista inserita, pertanto mi piace pensare di aver contribuito anche io a spingere perché venisse realizzata. Qui è stato fatto un buon lavoro: cliccando sul pulsante di ricerca il pannello laterale cambia aspetto e permette di cercare (e volendo sostituire) un testo all'interno di tutti i file del progetto. I risultati vengono mostrati in elenco e, uno per uno, possiamo attivarli con un clic. Espresso aprirà il file relativo, lo posizionerà in corrispondenza della porzione di codice ricercata e la evidenzierà. Semplice ed efficace... e sopratutto supporta anche le regular expressions, potendo anche limitare il campo d'azione solo su alcuni file (nell'esempio i .js come potete vedere nel campo di ricerca):

ricerca avanzata con regular expressions

Nel visore file, Espresso permette la preview dei file di immagine, affiancando anche la dimensione in pixel (cosa molto spesso fondamentale quando si progetta il layout.

visualizzazione immagini

Altre due funzioni trovo particolarmente comode e degne di nota:

  • la possibilità di selezionare uno o più file nel progetto locale ed inviarli tramite menu contestuale sul server ftp di destinazione (se ne possono configurare anche più d'uno per ogni progetto)
  • uno strumento molto completo ed automatico che analizza i file locali e quelli remoti permettendo una sincronizzazione completa e personalizzabile per singoli elementi o cartelle (forse un'immagine è più esplicativa)

sincronizzazione remota locale web

voto 4,5Conclusioni
Io ho preso la versione 1 ed era ancora acerba sotto molti punti di vista. Gli aggiornamenti non sono frequentissimi, ma in media ogni 2/3 mesi arriva qualche nuova funzione o bugfix. Operativamente la stabilità è uno dei fattori che considero maggiormente importanti e devo dire che nelle ultime versioni i crash sono quasi nulli, forse 1 al mese e sempre in condizioni un po' "stressanti" (tipo accesso concorrente via smb da più postazioni). Al momento gli unici nei che trovo sono relativi a qualche errore nel sistema di sincronizzazione che, alle volte, non si accorge di un file che ha subito delle leggerissime modifiche e un po' di problemi se il progetto è ospitato su un server di rete connesso via SMB.

Costi
Vale sempre il discorso di provare prima la trial per qualche giorno, tuttavia non ho alcun dubbio sul fatto che Espresso valga i 59,95€ richiesti per l'acquisto. Inoltre è un software ancora molto giovane (siamo alla 1.1.2) e ritengo che ci si possa attendere interessanti nuove funzioni nelle future release 1.x, prima di passare alla successiva major (2.0). L'applicazione è a 32bit, ma è leggera e velocissima e questo per me è un plus non da poco.

PRO
Leggero, veloce e razionale
Interfaccia pulita e perfettamente in linea con il MacStyle che tanto ci piace
Ftp integrato
Sincronizzazione locale/remoto
Completamento del codice
Gestione progetti e configurazioni su file (liberi quindi dal dover fare backup dei settaggi dell'applicazione)
Ricerca avanzata con supporto per Regular Expressions

CONTRO
ico.meno.png Non va tanto d'accordo con SMB
ico.meno.png Qualche incertezza nella sincronizzazione automatica

DA CONSIDERARE
ico.piu.png Se dovessero aggiungere anche la possibilità di creare un dizionario di funzioni personalizzate (in stile .NET) sarebbe fantastico!
ico.piu.png Non è localizzato in italiano, ma per l'utente tipo dell'applicazione non è assolutamente un problema