I 10 strumenti indispensabili per uno sviluppatore iOS

iOS_Development_tipsLa pigrizia degli sviluppatori (e così la mia) è abbastanza proverbiale.
Essi tendono a riusare il codice quante più volte possibile e spesso cercano degli strumenti che consentano di rendere il proprio lavoro meno tedioso. Per quanto riguarda la piattaforma per cui mi capita principalmente di sviluppare software (iOS, il sistema operativo dell’iPhone per chi non fosse pratico), devo dire che esiste un sottobosco di utility, applicazioni e tweaks mica da ridere.
Continue reading

Gli smartphone e la dipendenza tecnologica: il caso Nike+

In questi giorni, prendendo spunto da un post sulla lista Gulchelp dell’ottimo Marco Marongiu sono entrato in una delle mie solite paranoie mentali sullo stato delle tecnologie e degli smartphone e sul software che ivi insiste.

Questa paranoia mi ha portato ad una terribile quanto inevitabile considerazione: siamo schiavi. Siamo schiavi delle multinazionali. E non pensatelo come uno sfogo anticapitalista o da popolo di Seattle politcamente schierato.

Il problema oltre che avere dei risvolti etici, ne ha, anche e soprattutto, di grossi per quanto riguarda l’aspetto tecnologico. Infatti, tutti quelli che usano uno smartphone si dividono, a parte relativamente piccole nicchie come Windows Phone e altri, in due macrocategorie: user Android e user iOS.

Mettiamola così, i difensori del software libero preferiscono un terminale Android, gli altri tipicamente possono usare iOS o lo stesso Android e la scelta ricade su altri fattori: l’esperienza utente (e qua, inutile negarlo, vince sicuramente iOS), la disponibilità di App (idem con patate) e apertura della piattaforma (Android a mani basse)  o altre considerazioni, fate voi.

In realtà e gli uni e gli altri utenti sono entrambi entrati in un modo di usare la tecnologia fortemente dipendente dalla piattaforma nonché dal software. Faccio un esempio. Io sono un utente iOS della prima ora. Mi comprai un iPhone americano del Gennaio 2008. Poi un iPhone 3GS, ora possiedo un iPhone 4.

Dopo alcuni anni di utilizzo, ti focalizzi su alcune applicazioni che ti consentono di fare determinate operazioni. Per esempio io adoro correre e mi traccio le corse con Nike+.  Iniziai parecchi anni fa con i primi iPod Nano tramite un ricevitore da attaccare al device e un sensore da mettere nella scarpa. Figo. Effettivamente, nel corso degli anni la tecnologia si è evoluta ed ora sono in grado di poter sfidare gli amici, tracciare col GPS il percorso e conoscere il tempo kilometro per kilometro con un’ottima accuratezza.

Di conseguenza ora non ho più necessità di mille aggeggi per poter tracciare la corsa, ma basta lanciare l’app Nike+GPS (link iTunes) sul mio iPhone e iniziare a correre. Una volta terminata la corsa, questa mi viene sincronizzata sul sito e posso monitorare costantemente i miei progressi. E fin qui tutto bene.

Pensiamo adesso di voler provare una nuova applicazione chiamata Runtastic (link iTunes) perché ha qualche funzionalità in più e funziona sia su iPhone che su Android. Non posso. O meglio posso ma perdo tutte le informazioni sulle mie corse precedenti (210 ad oggi). Dal sito Nike+ non posso scaricare le corse in un qualche formato come ad esempio CSV o che ne so un JSON o meglio GPX .

Mi rendo conto, quindi, che le corse NON SONO MIE. Anche se le ho fatte io. Le detiene Nike+. Cioè, secondo loro, io sgobbo e loro si tengono i dati? No, non va bene. Voglio disporre delle mie corse e le voglio ora.

La mia furia si placa subito dopo una breve ricerca su Google mi restituisce un simpatico webservice che consente di esportare le corse dal sito Nike+ con un semplice click. Si chiama EagerFeet. Consente di esportare in formato GPX, un dialetto dell’XML con POI, altimetria e altre amenità varie.

Ma questa piccola esperienza fortunatamente conclusasi bene per i miei dati ci può insegnare qualcosa: i dati che tu tieni sulla nuvola non sono veramente tuoi finché non li puoi scaricare con formati aperti e liberamente consultabili.

In secondo luogo le varie app che scarichiamo sul nostro device sono tutte o quasi (quella di Facebook si basa sul progetto Three20 che è libero) software non open source e i dati che noi produciamo tramite esse è spesso in formato chiuso. Questo ci porta a parlare dello scopo di questo post.

La dipendenza tecnologica.
Supponiamo ora che Nike+ non sia stata così accomodante riguardo i nostri dati da consentire chiunque tramite un servizio web di scaricare i propri dati, ma di tenerli chiusi in un cassetto. Perfettamente lecito, basta cambiare le clausole del servizio e decidere che da domani tu debba pagare per usufruire del servizio.

Ora tu non puoi continuare a inserire le tue corse se non con la mia applicazione che guarda caso gira solo sul nuovo iPhone 4S e non più sul tuo iPhone 4, perché sono cambiati i requisiti tecnici per l’app e con il nuovo aggiornamento non puoi più loggarti dal tuo telefono (sto volutamente estremizzando).

A questo punto ci troviamo obbligati a cambiare telefono o aggiornare il sistema operativo per fare in modo di poter ancora utilizzare quello che utilizzavi sino a poco tempo fa. Non puoi cambiare servizio o disporre dei tuoi dati. Sei dipendente dal tuo fornitore di servizio. Come un drogato col suo pusher, che in questo caso si chiama Apple, Google o Nike (non ce l’ho in particolare con nessuna delle tre).

Microsoft e Sony in questo sono maestre con le piattaforme XBOX 360 e PlayStation 3, Blizzard lo fa con World of Warcraft e Diablo (per cui si richiede una connessione costante ad internet per salvare il personaggio sui loro server) e così via. In realtà il problema è abbastanza diffuso ma nel mondo mobile questo è a mio parere una pratica ancora più deleteria, perché in ballo ci sono i nostri dati personali, ancora più personali. Le nostre foto, i nostri contatti, gli SMS all’amante e quanto di più riservato ci sia nella nostra sfera personale.

Da questo punto di vista il software libero non ha padroni, né rivali. Arriva sempre un po’ dopo sulle tecnologie (non sempre comunque), ma offre un’impareggiabile libertà e minore dipendenza tecnologica di tutte le altre soluzioni. La piattaforma di cloud OwnCloud, per esempio, fornisce funzionalità di cloud simili a quelle Apple o Google e può essere installata sul tuo NAS. Impareggiabile.

Peccato che come detto precedentemente, gran parte delle app non siano Open Source né l’App Store sia compatibile con questo tipo di licenze. Famoso a riguardo il caso del player libero VLC che era stato dovuto rimuovere dallo store di Apple per via della violazione della licenza GPL.

In sostanza, la raccomandazione è di scegliere sempre prima d’installare qualsiasi App che produca dati che vi torneranno utili in futuro per vedere se si può configurare una dipendenza tecnologica nel medio-lungo periodo. Magari spesso anche solo una ricerca su Google può dare i frutti sperati, come in questo caso, altre volte è meglio preferire delle alternative meno mature ma più libere per i vostri dati.