SocialMeteo App,
il racconto del progetto

Social Meteo è un chat che in più, mostra le condizioni meteorologiche dei luoghi in cui sono i nostri contatti.

Nel suo sviluppo sono stati incontrati e superati molti ostacoli che hanno reso prezioso il progetto non tanto per le sue ricadute in termini di numeri sullo Store ma più che altro perché ci ha permesso di misurarci con ambiti del nostro lavoro che non avevamo ancora approfondito. Scegliere e gestire le fonti di dati, costruire un ambiente di chat pur con limiti tecnici di un progetto a budget interno, provare a concorrere con un settore come le app di meteo con un’idea originale e farla funzionare.


In questo case study vi raccontiamo come andata.

splash_logo

Few things fascinate people more than the weather

Il Contesto

Ci sono molte zone del mondo in cui le condizioni meteo sono davvero difficili da predire perché il tempo è molto instabile. Tantissime persone controllano le previsioni del meteo ogni giorno, più volte al giorno e oggi, secondo molte ricerche  almeno un quarto di loro lo fa su dispositivi mobile tramite app dedicate. Tanto da aver reso la fruizione delle previsioni meteo su smartphone un metodo più popolare della tv . Questo ha fatto si che il settore delle applicazioni dedicate alla meteorologia sia diventato uno dei più importanti se non il più importante degli app store.

Sul Google Play Store  le app dedicate al meteo sono tra le più profittevoli in assoluto.

Nonostante l’elevata presenza di app sul meteo nei market, resta un settore interessante per pubblicare poiché il numero di app è si elevato (secondo alcuni studi si stimano circa 7000 app attive sullo store apple) ma non elevatissimo rispetto ad altri settori molto più affollati.

Il core del nostro lavoro è produrre app per altre aziende che ce lo richiedono, e quindi raramente siamo noi a poter decidere che tipo di app sviluppare o per quale settore. Ma il nostro lavoro è anche la nostra passione e riteniamo che la ricerca, la formazione cosi come l’auto-formazione continua siano componenti fondamentali per stare sul mercato, produrre qualcosa di buono e divertirsi anche un pò. Quando abbiamo avuto il tempo e la possibilità di cimentarci in progetti personali lo abbiamo sempre fatto.

cloud

Nel periodo in cui stavamo lavorando a questo progetto era da poco stato pubblicato dalla Apple il nuovo linguaggio di programmazione Swift (erede dell’attuale Objective-C da oltre 20 anni linguaggio di riferimento per lo sviluppo OSX e iOS). Un linguaggio completamente nuovo che strizza l’occhio agli sviluppatori provenienti dal web ed in generale con una sintassi molto semplificata. Sicuramente non ancora maturo per essere utilizzato da noi per i nostri progetti in produzione ma certamente interessante da seguire, con l’obiettivo probabile di scalzare il fratello maggiore nel giro di qualche anno. La nostra decisione è stata quindi di provare a sviluppare questo progetto interno in Swift cosi da poterlo anche conoscere più approfonditamente e aggiungere un nuovo pezzettino di conoscenza al nostro arsenale

Queste considerazioni ci hanno condotto a scegliere di provare a misurarci con l’idea dello sviluppo di un App iPhone sul meteo in Swift per iOS.

Ma da quale punto di vista affrontarla?

Provare a sviluppare un App di meteo capace di svolgere la sua funzione in modo impeccabile, piena di dati, migliore delle altre, sarebbe stato possibile? O sarebbe stato un esercizio più interessante provare a pensare a un App di meteo “diversa”, che non fosse ancora presente sullo Store? entrambe le scelte rappresentavano una sfida non da poco.

Dopo aver analizzato decine e decine di App meteo siamo giunti alla conclusione che esisteva un primo nodo iniziale da sciogliere per poter decidere come procedere: la fonte dei dati. In una app di meteo canonica, i dati sono tutto ciò che rende l’app attendibile. La capacità di dare all’utente le previsioni meno affidabili con la massima velocità e precisione possibile è una necessità ovvia. Non altrettanto lo è capire dove prendere questi dati, se e quanto pagarli rispetto al budget stimato per un progetto interno e se siano realmente affidabili.

Attualmente se uno sviluppatore indipendente vuole creare un app con previsioni meteo affidabili, le fonti di dati gratuite disponibili sono diverse, tra le principali segnaliamo:

Ciascuna con PRO e CONTRO, in generale hanno tutte un piano free e poi un piano di abbonamento in base al numero di richieste che la nostra App farà verso il servizio scelto (in pratica più utenti abbiamo e più il piano risulterà costoso). Quasi tutte offrono servizi meteo di base.

Una volta scelta la fonte dei dati e valutato come fosse complesso e difficile avere dei dati perfettamente affidabili, l’idea di sviluppare un App che potesse competere come precisione dati nel market è stata quindi accantonata, spingendoci a focalizzare le nostre idee sul tipo di App di meteo: cercare una caratteristica di differenza rispetto ad ogni altra.

ocean

In un primo momento abbiamo provato a immaginare di progettare un’App più semplice dal punto di vista delle informazioni meteo erogate e quindi evitando previsioni approfondite o dati minuziosi, mentre abbiano provato a esplorare le possibilità di un’App che fornisse dati di base in modo accattivante, nuovo e diverso, provando a lavorare sull’interfaccia utente e sull’esperienza di utilizzo dell’App.

Questa fase intermedia è stata di grande utilità al team per più di un motivo: è stato possibile esplorare alcune idee di interfaccia per valutarne il valore tramite rapidi prototipi, cosi come è servita per approfondire l’uso di fonti di dati diverse e valutare se il prodotto che stavamo per sviluppare ci sembrava interessante. Inoltre ci ha ricordato che un’app per essere tale deve avere un focus molto forte e ben definito e l’interfaccia in tal senso viene solo dopo e mai prima.
Abbiamo quindi messo da parte il design e siamo tornati in brainstorming.

Il dati sull’utilizzo delle App di meteo mostrano come per le persone rappresenti una informazione molto interessante e infatti, il meteo, è uno dei “argomenti di conversazione” più usati, se non l’Argomento per definizione. Quando le persone non sanno di cosa parlare, o come approcciare una chiacchierata, spesso partono da riflessioni sulle condizioni meteorologiche. Questo ci ha fatto intuire immediatamente quale poteva essere l’altro focus importante su cui poggiare l’app, ovvero la comunicazione.

Infondo, la comunicazione, è l’attività mobile più diffusa, nelle sue varie forme, dalla posta ai social network. E sopratutto la chat. Le persone amano chiacchierare online, hanno molti luoghi dove farlo ed è sempre più diffusa la tendenza a crearsi spazi privati di chat all’interno dei quali le cerchie di amici siano selezionate perché private o unite da uno stesso interesse specifico. Le room di WhatsUp/Messenger/Line in cui gruppi di amici si ritrovano per chattare tutto il giorno sui loro smartphone non sono altro che questo. E la tendenza sarà sempre più forte.

Il brainstorming era terminato e avevamo deciso che tipo di app sviluppare: un App sul meteo che però fosse anche una chat. Un’app per chattare a proposito delle condizioni meteo. Un app per parlare del tempo. Ecco che avevamo un’idea focalizzata e che ci piaceva.

chattin

Le sfide che si presentano in questo progetto erano quindi principalmente due: da una parte progettare e sviluppare un’app di chat e meteo, argomento per il quale non c’erano esempi o app simili. Dall’altra gestire il sistema di localizzazione, le informazioni meteo in modo attendibile e rendere il sistema di chat fluido e funzionante.

Esecuzione

Lo sviluppo del progetto, dal brainstorming al suo invio sull’App Store ha richiesto 40 giorni di tempo. Di queste giornate all’incirca sono state utilizzate 18 giornate lavoro di design di una persona e 22 giornate lavoro di sviluppo di un’altra persona. I due aspetti dello stesso progetto si sono svolti inizialmente in modo asincrono, prima il design e poi lo sviluppo ,e poi all’unisono, per limare e migliorare l’app direttamente durante lo sviluppo, attraverso un lavoro di miglioramento per fasi incrementali.

desk

Il Design

La scelta che facciamo da tempo in Airbag è ricercare la semplicità del design per far emergere l’immediatezza delle funzioni. Per questo sapevamo da subito che avremo optato per un’interfaccia utente nota e non ci saremmo cimentati nel tentare di “reinventare la ruota”. La presenza di meteo e chat ha reso più complesso, invece, decidere come strutturare la fruizione dell’app.

E’ un app di meteo, quindi deve contenere le condizioni meteo della zona in cui è localizzato l’utente. Ma deve anche contenere una lista di contatti come una chat. E come deve presentare questa lista? In ordine cronologico di chat, come tutte le app di messaggistica? Oppure deve raggrupparli per zona meteo? (tutti gli amici di Milano, di Roma, e così via..). E come deve mostrare le condizioni meteo del contatto?
Molte domande cui rispondere per prendere decisioni fondamentali di progettazione.


Dopo aver esplorato alcune possibilità abbiamo deciso che l’App dovesse avere schermata principali: una home utente, una specie di dashboard contenente le sue condizioni meteo e la lista contatti. E che ogni contatto in lista dovesse mostrare in modo ridotto, ma chiaro, le condizioni meteo locali oltre che la localizzazione. In questo modo l’utente avrebbe avuto a disposizione in un unica schermata tutto quello che gli serviva: avrebbe conosciuto le proprie condizioni meteo e avrebbe conosciuto quelle dei suoi contatti, con i quali poter avviare istantaneamente una conversazione.

SIngle_city
Prima versione, poi scartata, di raggruppamento utenti per città

Si è quindi configurata in wireframe una schermata con una sezione principale nella parte alta, contenente il meteo e la localizzaione dell’utente, e una lista contatti classica subito sotto, con tutti gli amici che usano l’App. Abbiamo quindi deciso di studiare una scala di colori corrispondente alle fasce di temperatura, dividendo la scala per intervalli di 5 gradi.

In questo modo l’utente avrebbe letto le condizioni meteo proprie e dei contatti in modo molto più immediato: associare il rosso a temperature alte e il blu a temperature basse rende comprensibile la lettura di una lista anche senza leggere ogni informazione sui gradi.

Abbiamo scelto di un set di icone e poi le abbiamo selezionate e adattate alle esigenze dell’app. Ma quante icone servono per rappresentare le condizioni meteo? Studiando il problema siamo giunti alla conclusione che potevamo rappresentare tutte le condizioni meteo tramite un set di 9 icone , in due versioni , giorno e notte, per un totale di 18.

In questo modo l’utente avrebbe letto le condizioni meteo proprie e dei contatti in modo molto più immediato: associare il rosso a temperature alte e il blu a temperature basse rende comprensibile la lettura di una lista anche senza leggere ogni informazione sui gradi.

Abbiamo scelto di un set di icone e poi le abbiamo selezionate e adattate alle esigenze dell’app. Ma quante icone servono per rappresentare le condizioni meteo? Studiando il problema siamo giunti alla conclusione che potevamo rappresentare tutte le condizioni meteo tramite un set di 9 icone , in due versioni , giorno e notte, per un totale di 18.

DASHBOARD
Dashboard

Nella schermata utente, oltre alla localizzazione dell’utente, ogni icona sarebbe stata accompagnata dalla descrizione (es: cielo sereno), dalla temperatura, dalla previsione in breve (Pioggia) e dai tre indicatori già importanti per la valutazione del tempo: vento, umidità e pressione atmosferica. Nella lista contatti invece si sarebbe vista l’icona, la temperatura e la localizzazione del contatto.

L’altra schermata importante da progettare era la chat, ovvero il luogo dove i due contatti chiacchierano in privato. Una scelta tecnica iniziale ha guidato, in questo caso, le scelte di design: si è deciso immediatamente che nella sua prima versione l’app avrebbe permesso solo chat uno a uno e non di gruppo. Una chat uno a uno è una messaggistica classica di cui non va reinventata l’interfaccia ma come inserire il meteo?

Dopo molte prove e idee si è arrivati alla soluzione che ci pareva funzionalmente più utile e immediata per gli utenti: una sezione in alto che usando lo stesso codice colore riportasse in piccolo le condizioni meteo di ognuno dei due. Per rinforzare il focus, anche le nuvolette di ognuna delle due persone avrebbero avuto il colore del rispettivo meteo.

single_Chat
Chat

Lo sviluppo

A livello di sviluppo alla fine abbiamo deciso di utilizzare Openweathermap per i dati meteo, una fonte abbastanza affidabile e gratuita al di sotto di alcune soglie.
L’utente viene geolocalizzato ogni volta che apre l’App e recuperiamo i dati meteo della città in cui si trova ed in tutte quelle dei suoi amici in modo da dare nella schermata principale una visione globale delle condizioni meteo della nostra sfera di contatti in tempo reale.

Per la chat abbiamo utilizzato il backend Parse di Facebook dopo aver selezionato diverse altre opzioni (al momento stiamo pensando di fare una migrazione vero Amazon in quanto poi Parse verrà dismesso all’inizio del 2017).

La gestione della chat permette l’invio di messaggi di testo come di immagini o video in modo da dare tutta la libertà possibile all’utilizzatore finale. E’ stata una bella sfida renderla semplice e pulita mantenendo in alto la situazione meteo tra le due persone che parlano in modo da avere sempre sotto occhio le attuali condizioni dei due partecipanti alla chat.

Per quanto riguarda Swift per noi è stata un App in cui metterci alla prova per imparare meglio il nuovo linguaggio che nel tempo sostituirà Objective-C. Siamo soddisfatti del risultato raggiunto anche se il margine di miglioramento è molto grande 🙂

Importante è stato per noi questo esperimento che ci ha permesso di approfondire e studiare la chat (uno dei trend più importanti nello sviluppo modile di questo 2016). Potremo riutilizzarlo in altre applicazioni e proporlo come modulo in diverse soluzioni pensate stavolta per un utenza di tipo business.

Risultato finale

L’app è stata quindi inviata allo store come sempre, ed è stata pubblicata il 2 febbraio 2016 (caso fortuito esattamente il giorno del secondo compleanno di Airbag). Non è stata fatta nessuna campagna di promozione o comunicazione perché centrare obiettivi quantitativi sullo store non era nei nostri obiettivi ma l’app è comunque apparsa tra le nuove app della sezione Meteo dello store, rimanendoci per due o tre giorni ottenendo il suo piccolo parco utenti che la utilizzano.

L’app e disponibile sullo Store.

appstore-button
Social Meteo – Airbag Studio

Conclusioni

La lezione più importante per noi, è che il tempo impiegato per progettare e sviluppare Social Meteo ha rappresentato per il nostro Studio un ottimo investimento produttivo, permettendoci di lavorare a un brain storming più complesso del comune, di migliorare le nostre conoscenze in diversi ambiti come la programmazione Swift, la localizzazione, la gestione dei dati meteo.Inoltre ci ha permesso di approfondire tutti gli aspetti relativi alla messaggistica istantanea e alle sue notifiche: un sistema di notifiche in app e fuori app molto più complesso di quello relativo a una normale applicazione.

Tutti questi aspetti sono stati immediatamente utili nei progetti successivi verso i nostri clienti, permettendoci di migliorare i nostri progetti anche quando nessuna delle funzionalità sperimentate in Social Meteo era presente, perché l’esplorazione di nuovi ambiti in modo libero permette di allargare il proprio orizzonte operativo in tutte le direzioni, migliorandosi.

Per questo continueremo a cercare spazi e programmare i nostri calendari di lavoro cercando di inserire almeno un progetto interno all’anno, perché crediamo che oltre alla formazione classica, frontale, sia necessario cimentarsi con progetti indipendenti la cui spinta sia la passione e il cui scopo sia migliorare le proprie competenze, divertendosi e permettondici di creare un’app di Meteo affidabile.