Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. iOS

iOS da zero con Swift: Comprendere l'Ecosistema di iOS

by
Difficulty:BeginnerLength:MediumLanguages:
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Setting Up the Development Environment

Italian (Italiano) translation by Luca Menozzi (you can also view the original English article)

Prima di iniziare a sviluppare applicazioni per iOS, è cruciale che ne comprenda prima l'ecosistema. Questo articolo esamina i fondamenti dei sistemi operativi Apple, i diversi device disponibili e l'App Store.

1. Perchè iOS?

Prima dell'arrivo di Android e di Windows Phone, Apple era il player dominante nel settore della telefonia mobile, avversario solo di Nokia e BlackBerry. Con l'emergere di nuove piattaforme mobili, è diventato sempre più importante chiedersi quale piattaforma si adattasse meglio alle proprie esigenze.

Nonostante la supremazia di Apple cominciasse nel 2007, Android ha sorpassato iOS in quote di mercato. Cosa significa questo per iOS? E' ancora una piattaforma per cui vale la pena sviluppare? Senza ombra di dubbio. Ci sono tante ottime ragioni per iniziare a sviluppare per iOS da subito.

  • Forti Incentivi Economici: le persone spendono più soldi sull'App Store della Apple piuttosto che su qualsiasi altra piattaforma mobile. Nonostante il fatto che Android sia diventato il player dominante nel settore mobile, la piattaforma iOS rimane più redditizia per gli sviluppatori.
  • Piattaforma Chiusa: negli anni l'App Store di Apple ha ricevuto molte critiche da parte di sviluppatori e utenti, soprattutto per il processo di revisione. E' chiaro, tuttavia, che la politica di Apple ha portato ad un App Store nel quale la qualità delle sue applicazioni è più alta di quella in qualsiasi altro store mobile. Gli utenti tendono anche a sentirsi più sicuri quando acquistano applicazioni dall'App Store rispetto a quando lo fanno su altre -- più aperte -- piattaforme, come Google Play.
  • Communità e supporto: la comunità degli sviluppatori iOS è una grande comunità di cui far parte. Esiste una pressochè illimitata disponibilità di articoli, tutorial e documentazione per aiutarti quando ti blocchi con un problema. E ancora, la documentazione di Apple relativa all'SDK di iOS è superlativa, per non menzionare le centinaia di video del WWDC (World Wide Developer Conference) disponibili sul sito per sviluppatori Apple.

La gente spesso dimentica, o non sa, che Android e iOS sono piattaforme molto differenti. Anche se entrambe sono state progettate per il settore mobile, l'ecosistema iOS differisce in molti aspetti da quello Android.

Dal punto di vista dello sviluppo, molte persone sembrano trovare più semplice sviluppare per iOS rispetto che per Android. Non fraintendermi, non mi sto riferendo né allo stack tecnologico che ciascuna piattaforma utilizza, né agli strumenti disponibili per ognuna. Due ragioni stanno alla base dell'abisso che separa iOS e Android: la frammentazione e il tasso di adozione.

La Frammentazione

Uno dei punti di forza di Android è al tempo stesso uno dei suoi principali punti deboli. Come probabilmente saprai, il sistema operativo Android è rilasciato come progetto open source e può essere utilizzato e modificato da chiunque. Numerosi produttori hardware hanno colto il potenziale di Android, soprattuto dal momento che è supportato da Google.

Come risultato, Android ha guadagnato rapidamente in popolarità. Il problema sta nel fatto che ogni produttore hardware modifica Android per soddisfare le proprie necessità e un'ampia varietà di form factor sono nati dall'introduzione di Android.

Sebbene la quota di mercato dell'Android market lo faccia sembrare come un grande "barattolo di miele", è complicato creare software che giri su ogni versione di Android attualmente disponibile. A causa delle centinaia di differenti dispositivi, testare il software sull'hardware non è cosa semplice. Come puoi immaginare, il supporto e la compatibilità diventano una vera sfida.

Il Tasso di Adozione

Di norma, in molti paesi, il mercato wireless è sotto lo stretto controllo dei carrier cellulari. Sin dagli inizi, Apple sapeva che avrebbe avuto bisogno di avere il controllo dei suoi dispositivi mobili per offrire la miglior user experience possibile. Il risultato è che gli utenti possono aggiornare i loro dispositivi iOS all'ultima versione del sistema operativo lo stesso giorno che viene rilasciata. Questo è un grande vantaggio della piattaforma che porta ad un notevole risultato. In meno di una settimana dal rilascio di iOS 9, più del 50% di dispositivi è stato aggiornato all'ultima versione.

Facciamo un confronto con Android. Nel settembre del 2015, solo il 20% degli utenti Android aveva aggiornato il proprio dispositivo a Lollipop (rilasciato nel 2014) e meno del 40% lo aveva aggiornato a KitKat (rilasciato nell'ottobre del 2013).

La ragione per cui cito questi numeri non è per sminuire la piattaforma Android o qualsiasi altra piattaforma mobile. Quello che voglio enfatizzare è l'impatto che il tasso di adozione ha sull'ecosistema delle applicazioni per queste piattaforme.

Più gli utenti sono lenti ad adottare una nuova release di un sistema operativo, più gli sviluppatori sono costretti ad allungare il supporto di vecchie versioni dello stesso. Diventa inoltre meno interessante adottare nuove tecnologie che possono essere usate solo su una piccola parte dei dispositivi Android.

2. Perché Nativo?

Se sei un lettore abituale di Envato Tuts+, puoi aver sentito parlare dei framework cross-platform come XamarinReact NativePhoneGapApache Cordova, e Titanium Mobile. Ti sarai chiesto perché prendersi la briga di imparare Swift o Objective-C quando si possono applicazioni iOS usando C# o JavaScript. Permettimi di fornirti un breve riassunto delle opzioni a tua disposizione se decidi di sviluppare applicazioni per iOS.

Applicazioni Web

La tua prima opzione è l'applicazione web e, in effetti, questa era l'unica opzione possibile prima dell'introduzione dell'SDK nativo nel 2008. Il lato positivo delle applicazioni web è che non devono affrontare il processo di revisione di Apple o l'App Store. Perché? "Applicazione web" è un nome stravagante per un sito web che agisce e si comporta come una applicazione. Tutto ciò di cui hai bisogno è un browser, come Safari Mobile o Google Chrome.

Le applicazioni web hanno indubbi vantaggi. Sono cross-platform di default perché le applicazioni girano in un browser. Un altro vantaggio è la curva di apprendimento per crearle: se hai confidenza con lo sviluppo web, sarai pronto e operativo in pochissimo tempo.

Ovviamente non dovresti trascurare anche gli aspetti negativi. Un'applicazione web ha accesso limitato alle potenzialità del dispositivo su cui gira. Sono abbastanza potenti grazie a HTML5 e JavaScript. Tuttavia, ci sono chiare restrizioni in termini di ciò che possono fare. Non puoi sfruttare le fantastiche funzionalità di iPad o iPhone. Necessitano inoltre, anche se esistono eccezioni a questa regola,  di una connessione alla rete per funzionare.

Forse il più grande lato negativo di realizzare applicazioni web è che, in generale, risultano significativamente più lente rispetto alle applicazioni native. La loro reattività migliora di anno in anno, ma il rallentamento derivante dai browser non dovrebbe essere sottovalutato o ignorato. L'esperienza è differente: non c'è dubbio.

Framework Cross-Platform per Mobile

Ciò che promette un framework cross-platform è che gli sviluppatori possano scrivere un'applicazione funzionante su molteplici dispositivi mobili partendo da un unico codice sorgente. Questo si realizza attraverso una serie di approcci.

Alcuni framework, come PhoneGap e Apache Cordova, usano l'SDK nativo della piattaforma per creare delle viste web nelle quali l'applicazione è incorporata. Il che, come per le applicazioni web, impone limitazioni in termini di funzionalità. Il principale vantaggio è che l'applicazione sembra nativa in termini di esperienza utente e che può essere distribuita attraverso lo store della piattaforma.

Anche se questi framework possono sembrare il santo Graal per lo sviluppo mobile, hanno dei lati negativi che devono essere presi in considerazione. Il più importante è che la tua applicazione dipende da un framework di terze parti. In altre parole, il codice del tuo progetto dipende dalla società che fornisce la soluzione cross-platform. Se la società esce dal mercato o diventa lenta a implementare i cambiamenti introdotti nell'SDK nativo, potresti trovarti nella situazione di dover rifare tutto da zero. Questo è un rischio che devi calcolare.

iOS SDK

Decidere di sviluppare con l'SDK nativo è la miglior scelta se vuoi creare applicazioni che si distinguano e che sfruttino la potenzialità del dispositivo. Optare per un'applicazione nativa significa anche lavorare in un ambiente di sviluppo solido e poter fare affidamento su strumenti di sviluppo, utility e supporto Apple.

3. L'Ecosistema iOS

Uno dei più piacevoli aspetti dell'ecosistema iOS è la sua semplicità. L'elenco di dispositivi capaci di far girare questo sistema operativo è sorprendentemente corto, se paragonato a quello relativo a Android o Windows Phone. Questo significa che il testing delle applicazioni è molto meno complicato rispetto ad altre piattaforme.

Come ho anticipato poc'anzi, Android ha sorpassato iOS in termini di quote di mercato, ma questa è solo una parte della storia. La piattaforma iOS rappresenta più di un terzo dell'uso del web su dispositivi mobili. Cosa ci dice questo sul settore mobile? Ci dice che iOS rimane un player dominante in questo settore, almeno online, e questo nonostante la più grande fetta di mercato di Android.

Dispositivi

Ci sono essenzialmente due famiglie di dispositivi nell'ecosistema iOS:

  • la famiglia di dispositivi iPad
  • la famiglia di dispositivi iPhone, che include anche l'iPod Touch

Per un'anteprima più dettagliata, ti consiglio di dare un'occhiata a questo elenco. Le principali differenze tra i dispositivi della famiglia iPhone stanno nelle funzionalità hardware e nella dimensione dello schermo. Per iPhone e iPod Touch ci sono quattro possibili dimensioni :

  • 3,5 pollici
  • 4 pollici
  • 4,7 pollici
  • 5,5 pollici

Per la famiglia iPad ci sono tre possibili dimensioni:

  • 7,9 pollici
  • 9,7 pollici
  • 12,9 pollici

La differenza di queste dimensioni impatta sullo sviluppo, ma non richiede ulteriori risorse per la maggior parte delle applicazioni. Parlerò maggiormente di questo argomento durante gli articoli della serie.

Nel 2012, Apple introdusse l'iPad Mini e nel 2015 la famiglia iPad si è allargata con l'iPad Pro. Anche se l'introduzione dell'iPad Mini e dell'iPad Pro ha causato poco interesse nell'industria tecnologica, ha avuto un impatto limitato sugli sviluppatori iOS.

Lo schermo dell'iPad Mini, ad esempio, è significativamente più piccolo rispetto a quello da 9,7 pollici dell'iPad Air, ma la risoluzione è identica a quella dei dispositivi iPad da 9,7 pollici. A causa dello schermo più piccolo dell'Ipad Mini, la dimensione media degli elementi (touch targets) è minore e potrebbe rappresentare un problema per alcune applicazioni.

iOS

Tradizionalmente Apple rilascia una nuova versione del suo sistema operativo mobile ogni anno. Ad oggi, Apple ha rilasciato nove maggiori versioni del suo sistema operativo mobile e la più recente è iOS 9.

Il supporto per i dispositivi è un aspetto che le persone spesso trascurano. Prendiamo l'iPhone 4S, ad esempio. L'iPhone 4S è stato messo in commercio nel 2011 ed è ancora in grado di far girare iOS 9. Non esiste altra piattaforma mobile che si avvicini neanche lontanamente in termini di supporto al dispositivo.

App Store

Una delle ragioni chiave per sviluppare per la piattaforma iOS è l'incredibile successo dell'App Store. Vendere software per iOS e OS X non è mai stato così facile grazie ad esso. Con più di un milione di applicazioni sta diventando un po' affollato, ma tieni in mente che anche il numero di dispositivi iOS continua a crescere esponenzialmente.

La scena mobile è ai suoi inizi e c'è ancora molto potenziale che aspetta solo di essere scoperto. Come per il web negli ultimi anni '90, la scena mobile continuerà a crescere ad un ritmo veloce e la quantità di denaro che si può guadagnare aumenta con ogni nuovo smartphone, smartwatch e tablet venduto.

4. watchOS e tvOS

Nel 2015 Apple ha annunciato due nuovi sistemi operativi, watchOS per l'Apple Watch e tvOS per la Apple TV. Apple ha aperto entrambe le piattaforme a sviluppatori di terze parti, portando le loro applicazioni sul tuo polso e in salotto.

Gli strumenti di sviluppo per watchOS e tvOS sono gli stessi usati per sviluppare per iOS. Altra ragione per scegliere l'ecosistema iOS. I sistemi operativi Apple, OS X, iOS, watchOS e tvOS sono strettamente integrati e le possibilità sono virtualmente infinite.

Conclusioni

Ora hai una chiara panoramica dell'ecosistema iOS e spero di essere riuscito a convincerti a iniziare a sviluppare per iOS. Nel prossimo articolo, ti mostrerò come iniziare con l'SDK nativo settando l'ambiente di sviluppo. Rimarrai sorpreso da quanto è semplice.

Per qualsiasi domanda o commento, puoi lasciarli qui di seguito o sul mio account Twitter.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.