La mia collezione

gamecard

giovedì 9 agosto 2012

iOS vs Android - iPhone vs RestoDelMondo

Salve a tutti... e dopo tutto questo tempo lontano dal blog ritorno con...una recensione? assolutamente no...oggi niente videogiochi... oggi parlerò di sistemi operativi mobili...
Come alcuni di voi sapranno, sono un appassionato di smartphone da una vita... ne ho posseduti tanti e tendo a cambiarli con una certa frequenza..in questi ultimi mesi mi sono messo a studiare Android e ne sono diventato ufficialmente uno sviluppatore (sto creando alcune App che spero di mettere online quanto prima..ed è anche per questo che nell'ultimo mese non ho avuto molto tempo per scrivere recensioni).
Da bravo appassionato (o malato?) di questi gingilli tecnologici, mi aggiro spesso tra vari forum o blog specifici e qui, soprattutto da un anno e mezzo a questa parte, trovo spesso diatribe anche feroci tra i sostenitori dei due più grandi "mondi" della tecnologia mobile: Apple (con il suo iPhone/iPad e il sistema iOS) e Google (con il suo Android e tutti i vari dispositivi che lo utilizzano). La maggior parte dei sostenitori dell'uno o dell'altro tende a fare rimostranze senza grandi basi a sostenere le varie tesi, a volte timidamente tento di dare la mia opinione ma gira che ti rigira vengo tacciato di fan boy dell'uno o dell'altra sponda e allora ho deciso di scrivere il risultato di un'analisi piuttosto approfondita dei due sistemi. Tenterò di toccare un pò tutti gli aspetti di questi due mondi, premettendo fin da adesso che reputo il mondo Android superiore e più completo al mondo iOS.. da ex possessore e fanatico di iPhone, da qualche mese a questa parte ho cambiato quasi radicalmente idea... i motivi? Tenterò di esporli più avanti.

L'Hardware..un aspetto da non sottovalutare!
Parlerò essenzialmente dei due sistemi operativi ma non posso non considerare per un attimo l'aspetto hardware.
Apple secondo me non ha rivali sul lato hardware, sia iPhone che iPad presentano un design bellissimo e anche i materiali sono ottimi (vetri gorilla glass e scocche in alluminio), forse un pò pesanti per questo però per gli occhi è un vero piacere. Anche la qualità costruttiva dei prodotti Apple è veramente ad altissimi livelli, nessun scricchiolio, tutto praticamente perfetto.
Sul lato della dotazione invece Apple presenta luci ed ombre, si perché il suo problema è che innova lentamente e pochissimi elementi dei propri dispositivi e se li mettiamo a confronto con la concorrenza si trova spesso a fornire componenti meno performanti (sulla carta quanto meno). Questo è un aspetto che io reputo negativo, soprattutto se poi al livello di marketing spacci il tuo prodotto come rivoluzionario o iper-innovativo. Apple però tenta di lavorare più sull'ottimizzazione software di questi componenti rendendo quindi i propri device decisamente performanti e fluidi in tutte (o quasi) le loro funzionalità.
Diversamente lato Android è difficile fare una disamina sulla parte hardware in quanto si tratta di un sistema operativo (anzi è uno stack tecnologico ) distribuito su molti dispositivi diversi creati da case diverse, Android è un sistema estremamente scalabile al punto da poterlo avere sia su dispositivi top di gamma che su dispositivi economici. Ovviamente non posso prendere ora in analisi tutti i possibili dispositivi Android ma ne prenderò in esame alcuni di fascia alta.
Attualmente i migliori dispositivi sono Htc One X, Samsung GS3, Asus Padfone e la serie Nexus di Google. Possiedono processori di ultima generazione (dual e addirittura quadcore) e GPU estremamente performanti (soprattutto quelli che montano gli Nvidia Tegra), molti altri componenti (touch screen, gps e memorie) sono analoghe a quelle montate sugli iPhone.
Diciamo che se rimaniamo su questi top di gamma, personalmente li preferisco all'iPhone / iPad soprattutto guardando il rapporto prezzo/prestazioni, in generale i prodotti Apple costano di più e se fino a un paio di anni fa questo di più era pienamente giustificato (iPhone 3GS e 4 erano dei terminali insuperabili) adesso la situazione è radicalmente cambiata.. iPhone non si è rinnovato (e nemmeno il futuro iPhone 5 sembra portare grosse novità) mentre la "concorrenza" basata sul sistema del robottino offre continue innovazioni e una crescita dell'offerta quasi esponenziale.
Quello che mi piace ancora molto di iPhone / iPad è il loro design bello e pulito... ma è vero che all'orizzonte si stanno affacciando concorrenti non da meno.

Il sistema operativo... il cuore e la struttura e la UI
la cosa che più mi affascina e che di fatto rende questi terminali così funzionali è il sistema operativo, Apple e Google presentano due filosofie radicalmente diverse. Apple presente un sistema operativo basato su FreeBSD e con una struttura middle estremamente bloccata e non modificabile, sul quale si appoggia un ambiente grafico altrettanto statico ma ben presentato e funzionale.
La scelta di Apple è quindi sempre basata su un sistema unix-like dal quale però sono state tolte tutte quelle libertà che di per se un sistema simile fornirebbe, la parte middleware che ha il compito di interfacciare l'ambiente operativo con l'hardware è piuttosto bloccato e rigido ponendo grossi limiti all'implementazione di nuove funzionlità. Il più grande vantaggio di questa scelta è una maggiore robustezza dell'intero sistema...di fatto Apple decide esattamente cosa può fare o non può fare un software, e in generale al fine di rendere l'intera esperienza d'uso estremamente semplice  e "for dummies" ha bloccato tante funzionalità...l'accesso a determinate risorse hardware come il Bluetooth che su iPhone può essere usato solo per connettere delle cuffie bt o poco più..
Il problema più grave è che questa "occlusione" impedisce agli sviluppatori di dare libero sfogo alla propria creatività e spesso la sensazione che si respira è quella di avere tra le mani una Ferrari ma con i fermi messi al motore.
Questa sensazione però non la si percepisce solamente dal punto di vista di sviluppo ma anche come user finale, soprattutto se si è dei Power User, l'interfaccia utente infatti non può essere minimamente modificata e non intendo solo dal punto di vista grafico ma anche dal punto di vista comportamentale..insomma con iOS non è possibile avere un ambiente operativo personalizzato e calettato per le proprie esigenze ma piuttosto è il nostro approccio che deve andare incontro alla proposta fatta da Apple, siamo noi che ci dobbiamo adattare allo strumento e non viceversa.
Di fatto questo approccio è perfetto per i Casual user, coloro che non hanno particolari esigenze o che per la prima volta si sono affacciati al mondo smart in mobilità e che quindi richiedono essenzialmente immediatezza e semplicità d'uso..riuscendo ad adattarsi più facilmente al volere di Apple in quanto "vergini" nell'uso di questi tipi di strumento. iOS fornisce pochissime cose, ma le fornisce ben funzionanti e con una grafica comunicativa estremamente efficace.
Android è un'altro mondo da questo punto di vista, il sistema operativo viene innanzitutto fornito come un qualsiasi altro sistema operativo linux-like opensource, al punto che per i produttori di hardware questo rappresenta un ottimo investimento a basso costo, di fatto i costi che devono sostenere sono solo di natura umana (gli sviluppatori col known-how necessario per plasmare il proprio sistema Android) e non di royalty...
L'altro vantaggio è che, nonostante Google fornisca delle linee guida di sviluppo, rende liberi i vari produttori di modificare a piacimento qualsiasi aspetto del sistema, personalizzando quindi Android, pur mantenendosi compatibile alla struttura e facendo quindi parte di un unico sistema. La struttura middleware del sistema permette quindi di fare tutto ciò che si vuole (o quasi) e questo si riflette in una totale liberta implementativa da parte degli sviluppatori... questa libertà si riflette anche su l'utente finale che può trovare in Android uno strumento estremamente duttile, ogni utente si può personalizzare il proprio sistema, nella grafica e nel comportamento e di fatto può crearsi il proprio ambiente operativo calettato specificatamente per le proprie esigenze...in questo caso è il sistema operativo che si adatta alle nostre esigenze.. Questo approccio è secondo me vincente in quanto accontenta sia i casual user (che potranno trovare tutte le poprie feature come mamma Google le  ha pensate (eventualmente modificate dai produttori di hardware) sia dai power user che potranno di fatto fare tutto ciò che vogliono sul proprio terminale...magari anche cambiarne il sistema operativo con un qualsiasi alternativo offerto dalla rete (ovviamente basato sempre su  Android). Il power user può arrivare ad accedere a tutte le parti hardware del proprio dispositivo..può ad esempio arrivare ad overcloccare la CPU se lo volesse..o ad undercloccarla in modo tale da consumare meno energia e così via.
Per questa ragione reputo migliore il sistema Android, un sistema che permette veramente di fare tutto, che non tarpa le ali a nessuno ne all'utente ne agli sviluppatori...molti Apple fan potrebbero uscirsene con la frase "se fai il jailbreak puoi fare tutto con l'iPhone"...beh questo è vero solo in parte visto che anche il jailbreak deve spesso sottostare a determinati vincoli strutturali propri di iOS...inoltre dato che Apple di fatto ostacola il JB e questo comporta che a fronte di ogni aggiornamento ufficiale si creino sempre problemi a coloro che usano un terminale JB..infine, e questo lo dico per esperienze personali, il JB porta spesso a rallentamenti di sistema e rende il sistema stesso più affetto a malfunzionamenti a volte anche fastidiosi.
Android potrà avere anche un interfaccia utente, di base, più brutta ma regala all'utente un esperienza personalizzabile a 360 gradi... inoltre, e qui sfato anche il mito che vede Android fornire UI meno accattivanti di iOS, Android da la possibilità di installare sul proprio sistema qualsiasi tipo di launcher e di fatto di customizzarsi da zero l'intera interfaccia grafica, e sul market si possono trovare  launcher con interfacce grafiche veramente belle (e per gli amanti di iOS, ci sono launcher che ripropongono la stessa struttura del sistema Apple)
Infine un'altra cosa che rende Android un sistema operativo più completo è la sua capacità di integrare qualsiasi elemento software con l'ambiente operativo..
Android basa tutto il suo funzionamento sul concetto di Intent, in pratica quando l'utente fa una richiesta di un qualsiasi tipo (ad esempio vuole ascoltare musica, mandare un sms, fare una foto) viene generato un Intent sul proprio dispositivo, tutti i software installati che rispondono a quel specifico Intent possono raccogliere l'evento, attivarsi e gestirlo..questa cosa è estremamente potente e permette di fatto un integrazione totale..si può agilmente sostituire il software per fare le foto con un qualsiasi altro programma, così come per il player musicale...quando avverrà un evento che richiede l'uso di un player, il sistema ne potrà usare anche uno diverso a quello proposto di default da Android, questa importante caratteristica lo si ritrova anche per quanto riguarda l'integrazione di funzionalità tra software diversi... ad esempio se io ho installato Facebook e sono nel programma delle foto, quando clicco sul pulsante per condividere la foto, lui automaticamente mi darà tra le possibilità anche quella di Facebook e ne utilizzerà le funzionalità in caso di bisogno. Tutto questo sempre grazie al sistema basato su Intent (che se vogliamo è una rivisitazione del concetto di eventi e listner tipico di molti linguaggi quali il Java).

Per tale ragione reputo il sistema operativo di Android superiore ad iOS..Android rappresenta un sistema totalmente configurabile e interoperabile al contrario di iOS che invece obbliga utenti e sviluppatori a lavorare con un sistema chiuso, blindato e non modificabile.

Play Store vs App Store
E' inutile negare che il concetto moderno di App Store sia stato coniato da Apple..in realtà neppure Apple lo ha ideato da zero... il concetto di un market in grado di raccogliere e distribuire facilmente applicazioni nasce prima, da Nokia con il suo n-gage store.... originariamente creato per la distribuzione dei titoli n-gage, è stato poi generalizzato ed esteso ai normali software per Symbian... Apple però fa di più: crea un market che unisce app, giochi e altri media (musica e ringtone all'inizio e da un annetto e mezzo a questa parte anche libri). In questo caso Google è arrivata dopo, di fatto proponendo il suo market e seguendo la scia tracciata da Apple. Attualmente i due market sono piuttosto equivalenti, anche se è molto diversa la politica delle due case... Apple pone vincoli molto serrati sul proprio market e di fatto può decidere in qualsiasi momento se un determinato applicativo possa vivere o meno nel market stesso... sono tantissimi i software che vengono rifiutati da Apple (o peggio ancora rimossi dopo mesi) e non per motivi di sicurezza o violazione di normative vigenti ma solamente perché si mettono in concorrenza con le direttive di Apple stessa.. questo è secondo me una grossa pecca gestionale che di fatto disincentiva gli sviluppatori che hanno idee geniali a sviluppare per il market della mela...piuttosto si spostano su market alternativi (come quello gestito da Surik con il Jail Break per esempio). Google da questo punto di vista è più di maniche larghe, di fatto non impone grossi vincoli se non quelli inerenti a violazioni di normative o sulla concorrenza sleale nei confronti di altri sviluppatori del market. Google lascia libero l'utente ( anche gli sviluppatori) di utilizzare market alternativi, di fatto un Android user può installarsi applicativi, musiche, ringtone etc autonomamente senza passare dal market place di Google...Apple invece obbliga gli utenti ad usare iTunes e il suo AppStore e nient'altro.. Personalmente preferisco la libertà di Android, la libertà di scegliere dove reperire i miei media e le mie app... Dal punto di vista dell'offerta l'AppStore fa da padrona in termini di numero di App disponibili...anche se negli ultimi mesi questa differenza si sta assottigliando sempre più, di fatto il market di Android ha un numero sempre crescente di applicazioni e a volte si trovano app veramente interessanti che su AppStore di Apple non si trovano (perché spesso rifiutati dalla casa della mela...).
La sicurezza
La sicurezza è sicuramente maggiore su iOS, questo perché un sistema chiuso al mondo ha come vantaggio proprio una maggiore sicurezza, su Android invece questa maggiore libertà porta inevitabilmente anche ad una maggiore vulnerabilità..ma è così insicuro Android? no non proprio, basta dotarsi di un anti-malware accreditato per essere sicuri di non avere sul proprio terminale programmi indesiderati...inoltre basta stare un pò attenti nell'installazione dei software sul proprio dispositivo..insomma poche attenzioni per non avere problemi...che poi sono le solite attenzioni che ogni utente di pc dovrebbe seguire... Personalmente utilizzo Karspesky, pagato pochi euro e mi sento piuttosto sicuro, mi è capitato solo una volta di inbattermi in un malware prontamente rilevato ed eliminato dall'antivirus.
Il gaming
Il gaming...qui vede secondo me vincitrice assoluta Apple con il suo iOS, il fatto di dover gestire pochi dispositivi permette allo sviluppatore di videogame una piu facile stesura dei propri software ludici..questo si traduce in una maggiore compatibilità tra i vari dispositivi iOS. Al contrario su Android è più complicato (ma non impossibile!) rilasciare un videogame in grado di girare su tutti i dispositivi possibili e immaginabili. Attenzione però, questa situazione potrebbe cambiare a breve, Google sta infatti cambiando le cose: le ultime versioni delle librerie di sviluppo, l'introduzione di guideline precise, il supporto di Google stessa che ultimamente sta iniziando a testare i propri middleware sui dispositivi "non-Google" è di buon auspicio... Ma soprattutto la sempre più larga diffusione dei dispositivi Android! Android è sempre più diffuso in Europa e nel mondo e questo aumento incontrastato stimolerà inevitabilmente gli sviluppatori a creare videogiochi interamente crossplatform... Certo alcuni software non possono girare su tutti i dispositivi, ma solo su quelli più performanti (alcuni giochi su Android sono veramente spettacolari ma richiedono capacità di calcolo ed una GPU che non è sicuramente presente in dispositivi vecchi o di fascia medio bassa). Personalmente sono piuttosto soddisfatto, non ho quasi mai riscontrato problemi nell'utilizzo dei videogiochi...qualche problema in più da quando ho il Padfone..ma il Padfone è un dispositivo piuttosto particolare (fidatevi, ci sto sviluppando sopra e vi sono alcune accortezze da seguire su questo dispositivo) ma sul vecchissimo Nexus S tutti i giochi girano alla grande con prestazioni del tutto analoghe ai "vetusti" 3GS e 4... Ripeto al momento iPhone la spunta alla grande ma... Android alla lunga risulterà vincitrice proprio per la sua capacità di essere distribuito ovunque, ricordo a tutti che vi sono progetti che vedranno luce forse entro l'anno in corso di console da gioco a bassisimo costo (99 dollari) con Android a bordo.... Si vedrà comunque come si evolveranno le cose nei prossimi mesi.
Servizi
I servizi...sia Android che iOS sono legati a tutta una serie di servizi Cloud based di vario genere.... Qui in assoluto Google fa da padrona, Google quando ha proposto Android lo fa già pensandolo integrato alla sua piattaforma Cloud consolidata grazie a Gmail, Calendar e GMaps... tutti i servizi di Google trovano ampia compatibilità con Android, tutti i dipositivi col robottino verde sono in grado di gestire perfettamente e in maniera nativa i propri servizi Google. Anche iOS fornisce i propri servizi ma non siamo agli stessi livelli di Google...e questo per alcune semplici considerazioni: diffusione, i servizi Google sono diffusi ovunque nel mondo e sono totalmente crossplatform, chiunque possegga pc Windows, mac o linux sono in grado di accedere e gestire perfettamente tutti i servizi Google, inoltre questi servizi possono essere gestiti anche da altri dispositivi (Windows Phone e perfino iPhone..ma anche Black Berry e Symbian!). I servizi di Apple, per quanto dotati di stile grafico accattivante, si integrano solo con i sistemi Apple (Mac, iPhone, iPad e iPod) e basta... questo li rende inevitabilmente meno diffusi... Inoltre i servizi Apple sono numericamente inferiori rispetto alle proposte di Google, Google è riuscita a creare un vero e proprio network interconesso e sta lavorando sodo al rilascio di aggiornamenti e miglioramenti continui... quando un anno e mezzo fa Google tirò fuori G+ ero piuttosto scettico...ma negli ultimi mesi Google ha lavorato tantissimo su questo servizio da renderlo veramente ben fatto e totalmente integrato con il resto del suo ecosistema... Insomma da questo punto di vista preferisco Google ad Apple.
Architettura per lo sviluppo
E per gli sviluppatori? beh su Apple per poter sviluppare occorre avere per forza un Mac con Xcode installato..di per se Xcode costa poco (una decina di euro) ma è seccante dover essere costretti ad usare un Mac e quell'ambiente per lavorare su iOS..inoltre per poter installare sui dispositivi i propri software è necessario pagari una subscription di 70 euro l'anno.... e questo abbonamento è necessario rinnovarlo continuamente..pena? l'impossibilità di installare sui propri dispositivi i propri programmi e la rimozione dall'AppStore dei propri software (ma che meraviglia!!!!). Ovviamente, in linea con la libertà di Google, con Android si può sviluppare su qualsiasi sistema e ambiente. per quanto Google consigli l'utilizzo di Eclipse (noto ambiente di sviluppo Java, il migliore secondo me) ognuno può scegliere come preferisce...e ognuno è libero di sviluppare e rilasciare software senza necessariamente crearsi un account sul market di google.. ma in caso contrario i costi sono decisamente bassi (una sottoscrizione di 20 euro una-tantum). Anche la tecnologia di Android è a mio avviso preferibile a quella di Apple... su iOS si sviluppa in ObjectiveC, un linguaggio coniato da Apple e può essere usato solo ed esclusivamente per sviluppare su Mac o iOS e nient'altro...insomma un linguaggio "chiuso" per sistemi "chiusi"... Diversamente da Android che si affida invece al Java, un sistema estremamente cross platform che permette facilmente di creare anche sistemi integrati. Personalmente ho creato una beta di un software GIS per Android, l'uso della tecnologia Java è stato per me fondamentale perché mi ha permesso di integrarlo facilmente con una serie di service J2EE che ho sviluppato per la gestione dei dati geografici del mio sistema. Anche l'implementazione di vecchie librerie Java (che avevo creato per altri progetti) sul mio programma per Android è stato pressoché immediato.... insomma da sviluppatore Java (anche se le mie formamentas derivano dal C/C++) non posso che elogiare l'architettura e la scelta tecnologica di Android (se volete vedere la mia beta collegatevi con il vostro browser Android su
Posta un commento