Skip to main content

Utilizzare GitHub con Mercurial e TortoiseHG

Introduzione

Non esiste sviluppatore degno di questo nome che non conosca GitHub, il popolare servizio di hosting di progetti software basato su tecnologia Git. Nel remoto caso in cui non ne abbiate mai sentito parlare vi consigliamo di recuperare le apposite voci di wikipedia relative rispettivamente a GitHub e a Git e i relativi siti ufficiali github.comgit-scm.com.

In caso contrario, continuate a leggere: saprete infatti fin troppo bene che l’utilizzo del servizio GitHub è convenzionalmente vincolato all’adozione di Git, un sistema di controllo di versione (source-control manager o SCM) particolarmente innovativo che in questi ultimi anni ha avuto – anche grazie alla popolarità dello stesso GitHub – una grandissima affermazione, soppiantando gli antichi e gloriosi standard open-source come CVS e SVN grazie ad un’architettura più moderna e basata su un sistema di versioning distribuito piuttosto che centralizzato.

Grazie a queste caratteristiche innovative oggi Git è senza ombra di dubbio il SCM più utilizzato da tutta la comunità Linux – non per niente è stato ideato da un certo Linus Torvalds. Ha avuto però certamente minore fortuna in ambiente Windows, per via di due principali motivi:

  • una tardiva diffusione delle principali interfacce grafiche di gestione – msysgit e TortoiseGit su tutte – particolarmente care agli utenti Windows, per loro natura meno avvezzi all’uso della command-line.
  • la quasi-contemporanea diffusione di Mercurial (noto anche come HG), un SCM distribuito dalle caratteristiche innovative simili a quelle di Git e caratterizzato da un maggiore supporto a livello applicativo per il sistema operativo di casa Microsoft.

Ad influire notevolmente sulla diffusione di Mercurial in ambiente windows è stato, nel 2008, il lancio del sito bitbucket.org, interamente basato su Mercurial (fino al 2011, anno in cui è stato integrato anche Git) e avente caratteristiche in tutto e per tutto simili a quelle offerte da GitHub.

Non è mia intenzione addentrarmi ulteriormente sull’argomento, né dire la mia su quale sia effettivamente il SCM e/o il sito migliore: personalmente, da affezionato utilizzatore di entrambi, ritengo che siano due ottimi prodotti e che – al di là della diversa filosofia di approccio – garantiscano allo sviluppatore funzionalità grossomodo analoghe per la quasi totalità degli utilizzi comuni.

Per una analisi approfondita delle somiglianze e differenze tra Git e Mercurial consiglio di leggere questi due ottimi (seppur datati) articoli. Il primo ha un approccio più tecnico e schematico, il secondo adotta invece un registro più ironico e discorsivo: scegliete quello che più vi ispira, allo stesso modo con cui spesso si finisce per scegliere l’SCM da utilizzare.

(altro…)

 

XCode: cambiare lo stile e/o il colore della Status Bar in Objective-C

A partire da iOS7 lo stile della status bar del dispositivo può essere modificato in due modi:

  • per-Controller, ovvero relativamente a ciascun controller.
  • per-Application, ovvero relativamente all’intera applicazione.

Per-Controller

La modalità predefinita per iOS7 e superiori è la prima, il che significa che il sistema si aspetta che le modifiche vengano effettuate all’interno di ciascun  controller. Per ottenere questo risultato occorre aggiungere la seguente riga di codice al metodo viewDidLoad:

E quindi implementare il metodo preferredStatusBarStyle, facendo in modo che restituisca lo stile desiderato. Ad esempio, se abbiamo impostato uno sfondo scuro è probabile che ci servirà uno stile che preveda un contenuto chiaro come nell’esempio seguente:

Mentre in caso di sfondo chiaro è probabile che ci troveremo meglio con lo stile predefinito, che prevede appunto un contenuto scuro:

E così via.

Per-Application

Se vogliamo modificare lo stile della Status Bar per tutti i controller della nostra applicazione, la prima cosa da fare è cambiare l’impostazione predefinita. Per far questo occorre aggiungere una chiave all’elenco delle proprietà personalizzate dell’applicazione, accessibili mediante il file info.plist nella cartella /Supporting Files/ oppure selezionando il Target relativo all’applicazione stessa e posizionandosi nella tab denominata Info:

app-info.plist
Due diversi modi per accedere alle proprietà personalizzate dell’applicazione.

 

La proprietà che va aggiunta è la seguente:

E’ possibile controllare di averla aggiunta correttamente osservando l’elenco modificato tramite l’interfaccia utente di XCode:

view-controller.based

Una volta fatto questo è sufficiente aggiungere la seguente riga di codice al metodo didFinishLaunchingWithOptions del file AppDelegate.m relativo alla nostra applicazione:

Per ulteriori approfondimenti su come personalizzare la Status Bar consigliamo la lettura:

Buono studio e… felice sviluppo!

 

 

Android Studio: personalizzare l’immagine “torna indietro” dell’ActionBar (homeAsUpIndicator)

Come molti di voi sapranno, il controllo ActionBar di una applicazione Android può essere configurato per prevedere una “navigazione all’indietro” (Up Navigation) da una Activity a un’altra, purché quest’ultima sia stata configurata come parent.

Per una guida completa alla Up Navigation rimandiamo all’apposita pagina della documentazione ufficiale. Ricorderemo solo che, per visualizzare l’icona, è necessario impostare correttamente il metodo setDisplayHomeAsUpEnabled()  nel seguente modo:

Questo comando provocherà la visualizzazione di una icona di navigazione sul lato sinistro della ActionBar dell’Activity. 

Per sostituire l’icona con un drawable personalizzato è sufficiente inserire questa dichiarazione all’interno del proprio theme:

Il file dove inserire questa istruzione è solitamente  /values/styles.xml , ma può essere anche  /values/themes.xml  o un altro file, a seconda di come avete organizzato la vostra applicazione. Nel caso in cui vogliate supportare anche API inferiori alla 11 il contenuto di cui sopra andrà inserito nel file presente nella cartella /values-v11/ , mentre nella cartella /values/  andrà utilizzata la sintassi compatibile con le API meno recenti:

 

Di seguito vi proponiamo due archivi .rar contenenti alcune icone di esempio per la personalizzazione del vostro homeAsUpIndicator: in entrambi i casi si tratta di icone chiare, da utilizzare quindi per una ActionBar che abbia un background color di colore scuro.

Felice sviluppo!

 

Android: come estendere una ImageView in larghezza adattando l’altezza in modo proporzionale

Può capitare, sviluppando una app per dispositivi Android, di avere l’esigenza di estendere le dimensioni di una immagine in modo da farle coprire orizzontalmente tutto lo schermo disponibile, mantenendo inalterate le sue proporzioni. Questo significa che l’altezza dell’immagine suddetta dovrà adattarsi in modo proporzionale alla larghezza, così da mantenere inalterato l’aspect ratio originario.

Il problema

Ottenere questo risultato in HTML è estremamente semplice: è sufficiente impostare la width dell’immagine in questione al 100%, omettendo qualsiasi informazione in merito alla height e lasciando così che sia il browser a determinarla in modo proporzionale. Sfortunatamente, in Android la questione è più complessa: nell’elemento ImageView altezza e larghezza sono due parametri obbligatori, che è possibile valorizzare con un numero fisso in px, dp o altro, in base al contenitore mediante il comando match_parent oppure in base al contenuto mediante il comando wrap_content. In tutti e tre i casi non è possibile definire un comportamento dell’altezza realmente proporzionale rispetto al contenuto. Il meglio che è possibile fare utilizzando una normale ImageView è impostare gli attributi android:layout_widthandroid:layout_height e android:scaleType in modo che si adattino automaticamente alle dimensioni del layout contenitore nel seguente modo:

Questo metodo consente di ottenere il risultato sperato nella maggior parte degli scenari, ma ha il grande difetto di non funzionare allo stesso modo su tutti i dispositivi Android e con tutte le immagini.

La soluzione

Chi ha detto che è necessario utilizzare una normale ImageView? Questo interessantissimo post su StackOverflow mostra come è possibile estendere una View per ottenere un risultato analogo a quello che stiamo cercando. Partendo da quell’esempio possiamo quindi sviluppare una estensione della classe ImageView che dimensioni automaticamente l’altezza sulla base del ridimensionamento della larghezza in modo proporzionale rispetto all’aspect ratio dell’immagine originaria.

Questo il codice completo:

 

E questa è l’implementazione all’interno di un layout XML:

Ricordate, in entrambi gli esempi, di sostituire com.my.namespace con il  namespace utilizzato nella vostra applicazione.

Felice sviluppo!

 

 

Twitter Webinar del 10 febbraio: TwitterAnalytics, TwitterAds, QuickPromote e altro

Si è concluso da poche ore il primo Twitter Webinar del 2015, dedicato agli strumenti di monitoring e promozionali offerti dalle due piattaforme ad uso business: analytics.twitter.com e ads.twitter.com, entrambe accessibili utilizzando le credenziali del proprio account twitter.

La piattaforma analytics.twitter.com è uno strumento gratuito che consente di analizzare il traffico dei nostri tweet e misurare il tasso di interazione di ciascuno di essi:

analytics.twitter.com - Screenshot 1
analytics.twitter.com è lo strumento gratuito mediante il quale è possibile misurare le visualizzazioni e le interazioni dei nostri tweet.

 

Oltre al pannello principale, che offre una overview completa di tutte le nostre ultime attività su Twitter, è possibile accedere alla dashboard dedicata ai Follower: quest’ultima, oltre a un grafico riassuntivo dell’attività, fornisce interessanti informazioni sul comportamento e sulle abitudini degli stessi. E’ possibile visualizzare i loro ambiti di interesse, la zona geografica di provenienza, il genere e, soprattutto, una lista aggregata degli altri account Twitter più seguiti. Quest’ultima informazione può essere molto importante in quanto consente di conoscere meglio le abitudini e le attività dei nostri Follower, informazione fondamentale per rendere più attraenti i contenuti del nostro canale.

analytics.twitter.com-02
Analytics: la dashboard dedicata ai Follower

 

I dati presentati nelle dashboard possono essere agevolmente esportati in formato .CSV per analisi ulteriori mediante il pulsante Esporta dati presente nella schermata principale.

Una delle funzionalità più interessanti fornite dalla piattaforma Analytics è quella che consente di analizzare i dettagli di un singolo tweet: panoramica delle visualizzazioni, risposte, retweet e click sul contenuto. Informazioni utili per comprendere se il tweet è stato efficace e se è riuscito nell’intento di coinvolgere i nostri followers, nonché raggiungere nuovi potenziali utenti.

analytics.twitter.com-03
Analytics: finestra di dettaglio su un singolo tweet

 

Mediante il pannello Dettagli sul tweet è anche possibile accedere a QuickPromote, una funzionalità a pagamento che consente di sponsorizzare il nostro contenuto ottenendo click e interazioni ulteriori. Si tratta di uno strumento particolarmente efficace per promuovere il nostro canale, stando a quanto detto dal relatore del webinar, risulta particolarmente efficace per i tweet che hanno avuto particolare successo tra i nostri follower: quelli che, in altre parole, si siano mostrati particolarmente efficaci.

Per utilizzare la funzionalità QuickPromote è necessario avere uno strumento di pagamento configurato sul proprio account. Per far questo è necessario accedere alla seconda piattaforma presentata dal webinar, ovvero ads.twitter.com. Quest’ultimo è uno strumento a pagamento che consente di impostare vere e proprie campagne promozionali per il nostro canale:

ads.twitter.com-01
ads.twitter.com è la piattaforma a pagamento per la pianificazione di campagne promozionali, obiettivi, conversioni etc.

 

La piattaforma di advertising è lo strumento commerciale da utilizzare per impostare il proprio business su Twitter. Consente infatti di pianificare le campagne, visualizzare singole metriche, conversioni, tasso di conversione, statistiche dei tweet e così via. Il funzionamento, semplice e intuitivo, è molto simile alla piattaforma business di Facebook e di altri social network similari ed utilizza la medesima terminologia.

Anche in questo caso, tutti i dati presentati nelle varie dashboard possono essere agevolmente esportati in formato .CSV per analisi ulteriori.

Oltre alla presentazione delle due piattaforme il webinar ha approfondito una serie di concetti-chiave utili per chiunque abbia interesse a utilizzare twitter in modo più efficace: a beneficio di chi non ha avuto modo di sentirlo li riassumo di seguito:

  • Tenere d’occhio gli interessi dei follower: è fondamentale impostare i tweet sulla base degli argomenti seguiti dai nostri followers, visibili nella dashboard apposita, così da incrementare le interazioni.
  • Impostare le campagne tenendo presente la zona di provenienza e il genere dei follower: questo è particolarmente importante quando si impostano le campagne TwitterAds e quando si preparano tweet relativi a promozioni e/o offerte speciali, che vanno indirizzate (e geo-indirizzate) nel modo giusto.
  • Osservare gli altri account Twitter più seguiti dai nostri follower: si tratta di una analisi molto utile se il nostro obiettivo è quello di raggiungere un pubblico simile a quello che ci sta già seguendo. Vedere cosa altro piace loro è fondamentale per preparare contenuti più attraenti e interessanti.
  • Ricordarsi che la nostra comunità di follower è in costante evoluzione. Twitter è mutevole come il web: gli interessi degli utenti cambiano spesso, così come le mode e le tendenze. Per questo è importante tenersi aggiornati, osservando con costanza gli interessi e le abitudini di chi ci segue. Se impariamo a conoscere meglio il nostro pubblico, il contenuto che pubblicheremo sarà probabilmente più apprezzato e porterà a maggiori interazioni / click / acquisti.

DOMANDE e RISPOSTE

Concludo questa panoramica del webinar con un rapido elenco delle domande e risposte fornite dal relatore agli utenti che hanno partecipato:

Come viene calcolato il Tasso di interazione di ciascun Tweet presente nella dashboard principale di analytics.twitter.com?
Il tasso di interazione non è altro che la somma del numero dei retweet/risposte, diviso per il numero totale di visualizzazioni.

Qual è la cadenza giusta per promuovere e pubblicare offerte commerciali?
Non c’è una risposta precisa, in quanto non esiste una regola uguale per tutti le situazioni: occorre procedere per tentativi secondo la logica del trial and error. I dati di monitoring forniti dalla piattaforma analytics.twitter.com possono essere d’aiuto  in questo, consentendo di tenere sotto controllo ogni singolo tweet.

E’ consigliabile utilizzare elementi rich media (foto, video, cards, etc.) all’interno dei propri tweet?
L’utilizzo di rich media è sempre consigliato, in quanto i contenuti multimediali garantiscono un tasso di interazione mediamente più elevato. Il contenuto di un tweet che contiene foto o video tende ad essere più interessante: l’utilizzo di creatività originale, foto, cards etc. porta generalmente ad avere tweet più visti e maggiormente condivisi.

Cosa sono (e a cosa servono) le Twitter Cards?
Si tratta di un contenuto rich media composto da un blocco di immagine, testo e pulsante che è possibile aggiungere a un tweet. E’ dimostrato che i tweet corredati da una card raddoppiano (solitamente) il tasso di interazione. Per maggiori informazioni sulle Twitter Cards è possibile consultare l’apposita guida ufficiale. In ogni caso, il relatore ha anticipato che sarà l’argomento del prossimo webinar: non perdetevelo!

Quando è previsto il prossimo webinar?
La data del webinar dedicato alle Twitter Cards non è ancora stata decisa. Per essere sempre informati sui webinar organizzati da Twitter Italia, l’hashtag da utilizzare è #TwitterAcademy.

Dove posso trovare i webinar già trasmessi?
Tutti i webinar del 2014 sono disponibili nell’apposita pagina del blog di Twitter.com.

Un grazie particolare a @petrussola, relatore del webinar ed interlocutore competente e preparato. Alla prossima!