Automazione del flusso di lavoro in iOS (e III).
Contents
Negli articoli precedenti (1 e 2) abbiamo visto il Restrizioni iOS per la comunicazione tra le applicazioni e gli strumenti utilizzati per eseguire una determinata attività. In questo ultimo post metteremo in pratica quanto visto finora, automatizzandolo grazie all’utilizzo di Pythonista.
pythonista
Pythonista ci offre un ambiente di sviluppo ed esecuzione di script basato su Pitone 2.7con caratteristiche così interessanti come un potente editor di codice, una tastiera estesa (stile iA Writer) con accesso ai caratteri più usati, ecc. Uno dei punti di forza dell’applicazione è il comunità attiva che è intorno a te, con alcuni forum in cui possiamo vedere un gran numero di script di esempio per eseguire le attività più svariate.

L’applicazione è universale ed è disponibile su App Store (link iTunes) al prezzo di € 4,49.
Esecuzione di script
Non appena apriremo Pythonista vedremo tutti gli script disponibili, sia quelli che abbiamo creato noi stessi sia quelli che l’applicazione include come esempio. Se vogliamo velocizzare l’esecuzione degli script che useremo nel nostro flusso di lavoro, possiamo farlo aggiungerli al menu Azioni (nelle impostazioni dell’applicazione).

Tuttavia, esiste un’opzione più comoda e veloce per eseguire gli script: create scorciatoie sul desktop dell’iPad (allo stesso modo in cui potremmo fare con una pagina web a cui vogliamo accedere direttamente senza dover premere prima l’icona di Safari). Inoltre, lo sviluppatore Pythonista ha creato una pagina Web che semplifica la creazione di queste scorciatoie. È sufficiente indicare il nome dello script e, facoltativamente, gli argomenti che passeremo e aggiungere la pagina risultante al nostro desktop tramite l’opzione del menu Safari per creare segnalibri.
Per finire con l’accesso rapido agli script, indica che Pythonista è compatibile con Launch Center Pro ($ 4,49, non disponibile nativamente per iPad, solo per iPhone), un “lanciatore” di determinate applicazioni o funzioni all’interno di un’applicazione che utilizza scorciatoie. Ad esempio, nel caso di Pythonista, possiamo definire un accesso per modificare uno script, un altro per eseguirlo e un altro per farlo passando argomenti.

Ora possiamo metterci al lavoro. Successivamente vedremo gli script che abbiamo implementato per eseguire le attività descritte negli articoli precedenti. Oltre alle funzionalità già indicate (schemi URL, protocollo x-callback-url) è presente una funzionalità Pythonista che ci permetterà di snellire e automatizzare il nostro flusso di lavoro: l’utilizzo del appunti. Questo ambiente di sviluppo ci permette di accedere al contenuto della clipboard in modo che, dopo aver scritto un articolo in iA Writer, non dobbiamo fare altro che selezionare il testo, copiarlo nella clipboard ed eseguire uno script. Questo sarà incaricato di raccogliere il contenuto archiviato e di inviarlo a un’altra applicazione (ad esempio, a Poster per la pubblicazione).
Infine una precisazione. Non siamo esperti di Python, quindi probabilmente è possibile creare versioni ottimizzate di questi. Tuttavia, grazie a Pythonista, alcuni buoni esempi e script di riferimento e alcune modifiche che abbiamo introdotto, abbiamo raggiunto il nostro obiettivo di automazione.

Collegamenti di formattazione da utilizzare nell’articolo
Durante la stesura di un articolo potremmo avere la necessità di aggiungere link alla fonte della notizia o ad altre pagine web come riferimento e supporto per il contenuto. Il seguente script ci consente, da un URL specifico (selezionato, ad esempio, in Safari Mobile) e che abbiamo copiato negli appunti, creare un collegamento e persino indicare il testo che mostreremo nell’articolo.
# -*- codifica: utf-8 -*-
importa urllib

importare appunti
console di importazione
console.clear()

letterale1 = u’Link’
literal2 = u’Inserisci il testo del link’
resp = console.input_alert(literal1, literal2)
link = resp.decode(‘utf-8’)

direzione = appunti.get()
urlfinal = ” + collegamento + ”
print(url finale)

clipboard.set(URLfinale)
Formattazione dell’immagine
L’obiettivo di questo script è ridurre le dimensioni degli screenshot che acquisiamo con l’iPad e che vengono archiviati nell’applicazione Foto. Per fare ciò, andiamo nella nostra libreria di immagini, selezioniamo quella che vogliamo trattare, la copiamo negli appunti ed eseguiamo questo script. Di conseguenza avremo sullo schermo (in realtà, la console Pythonista dove vediamo i risultati dell’esecuzione degli script) l’immagine di dimensioni più piccole. A questo punto basterà cliccare sull’immagine e selezionare l’opzione salva per salvarla nella libreria insieme all’immagine originale.
importare appunti
importa immagine
console di importazione
console.clear()
immagine = appunti.get_image()
imagedef = image.resize((480,365),Image.ANTIALIAS)

imagedef.mostra()
Redazione e pubblicazione dell’articolo
È finalmente giunto il momento di pubblicare il nostro articolo. Per questo useremo ancora una volta l’integrazione di Pythonista con il appunti. L’idea è quella di selezionare il contenuto del nostro articolo (scritto in iA Writer), copiarlo negli appunti ed eseguire lo script Pythonista che lo “carica” su Manifesto, l’applicazione scelta per pubblicare gli articoli del blog. Per velocizzare la creazione del post e vedere i dialoghi di Pythonista in azione, richiederemo l’introduzione del titolo dell’articolo attraverso la console dell’editor, come si vede nella prima immagine di questo articolo.
# -*- codifica: utf-8 -*-
importare il browser web

importa urllib
importare appunti
console di importazione
console.clear()
letterale1 = u’Titolo’
literal2 = u’Inserisci il titolo del post’
resp = console.input_alert(literal1, literal2)
titolo = resp.decode(‘utf-8’)
titolo = titolo.encode(‘utf-8’)
title = urllib.quote(title, safe = »)
appunti = appunti.get()
corpo = clipboard.encode(‘utf-8’)
body = urllib.quote(body, safe = »)
webbrowser.open(‘posterapp:///create?text=’ + corpo + ‘&title=’ + titolo)
La modifica e la successiva pubblicazione in Poster può essere complicata (o semplificata, a seconda di come la si guardi) se siamo abituati a scrivere i nostri articoli utilizzando Ribasso. In tal caso avremmo bisogno di un’applicazione intermedia che interpreti il contenuto in formato Markdown e lo traduca in HTML. Una buona alternativa in questo caso è Notevole, che, come accennato nel primo articolo della serie, supporta anche il protocollo x-callback-url. In questo modo, possiamo passare un testo attraverso gli appunti e raccogliere l’output in una variabile di output, oppure copiarlo nuovamente negli appunti per una successiva pubblicazione tramite Poster. Ex:
notes://x-callback-url/render-markdown?text=render_text&output-param=render_text
Da qui potremmo inviare il contenuto degli appunti (con il testo già interpretato) a Poster per terminare la modifica, aggiungere le immagini, le etichette e le categorie e pubblicarlo.
Integrazione con Dropbox
Come abbiamo indicato nel precedente articolo, questo non è il nostro caso, ma è probabile che qualcuno voglia caricare sul proprio account Dropbox le immagini archiviate nella libreria dell’iPad (sia nel loro formato originale che ridotto).
Questa operazione può anche essere automatizzata, anche se per questo avremo bisogno due azioni (o script) diversi. Il primo di questi può essere trovato in questo post sui forum di Pythonista. Fondamentalmente, ciò che fa è connettersi a un’applicazione che abbiamo precedentemente creato nel nostro account Dropbox (tramite il seguente link). Questa applicazione avrà le autorizzazioni di accesso per una directory che definiamo per il nostro account.
Come abbiamo detto, lo script si connette all’applicazione Dropbox e ottiene il suo file Identificativo unico. Quindi invia questo identificatore al seguente script (creato da Federico Vitecci, da MacStories e responsabile dell’articolo che è servito da base, insieme ai forum Pythonista, per alcuni dei nostri script). Lo script, reperibile a questo link, carica sul nostro account Dropbox l’immagine che abbiamo selezionato dalla libreria dell’iPad e copiata sul appunti.
È forse la parte più complicata del processo anche se, come dicevamo, nel nostro caso non abbiamo bisogno di caricare le immagini su Dropbox. Tuttavia, la funzionalità è abbastanza interessante da mostrare.
E questo è tutto. Sebbene il flusso che abbiamo automatizzato possa essere molto specifico, ciò che era importante in questa serie di articoli lo era mostrare le possibilità offerte dall’iPad se lo combiniamo con gli strumenti giusti. Sicuramente gli script che abbiamo pubblicato possono essere utilizzati, in parte o insieme, per svolgere altri compiti. Ora si tratta di usare la fantasia, cercare informazioni nei forum Pythonista, osare con la programmazione e… raggiungere i nostri obiettivi.
Con informazioni da: Apple – iOS Developer Library | MacStorie | Forum pitonisti