Agile e solido iOS è l’unico degno concorrente di Android nel vasto panorama del mondo della programmazione. L’integrità e la solidità dell’azienda di Cupertino, però, non si traducono sempre in vantaggi per il programmatore, che spesso si trova intrappolato da quelle stesse qualità del sistema altrimenti tanto lodate.
Dopo avere scoperto quali fossero i difetti del sistema Android, oggi è il turno d’essere un po’ critici anche nei confronti di iOS. Vediamo di seguito, quali sono i punti dolenti di questo sistema:

IOS computer system

iOS richiede tanti, troppi certificati.

In teoria, un gran numero di certificati dovrebbe essere un bel vantaggio, una garanzia di sicurezza non indifferente della qualità del prodotto. Nel caso di iOS, però, queste certificazioni non sono semplicemente tante. Sono troppe e non sempre facili da ottenere. iOS development, iOS distribution, Provisioning profiles e chi più ne ha, più ne metta, ottenerli tutti richiede uno sforzo esagerato. Android richiede solo due key store. Uno per il development e uno per i release. Vince a mani basse il premio praticità in questa gara.

È un sistema rigido.

Anche questa è una caratteristica che nasce dalle migliori intenzioni, ma che alla fine diventa più un problema che un vantaggio. È fantastico avere un sistema controllato e solido come iOS, almeno fino a che non diventa frustrante mentre si cerca di stare dietro a tutti i protocolli richiesti dal sistema. In particolare per chi si è appena avvicinato al complesso mondo della programmazione, questo è un fattore che può tagliare le gambe anche alla persona più motivata. La protezione della privacy è un vantaggio indiscusso lato gestione dati. Non ne permette però il totale accesso alle funzionalità perché le app possono comunicare in modo assai rigido e ristretto tra loro).

Pubblicare le app è complesso.

Un’app, per essere pubblicata nello store, deve rispettare numerosi standard. Dev’essere unica, utile, e attenersi allo stile Apple, ovvero creare quel surplus in termini di design e intrattenimento che caratterizza il brand. Tutta un’altra cosa rispetto alla giungla di Android, ma lasciata troppo all’arbitrarietà dei revisori dello store. Se lo sviluppatore conosce il verdetto solo dopo avere speso tempo e soldi nello sviluppo dell’app, è chiaro che in pochi avranno la motivazione adatta per produrne un numero consistente, essendoci un rischio concreto di vedere il proprio investimento deprezzato. Se fosse presente un errore, si perde tempo perché bisogna aspettare l’intero ciclo di controllo prima che ti venga fatto notare. Dal lato rilasci, non c’è un sistema automatizzato ma bisogna sempre aspettare la fine del ciclo, per scoprire le eventuali criticità delle app.

IOS logo lego

XCode è un sistema limitato.

Non ci sono ambienti alternativi validi, tutto passa per XCode. Questo causa dei rallentamenti nel workflow degli sviluppatori. Il problema è che il tempo utilizzato per varie azioni è molto più lungo rispetto a altri sistemi operativi, le funzionalità limitate di debug, che non supportano sessioni di testing importanti, rispetto a ciò che dovrebbero. Il sistema operativo in sé è molto rigido e pone limitazioni (come ad esempio  per precisa scelta politica aziendale, cosa che rallenta ulteriormente ogni tipo di processo.

Iniziare a sviluppare è molto costoso.

Non solo si è costretti a sviluppare solo su Mac, il che offre poche possibilità di scelta riguardo alla spesa iniziale per un dispositivo, dato il prezzo medio di un Mac. In più, l’iscrizione all’App Dev Program di Apple costa la bellezza di 100€ all’anno, una spesa eccessiva specialmente se confrontata alla soluzione una tantum di 20€ dell’equivalente Android.

XCode è un sistema di sviluppo lento.

XCode non è né snello né veloce. Questo causa tempi di sviluppo e tempi morti molto più lunghi rispetto a quanto riscontrato negli altri sistemi operativi. Gli strumenti di debug non aiutano lo sviluppatore a testare l’applicazione e risolvere i bug. Inoltre Xcode tende ad occupare molto spazio in memoria fissa e questo può creare problemi se non si dispone di pc fissi/ portatili con hard disk o SSD capienti.

Swift UI è ancora acerba.

Non è possibile utilizzarla per la creazione di nuove app, per via dei suoi problemi di compatibilità con le tecnologie più attuali. Ogni volta è necessario aspettare che Apple rilasci i nuovi kit (il kit PDF non è compatibile con Swift UI). Anche la navigazione tra le app risulta problematica per via della presenza di svariati bugs (specialmente nella navigazione, quando si accede ad una nuova schermata non mostra correttamente tutte le features) che Apple sembra ignorare.

Si ringrazia il team di sviluppo iOS di Rawfish: Alessandro Maroso, Vlady Turato, Davide Pagin.

 

Foto da Mohamed Mrishi e Marina Vitale da Unsplash.