Scrivere codice: Recensione Buffer editor per iOS

Iniziamo con questo editor di testo una serie di prove dei migliori software per lavorare con l’iPad (e l’iPhone) su codice e non solo

È dal 2010 che il dibattito va avanti: l’iPad è utilizzabile per produrre contenuti oltre che per consumarli? È uno strumento adatto per lavorare? Abbiamo visto in questi sette anni le varie generazioni di iOS portare costanti miglioramenti alle funzionalità del tablet e dei telefoni di Apple, mentre l’hardware ha fatto passi da gigante. Sino ad arrivare, l’anno scorso, alla coppia iOS 10 con iPad Pro 9.7/12.9 e poi, quest’anno, a iOS 11 e iPad Pro 10.5. I cambiamenti sono stati davvero tanti. Vale la pena capire a che punto siamo arrivati.

Le regole del gioco

Per scrivere queste recensioni abbiamo fatto alcune cose in via preliminare. Abbiamo innazitutto utilizzato negli scorsi mesi l’iPad come strumento di lavoro in esclusiva. Si tratta di un iPad Pro 10.5, che abbiamo peraltro recensito qui. E della sua immancabile Smart Keyboard prima con layout americano e poi con layout italiano. Ai fini delle recensioni abbiamo utilizzato quella italiana e la scelta di usare questa tastiera rispetto a quelle di terze parti (o alla stessa tastiera bluetooth di Apple) è dettata dal bisogno di capire come sia l’esperienza “nativa” di iPad Pro.

La seconda cosa è la tipologia di app per l’editing di testo che abbiamo provato questa volta. In passato avevamo visto un buon numero di app per scrivere con iPad, e adesso possiamo dire che il settore è veramente maturo, soprattutto grazie ai due “big” (Scrivener e Ulysses) oltre alla presenza della suite Microsoft di Office che comprende Word e a Pages di Apple. Insomma, su quel versante possiamo dire che siamo coperti: se poi si vuole scoprire qualcosa in più potete sempre leggere il nostro ebook su Scrivere con iPad, e poi quello per utilizzare il markdown a tutta birra versione iBooks Store e versione Kindle. Cosa rimane allora?

buffer ios

Editare il codice

Il nuovo fronte è l’editing smart di testo per lavorare sul codice. Che non vuol dire solo “programmare” (scusate se si adoperano termini così generici, ma come vedrete vogliamo abbracciare più tipologie di utenti possibile), ma anche lavorare su siti web, sia la parte html che quella dei fogli di stile. Sembra una cosa facile da fare, ma in realtà i requisiti sono molto più articolati di quello che non sembra. E ci vuole non solo l’editor, ma anche una connessione. Per queste tipologie di lavoro assumiamo che sia necessario connettersi via FTP a un server remoto oppure direttamente a Github o a un altro repository di codice. È una cosa utile da fare non solo quando si lavora per scrivere codice ma anche per alcune forme di lavoro collaborativo, ad esempio, anche su documenti condivisi. È una strada alternativa insomma, ai vari Google Docs, Quips e al nuovo Paper di Dropbox.

Quindi, ricapitolando, con questa serie di articoli recensiremo alcune app utilizzando un iPad Pro 10.5 e la tastiera Smart Keyboard di Apple che fa anche da cover alla macchina. Come abbiamo potuto vedere in passato, la “coppia” ha molto vantaggi, tra i quali quello della compattezza e della portabilità della soluzione. C’è anche da notare che l’utilizzo della connessione smart “passiva” anziché del Bluetooth aumenta sostanzialmente la durata delle batterie. Quel che si perde è la retroilluminazione, i tati funzione e i tasto escape .che, come vedremo più volte in questo e nei prossimi articoli, è invece piuttosto importante se si vuole scrivere codice. Ma bando agli induci e parliamo di Buffer Code Editor.

buffer ios

Buffer editor – code editor

L’app costa 4,99 euro e viene sviluppata da Jesse Kuronen. È il classico progetto portato avanti da una persona (uno sviluppatore di giochi e l’utile PipTube, l’app per fare picture in picture con i video Youtube) e si tratta di un ottimo progetto. È un editor di testo particolarmente potente che, negli ultimi tempi, ha aggiunto una serie di funzionalità che lo rendono ancora più completo. Tra questi, la connettività con SFTP, FTP, SSH e i principali servizi BitBucket, Github, GitLab. Con questi servizi è possibile fare Branch, Clone, Commit, Push, Pull in modo nativo, senza dover comprare altre funzionalità (cosa invece comune ad altre app).

Si può lavorare su tiutti i dispositivi iOS, supporta slide over e split view, lavora in modalità tutto schermo, supporta iOS Files, ha il terminale SSH incluso, tastiera virtuale estesa, highlightning e autocompletamento di una serie di linguaggi. La lista la fa lo sviluppatore e non abbiamo motivo per dubitarne, anche se ovviamente non abbiamo provato neanche se non pochissimi linguaggi: in ogni caso la funzionalità avviene tramite librerie standard e quindi non si dubita che funzioni.

Comunque, eccoli: ASP, AWK, ActionScript, Ada, Arduino, Bash (Unix shell), C, C++, C#, Cobol, CSS, D, Erlang, F#, Go, Haskell, HTML(4&5), INI, Java, Javascript, LaTeX, (Common) Lisp, Lua, MATLAB, NSIS, Objective-C, Pascal, Perl, PHP, Powershell, Progress, Puppet, Python, R, Ruby, Rust, SQL, Stata, Swift, TypeScript, Verilog, Visual Basic, x86 ASM, XML.

Le funzionalità non sono finite: oltre al supporto Unicode e a quello delle tastiere bluetooth con le varie scorciatoie, e all’hard wrap e soft wrap delle righe, lavora con la funzione “Open In” di iOS, che permette di editare documenti di altre app con Buffer Editor o viceversa. Si possono cambiare sia i font (tipo e dimensione) che i temi con in buona sostanza i colori. Quelli offerti sono: Buffereditor, Candy, Dante, Dark Blue, Default, Desert, Github, Inkpot, Jellybeans, Mac Classic, Monokai, Solarized Dark, Solarized Light, Wombat, Xcode.

C’è la funzione di ricerca anche se non è molto forte e soprattutto c’è la cosa che rende unico Buffer rispetto a tutte le altre app: la modalità di uso “vim”.

Vim mode

Cominciamo dal fondo: il modo di uso Vim non è obbligatorio (si può disattivare) ma come abbiamo potuto vedere nei mesi scorsi questa è sostanzialmente l’unica app su iOS che consente di avere nativamente le funzioni dello storico editor di testo (qui recensito nella versione MacVim). Non possiamo spiegare qui nel dettaglio cosa voglia dire usare vim, perché andremmo notevolmente oltre lo scopo di questa recensione. Il primo punto è che ovviamente Buffer non è una versione di vim, quindi la compatibilità è sostanzialmente solo di interfaccia. Ma questo permette, a chi utilizza sulla sua workstation vim come editor tuttofare per il testo, di mantenere vivo uno strumento estremamente potente e complesso da usare per la manipolazione del testo.

Anche altri software per la manipolazione del testo. (da Emacs sino ad Atom) hanno una “interfaccia vim” che permetta di utilizzare sostanzialmente le modalità di lavoro dell’originale ma non gli script e i plug-in sviluppati in questo ambiente. L’implementazione di Buffer, nella nostra prova, è stata particolarmente felice, perché ha permesso di recuperare le cose essenziali di vim con l’aggiunta della tastiera supplementare che “espone” alcune funzioni tra cui il tasto “esc” virtuale. Lo scopo qui non è tanto per editare il testo ma per rivederlo e manipolarlo più velocemente e con maggiore efficienza. Se non si sa come usare, vim è totalmente incomprensibile (c’è la famosa battuta: “Come generare una stringa alfanumerica totalmente casuale? Basta chiedere a un designer di uscire da vim”) ma se si prende dimestichezza con il modo con il quale è possibile “massaggiare” il testo, è ancora lo strumento migliore.

buffer ios

La tastiera virtuale e un paio di difetti

Anche Buffer, come molti altri editor di testo, ha una sua tastiera virtuale che aggiunge una riga a quella software di iOS e che, se si connette una tastiera fisica, rimane alla base dello schermo. In questo caso è particolarmente intelligente perché espone una serie di cose: esc, tasti freccia, numeri, segni di interpunzione che dentro la logica di vim delle azioni (motion più nome azione) per manipolare il testo acquistano un ruolo di maggiore importanza e meritano quindi di essere esposte.

Qui c’è un punto di forza, e cioè che in questo modo usare una tastiera italiana (dove alcuni tasti non sono immediatamente raggiungibili) diventa un problema secondario, ma mostra anche un problema di design dell’interfaccia di Buffer: in modalità schermo doppio (a sinistra il chooser per i documenti della app e a destra l’area dove si scrive, è l’impostazione di default modificabile nelle preferenze) se si vuole andare a tutto schermo non si trova il pulsante, perché è coperto dalla riga della tastiera virtuale. Occorre “abbattere” la tastiera e a quel punto si seleziona il pulsante “tutto schermo”.

Altro problema, il salvataggio dei file: se salta la connessione e si lavora su un file remoto (soprattutto Dropbox) il programma si incastra e continua a cercare di salvare, entrando in un loop dal quale si esce solo fermando tutto e rientrando. Per fortuna il testo viene salvato comunque in locale, ma il fatto che non sia prevista una modalità di recupero rapida quando si lavora su macchine remote (anche in SSH) in caso di connessione altalenante è abbastanza scomodo. Altre app mantengono una copia locale che viene “vista” come se fosse quella remota, e quando recuperano la connessione provvedono ad allineare tutti i dati differenti, risolvendo anche alcuni dei conflitti (tipicamente duplicando i dati modificati da entrambe le parti).

(AGGIORNAMENTO: questa parte è stata ridotta dallo sviluppatore: vedi poi) Altro problema, il salvataggio dei file: se salta la connessione e si lavora su un file remoto (soprattutto Dropbox) il programma si incastra e continua a cercare di salvare, entrando in un loop dal quale si esce solo fermando tutto e rientrando. Per fortuna il testo viene salvato comunque in locale, ma il fatto che non sia prevista una modalità di recupero rapida quando si lavora su macchine remote (anche in SSH) in caso di connessione altalenante è abbastanza scomodo. Altre app mantengono una copia locale che viene “vista” come se fosse quella remota, e quando recuperano la connessione provvedono ad allineare tutti i dati differenti, risolvendo anche alcuni dei conflitti (tipicamente duplicando i dati modificati da entrambe le parti).

buffer ios

I pregi e i difetti operativi

Abbiamo detto che, se si usa come versione iOS di vim, Buffer dà il meglio di sé anche se l’implementazione non è completa. Non è possibile rimappare i tasti, ma ci si può anche abituare (forse è iOS a non permetterlo, ma per gli utenti vim è un must) ma alcune cose vanno dette.

La prima è che il default su iPad è molto gradevole da usare e che l’app non ci è mai andata in crash durante le settimane di utilizzo. La seconda è che l’aggiunta dei repository a base git è un enorme valore aggiunto che semplifica fortemente il lavoro di connessione. La prova è stata fatta editando il sito web statico che è su github. Sarebbe stato possibile lavorarci lo stesso “girando attorno” al problema con l’uso di una connessione diretta su Github. Ma, avendo a disposizione il client di Git permette di lavorare in maniera nativa e molto più naturale, anche offline.

Se si riesce a lavorare con i file di un sito, si riesce anche a lavorare con i documenti che costituiscono il codice sorgente di un sito web. Inoltre, la possibilità di gestire in maniera collaborativa con git i propri documenti è molto utile anche se si lavora da soli al proprio progetto: infatti, con questo sistema si mantiene aggiornato il lavoro, si risolvono in modalità git i conflitti tra copie diverse, si possono riallineare le versioni diverse e cercare le versioni precedenti senza problemi.

buffer ios

In conclusione

Buffer è una app forse un po’ spartana dal punto di vista dell’interfaccia, ma la definirei una app “no non-sense”, una app che mira all’essenziale. L’aggiunta delle funzioni di gestione dei client Git è ancora più importante delle molte funzionalità di connessione remota sicura (Sftp, SSH) perché apre un mondo di utilizzi della app molto più ampio e flessibile.

Nella nostra prova, come abbiamo detto molto orientata a Git, l’utilizzo di questa app è stato facile e intuitivo, grazie anche a una certa familiarità con vim. È possibile ignorare totalmente le funzioni dell’editor di testo sviluppato da Braam Moolenaar nel 1991 su Amiga come clone migliorato di “vi” di Bill Joy pensato originariamente per Unix. Però è un po’ come comprarsi una spider cabriolet per tenere sempre il tettino chiuso: avere i comandi concatenati per automatizzare e rendere più potenti e veloci.

La disponibilità della modalità split view rende Buffer Editor una vera macchina da guerra perché si possono sia utilizzare altre app (dalla posta a Slack) ma anche perché si possono vedere in tempo reale i risultati dell’editing del sito.

Anche per uno sviluppatore web (front o backend) si tratta di uno strumenti particolare, che va a cogliere sostanzialmente una nicchia. Ma, rispetto ad altre suite più ricche e complesse, e ad altre soluzioni che sono centrate invece sull’aspetto del git e, solo in maniera residuale, su quella dell’editing, questa soluzione ci è molto piaciuta e ci ha fatto rimettere mano in maniera più sistematica alle nostre vecchie memorie e storie con vim.

Pro
Essenziale e stabile
Supporta nativamente connessioni remote (Dropbox, SFTP, SSH) e git
La migliore interpretazione di vim nativa per iOS

Contro
Interfaccia a volte fin troppo essenziale
Modalità di ricerca e sostituzione limitate