Come diventare uno sviluppatore iOS - La guida definitiva (2024)

sviluppatore ios

In questo articolo, esamineremo ciò che crediamo sia necessario per diventare uno sviluppatore iOS. 

Questa guida si rivolge direttamente a due gruppi di persone:

  • Principianti assoluti di Swift (Swift è il linguaggio utilizzato per codificare le app iOS): persone che non hanno mai creato nulla per iOS prima.
  • E persone che hanno già provato a imparare Swift ma non hanno mai raggiunto l'obiettivo di ottenere un lavoro a tempo pieno.

Regardless del tuo livello attuale, l'obiettivo qui è lo stesso. Per metterti in condizione di candidarti per un ruolo di sviluppatore iOS junior presso un'azienda.

Esamineremo le competenze che dovresti apprendere, i corsi che puoi seguire, come entrare in contatto con la comunità, gli errori comuni commessi dalle persone e altro ancora. 

Meglio ancora, tutto ciò di cui parleremo sarà completamente gratuito.

Seriamente, troppe persone credono che spendere un sacco di soldi li metterà sulla strada giusta per il lavoro dei loro sogni, quando i fattori più importanti sono la determinazione e la forza di volontà.

Questo articolo è diviso in sette sezioni:

  1. Competenze fondamentali che devi possedere per ottenere un lavoro.
  2. Abilità che è bello avere per distinguerti dalla massa
  3. Errori comuni che le persone commettono quando tentano di imparare.
  4. Le numerose risorse gratuite disponibili per aiutarti a imparare Swift.
  5. Come entrare in contatto con la comunità di sviluppo iOS.
  6. Una stima di quanto tempo ci vorrà per raggiungere il tuo obiettivo.
  7. Preparati a candidarti per il tuo primo lavoro.

Leggi l'intero post o passa direttamente alle informazioni che stai cercando, dipende interamente da te!

Le competenze fondamentali necessarie per diventare uno sviluppatore iOS

Cos'è uno sviluppatore iOS?

Uno sviluppatore iOS lavora su app per Apple gamma di telefoni. iOS è specifico per iPhone e lavorerai principalmente con giochi e app per quel telefono.

Potresti essere coinvolto in:

  • Progettare e pianificare app
  • Scrittura di codice e sviluppo di app
  • Esecuzione della manutenzione su app o server di app
  • Individuare i problemi e risolverli
  • Sviluppo di aggiornamenti e miglioramenti
  • Lavorare con i team durante l'intero ciclo di vita dell'app

Anche se ti stai specializzando in un prodotto particolare, la giornata media implica molte cose.

Suddividiamo i cinque elementi in blocchi più piccoli.

Competenze fondamentali richieste per diventare uno sviluppatore iOS

Qual è il minimo indispensabile di competenze richieste per ottenere un lavoro nello sviluppo di iOS? 

Crediamo che ci siano cinque competenze essenziali di cui avrai bisogno come sviluppatore iOS:

  1. Programmazione rapida
  2. SwiftUI 
  3. Networking
  4. Lavorare con i dati
  5. Gestione della versione

Suddividiamo i cinque elementi in blocchi più piccoli.

1. Imparare Swift

Swift è il primo della lista. Questo è Appleil linguaggio di programmazione principale di. Non ha il concetto di visualizzare informazioni sullo schermo di un iPhone o scaricare dati da Internet. 

È semplicemente un linguaggio come JavaScript o Python. È solo puro codice che usi per creare variabili, scrivere funzioni e così via.

Swift ha solo pochi anni e utilizza quasi tutte le funzionalità all'avanguardia disponibili. 

Ciò significa che puoi evitare tutti i vecchi comportamenti comuni nei linguaggi più vecchi come C++ e Java.

Significa anche che ha una serie di funzionalità avanzate di cui puoi trarre vantaggio.

2. SwiftUI

La seconda abilità fondamentale richiesta è SwiftUI. È un Apple framework che ci consente di utilizzare Swift per creare app per iOS, macOS, tvOS e persino watchOS. 

Laddove Swift è il linguaggio di programmazione, SwiftUI fornisce gli strumenti per sviluppatori per creare app.

Per essere chiari, SwiftUI non sostituisce Swift: è un framework costruito su Swift che ci consente di creare app.

Per avere successo dovrai conoscere sia Swift che SwiftUI.

SwiftUI è un framework abbastanza giovane, è apparso per la prima volta nel 2014 ed è stato sviluppato per sostituire l'arcaico Objective C.

Nonostante la sua giovane età, la comunità iOS l'ha accolto con tutto il cuore perché è così facile da usare.

Apple ha anche un framework precedente per la creazione di app iOS chiamato UIKit. Se chiedi a un gruppo di persone se dovresti prima imparare SwiftUI o UIKit, otterrai una varietà di risposte. 

Pensiamo che dovresti imparare SwiftUI ed ecco il motivo per cui dovresti dare la priorità a SwiftUI come abilità di base.

SwiftUI è significativamente più semplice di UIKit e richiede forse un quarto del codice per ottenere gli stessi risultati di UIKit e ci sono meno cose da imparare lungo il percorso. 

Ciò significa che guadagni molto slancio perché puoi costruire le cose più velocemente, vedere i risultati più rapidamente e ripetere tali risultati con maggiore agilità.

Creato per Swift

Creato per Swift

SwiftUI è stato creato per Swift, utilizzando le funzionalità del linguaggio per aiutare a evitare problemi e ottenere le massime prestazioni. 

Ad esempio, se modifichi alcuni dati su una schermata di un'app, SwiftUI garantirà automaticamente che i nuovi dati vengano aggiornati in qualsiasi altro punto dell'app che li utilizza.

Non è necessario scrivere codice per mantenere tutto sincronizzato, il che in genere è piuttosto complesso. 

UIKit è stato scritto per Appleil linguaggio più vecchio, Objective-C. Di conseguenza, ha tutti i tipi di peculiarità derivanti dalla sua età.

SwiftUI è compatibile con tutti Apple's, quindi puoi utilizzare ciò che hai imparato su iOS per creare un'app macOS o watchOS con codice quasi identico. 

Naturalmente, funzionalità come la Digital Crown sono esclusive di un singolo dispositivo, il Apple Guarda, ma la stragrande maggioranza di ciò che impari funzionerà su qualsiasi dispositivo.

Ancora più importante, SwiftUI è la direzione in cui stanno andando le cose. 

Se stessi facendo domanda per un lavoro qualche anno fa, probabilmente avresti bisogno di conoscere UIKit. Il fatto che tu stia leggendo questo significa che sei molto più avanti nel processo. 

Mentre UIKit era più popolare, SwiftUI è ora il framework dell'interfaccia utente dominante.

Le più grandi aziende del mondo, tra cui Apple stessi stanno ora andando avanti con SwiftUI.

Quando Apple widget lanciati di recente in iOS 14, hanno reso obbligatorio l'utilizzo di SwiftUI.

Reti e manipolazione dei dati

La terza e la quarta abilità che abbiamo menzionato erano il networking e la manipolazione dei dati. Rispetto a Swift e SwiftUI, questi sono abbastanza semplici, o almeno semplici al livello richiesto per ottenere un lavoro di sviluppatore iOS junior.

La rete è la pratica di recuperare dati da Internet o inviare dati da un dispositivo locale a un server remoto.

Su un'app mobile, questa è un'abilità fondamentale.

Esistono numerosi metodi per ottenere ciò, ma la cosa più importante da capire è come recuperare JSON da un server.

È qui che entra in gioco l’altra abilità essenziale, ovvero lavorare con i dati. 

Anche in questo caso, esistono numerosi modi per caricare e salvare i dati. Il minimo assoluto che devi essere in grado di fare è convertire i dati che hai ricevuto da un server in informazioni che la tua app può visualizzare.

Quindi, la terza e la quarta competenza fondamentale sono indissolubilmente legate.

Recupera alcuni dati da un server, quindi convertili in informazioni che possono essere visualizzate nella tua app.

Alcuni sviluppatori scherzano dicendo che scrivere questo tipo di codice è metà del lavoro di uno sviluppatore iOS, ed è certamente vero che ci affidiamo molto.

Version control

L'abilità finale non è affatto programmare, è version control, come Git. Ancora una volta, non hai bisogno di molto qui, ma è importante che tu sia in grado di pubblicare il tuo codice in un luogo pubblico, come GitHub, in modo che i reclutatori possano vedere il tuo lavoro.

Poche persone al mondo capiscono veramente come funziona Git, ma va bene così: devi solo conoscere abbastanza nozioni di base per archiviare i tuoi dati in modo sicuro e collaborare con gli altri.

Quindi, quando quei cinque vengono sommati, ce ne sono due enormi – Swift e SwiftUI – oltre a tre minori ma importanti. 

Se riesci a concentrarti su queste cinque cose senza distrarti, sarai sulla buona strada per il tuo primo lavoro da sviluppatore iOS.

Questo è tutto: queste sono le cinque competenze essenziali che credo ti servano per essere uno sviluppatore iOS!

Ci sono migliaia di persone che hanno solo queste abilità e possono creare e distribuire fantastiche app sull'App Store.

Cosa viene dopo i fondamentali

Cosa viene dopo i fondamentali?

Una volta acquisite le cinque competenze principali, sarai in grado di pubblicare le tue app e lavorare come sviluppatore indipendente. Potresti anche essere in grado di candidarti per posizioni di sviluppo iOS junior e lavorare per un'azienda, se è quello che vuoi fare. 

Non sono richieste altre qualifiche speciali: basta inchiodare quelle abilità di base e starai bene.

Tuttavia, se hai acquisito padronanza di queste abilità e desideri avanzare, ci sono altre cinque abilità che ti consigliamo di apprendere.

Diventerai ancora più occupabile e la gamma di app che sarai in grado di creare si espanderà ulteriormente.

Le abilità sono le seguenti:

  • UIKit 
  • Dati principali 
  • Convalida
  • Testing
  • Architettura del software
  • multithreading

Come prima, vorremmo esaminare ciascuno di questi in modo più dettagliato in modo da capire perché pensiamo che siano importanti e perché li consideriamo abilità di estensione piuttosto che abilità di base.

UIKit

Primo, c'è UIKit. Questo è Appleil vecchio framework dell'interfaccia utente di, utilizzato per lo sviluppo di app dal 2008, che è vecchio in termini di software.

Ma ciò non significa che UIKit sia pessimo. Infatti, man mano che ti abituerai a come funziona, rimarrai sorpreso da quanto possa essere elegante.

Ci sono numerosi motivi per cui vale la pena imparare UIKit, tra cui:

Centinaia di migliaia di app sono già state scritte in UIKit. Se entri in un'azienda che dispone di un'app ampia e consolidata, quasi sicuramente ti verrà richiesto di scrivere il codice UIKit per mantenerla.

UIKit è molto più potente di SwiftUI: ci sono molte cose che puoi fare in UIKit che attualmente non sono possibili in SwiftUI.

Utilizzando la tecnologia Auto Layout, puoi creare layout estremamente precisi.

Se riscontri problemi con il tuo codice, UIKit ha più soluzioni di SwiftUI semplicemente perché è in circolazione da molto più tempo.

Tutto ciò fa sembrare UIKit fantastico, quindi perché l'ho reso un'abilità di estensione piuttosto che un'abilità di base? 

Perché anche UIKit ha problemi:

Quasi tutto è più difficile da fare in UIKit che in SwiftUI, con alcune attività che richiedono cento volte, se non di più, codice. 

SwiftUI è stato progettato specificamente per lo sviluppo iOS moderno, quindi fa molto del lavoro pesante per te.

Poiché UIKit non è stato scritto in Swift, ha molte funzionalità che SwiftUI non ha: molti optional implicitamente scartati, contrassegnando il codice con uno speciale attributo @objc per renderlo disponibile al ventre Objective-C di UIKit e la necessità di utilizzare protocolli e delegati per visualizzare dati semplici.

Niente nel layout automatico è automatico. In effetti, se provi a creare un layout complesso, potresti avere incubi sul layout automatico.

È estremamente intelligente, ma in alcuni punti è anche estremamente difficile.

Questo è il motivo per cui consideriamo UIKit una competenza di estensione. L’apprendimento richiede molto più tempo e impegno rispetto a SwiftUI, il che significa che richiede molta più determinazione.

Devi davvero volerlo imparare, altrimenti ti sentirai confuso, annoiato, arrabbiato o potenzialmente tutti e tre!

Certo, SwiftUI non ha tutte le funzionalità di UIKit, ma ti consente di fare rapidi progressi e acquisire slancio prima di passare a UIKit.

 

Gestione dei dati principali

Gestione dei dati principali

Dati principali, Apple's framework per lavorare con i dati delle applicazioni, è la seconda abilità di estensione che ho menzionato. 

Core Data ti consente di manipolare i dati una volta ottenuti, ad esempio cercando valori specifici, ordinando i risultati e altro ancora, il tutto in modo molto efficiente. 

Può anche connettersi facilmente a iCloud, garantendo che i dati dell'utente siano sincronizzati su tutti i suoi dispositivi.

Core Data presenta una serie di inconvenienti. La cosa più grave è che non è sempre piacevole lavorare con loro.

Core Data è vecchio quasi quanto UIKit e, sebbene abbia funzionato bene in Objective-C, non sembra così naturale in Swift. 

Si integra bene con SwiftUI, il che lo fa sentire less strano, ma è ancora un argomento sorprendentemente complesso.

Come UIKit, Core Data è estremamente popolare: centinaia di migliaia di app sono state create con esso ed è utilizzato in molte aziende grandi e piccole. 

Core Data, come UIKit, è estremamente potente e, sebbene tu possa ricrearne le parti più importanti nel tuo codice, perché dovresti?

Testare il tuo codice

La terza abilità nel mio elenco di estensioni è il test. Scrivere codice speciale per garantire che il codice dell'app principale funzioni come previsto. 

I test ci consentono di garantire che il nostro codice funzioni correttamente e, cosa più importante, che continui a funzionare correttamente anche dopo aver apportato modifiche significative.

I test sono fondamentali e ti aiuteranno a scrivere software di qualità superiore. Quindi, perché è considerata un’abilità aggiuntiva piuttosto che un’abilità fondamentale? 

Ci sono tre ragioni per questo:

La comunità iOS è pessima nei test, per qualunque motivo storico. Molte app di grandi dimensioni non prevedono alcun test e, tragicamente, un certo numero di sviluppatori iOS senior sono quasi orgogliosi di non scrivere mai test. 

Quando consideri tutte le cose straordinarie con cui puoi creare Applestrumenti e framework, scrivere test non sembra molto divertente in confronto. 

Quando fai domanda per un lavoro, conoscendo Swift e Applei principali framework saranno sempre più utili del sapere come scrivere i test. 

Le aziende preferirebbero che tu sappia come utilizzare SwiftUI, UIKit o uno degli altri grandi successi, perché il test è un argomento molto più piccolo.

Quindi, testare è importante, testare è importante e se vuoi essere un ottimo sviluppatore in generale devi imparare a scrivere ottimi test.

Ma solo dopo aver padroneggiato i fondamenti dello sviluppo di app, ovvero dopo aver ottenuto un certo successo, sentito l'entusiasmo di avere la tua app pubblicata sull'App Store e aver padroneggiato i test.

Architettura del software

Architettura del software

La quarta competenza di estensione di cui vorremmo discutere è l'architettura del software, che riguarda il modo in cui scriviamo il codice. 

Scriverai un codice terribile quando inizi per la prima volta. 

Va bene perché è così che impari. Non inizi bene: diventi bravo rimanendo cattivo per molto tempo e imparando modi migliori di fare le cose con l'esperienza e l'esposizione.

Il punto è che rimani fedele al tuo codice errato finché non capisci come farlo meglio. È qui che entra in gioco l'architettura software.

Esaminando tecniche collaudate per strutturare il codice per renderlo più facile da leggere, utilizzare, modificare e mantenere a lungo termine. 

Queste tecniche a volte si basano sul modo in cui funziona Swift: funzionalità del linguaggio che possono essere utilizzate per scrivere codice migliore. 

Tuttavia, esistono numerose altre tecniche che funzionano in qualsiasi linguaggio di programmazione e sono comunemente chiamate modelli di progettazione.

Un aspetto importante di questa abilità che dovresti iniziare a imparare è come suddividere il tuo codice. 

Ad esempio, se stai creando una singola schermata nella tua app, potrebbe includere un pulsante di accesso, una galleria di immagini e un elenco di amici. 

Tuttavia, dovresti idealmente separare ciascuna di queste parti (un componente del pulsante di accesso, un componente della galleria di immagini e un componente dell'elenco di amici) in modo da poter riutilizzare qualsiasi di questi componenti in altre parti della tua app.

L'architettura del software è molto più soggettiva rispetto alle altre abilità che abbiamo discusso finora. Per gli altri, come SwiftUI, puoi ragionare: "Beh, so come fare X, Y e Z, quindi sono sicuro di essere un buon sviluppatore SwiftUI".

L'architettura software è un argomento molto ampio e spesso non esiste un modo "giusto" ovvio per risolvere un problema.

Il miglior punto di riferimento è questo: guardi indietro al tuo codice di sei mesi fa, un anno fa e così via.

Scrivere un codice errato è accettabile se ti avvicina alla scrittura di un codice migliore. 

Sicuramente ti gratterai la testa in alcuni punti quando ripenserai al codice che hai scritto cinque anni fa perché ora ne saprai di più di allora.

E' così che dovrebbe essere.

multithreading

L'ultima abilità di estensione di cui parleremo è il multithreading. Questa è la pratica di far sì che il tuo codice faccia più di una cosa alla volta. 

Il multithreading può essere una vera seccatura perché è difficile da comprendere per il nostro cervello.

Quando il tuo codice fa una cosa alla volta, possiamo pensarci in modo lineare, ma quando due o tre cose accadono contemporaneamente, potenzialmente sovrapponendosi, può davvero confondere il tuo pensiero.

Quindi, sebbene il multithreading sia una grande abilità da possedere, dovresti essere cauto. Il tuo obiettivo dovrebbe essere quello di comprendere quanto basta dei concetti e del codice per farlo funzionare bene senza andare troppo lontano. 

Ad essere onesti, molti sviluppatori credono che il multithreading renderà istantaneamente il loro codice eseguito tre o quattro volte più velocemente. 

Sebbene ciò sia vero in alcuni casi, in molti altri il codice verrà eseguito più lentamente e dovrai gestire tutta la complessità aggiuntiva del codice.

“La mia raccomandazione specifica è di evitare il più possibile di scrivere codice asincrono/concorrente. Questo può sembrare strano nel 2018, ma il costo in termini di complessità e prestazioni è elevato.

Quindi, impara un po' come funziona il multithreading in Swift per dimostrare che comprendi i concetti e l'implementazione, ma non esagerare!"

Davide Smith - Apple Squadra SwiftUI

Errori comuni che fanno i nuovi sviluppatori iOS

Errori comuni che fanno i nuovi sviluppatori iOS

A questo punto, abbiamo elencato tutte le competenze di base e di estensione di cui avrai bisogno per lavorare come sviluppatore iOS a tempo pieno. 

Vogliamo anche discutere alcuni degli errori più comuni che le persone commettono durante l'apprendimento.

Errori, li vedo continuamente e so come fanno arretrare le persone.

Ci sono sette problemi principali che le persone devono affrontare. 

  1. Ricordando tutto
  2. Sindrome dell'oggetto lucido 
  3. L'apprendimento del lupo solitario
  4. Utilizzo del software beta
  5. A seconda di Applela documentazione di
  6. Impantanarsi in Objective-C
  7. Mirando ad altre lingue

Esaminiamoli uno per uno.

Smettila di cercare di ricordare tutto

Smettila di cercare di ricordare tutto

Il primo, e di gran lunga il più comune, problema che le persone incontrano è cercare di memorizzare tutto.

Nessuno ricorda tutto. Nessuno si avvicina a ricordare tutto.

Anche considerando solo le API pubblicate da Apple, ce ne devono essere ben più di centomila. 

Anche se lo limiti ai componenti principali dello sviluppo di app, ne otterrai comunque diverse centinaia.

Tutto funziona in un modo molto preciso che richiede molto apprendimento per l'utilizzo.

Invece, impara come fare qualcosa di nuovo e poi dimentica subito come farlo di nuovo. 

Quindi, lo cerchi, lo usi di nuovo e poi te ne dimentichi subito.

Quindi, lo cerchi una terza volta e lo usi, e questa volta per lo più lo dimentichi: alcune parti rimangono con te. 

Questo ciclo continua indefinitamente, con ogni volta che devi fare riferimento a un tutorial o a qualche altra guida di riferimento, fino a quando i fondamenti non sono radicati nella tua mente al punto da poterlo fare senza consultare nessun altro.

Se non lo sapevi già, dimenticare è una parte importante dell'apprendimento.

Ogni volta che dimentichi qualcosa e lo impari di nuovo, esso penetra più profondamente e completamente nel tuo cervello.

Quando impari di nuovo qualcosa, il tuo cervello crea nuove connessioni con altre cose che hai imparato, il che ti aiuta a capire meglio il contesto di ciò che stai tentando di fare. 

Se decidi di memorizzare tutto, farai fatica.

Invece, non preoccuparti di dimenticare le cose. Sapere dove cercarli è molto più importante che memorizzare un codice Swift specifico per realizzare qualcosa.

Evita la sindrome dell'oggetto lucido

Il secondo problema più comune è la "sindrome dell'oggetto luccicante".

È qui che troviamo un tutorial che funziona e iniziamo a fare progressi. Ma dopo una settimana o due, notiamo un'altra serie di tutorial che vogliamo seguire e passiamo invece a quella. 

Il problema qui è che molti aspetti dell’apprendimento non sono interessanti. Non è necessariamente colpa dell'insegnante. 

È solo un fatto di imparare a programmare: alcune cose ti danno grandi risultati con poco sforzo, mentre altre richiedono molto più tempo per capire, non producono risultati fantasiosi o sono solo una parte di un concetto più ampio.

Quando si raggiungono queste ripide curve di apprendimento, entra in gioco la sindrome dell’oggetto luccicante.

Con così tanti tutorial gratuiti disponibili, puoi passare a uno qualsiasi di essi e ricominciare, e tornerai nella parte bassa della piscina, coprendo le parti più facili che hai già imparato. 

Ma, unless il corso originale ha scelto un argomento insolito da trattare, probabilmente alla fine dovrai impararlo e stai solo ritardando l'inevitabile.

Si prega di prestare attenzione alla sindrome dell'oggetto luccicante.

Quando incontri un problema, prova a chiedere assistenza a qualcun altro e a perseverare invece di cambiare.

Non andare da solo

Non andare da solo

Parlando di chiedere a qualcun altro, il terzo problema in cui vediamo le persone imbattersi è quando vanno da lupi solitari con il loro apprendimento.

Credono di essere pienamente in grado di imparare a creare app iOS utilizzando Swift da soli e di non aver bisogno di alcun aiuto.

Questo metodo funziona per un numero molto ridotto di persone, in genere quelle con una vasta esperienza con altri linguaggi o piattaforme di programmazione. 

Tuttavia, per la maggior parte delle persone, apprendere in questo modo è un’esperienza terribile.

Ogni errore o incomprensione impiega cinque volte più tempo per essere notato e poi risolto. È estremamente facile perdere la motivazione e ti stai perdendo molta ispirazione guardando gli altri avere successo.

Se sei uno studente naturale "lupo solitario", ti invitiamo a cambiare i tuoi modi. 

Condividi ciò che stai imparando, connettiti con gli altri che stanno imparando e sviluppa l'abitudine di fare domande. 

Scoprirai una fantastica comunità di studenti che ti supporterà e incoraggerà. Sarai anche ispirato dal loro lavoro e, a tua volta, ispirerai loro con il tuo.

È completamente trasformativo!

Non usare le versioni beta

Il quarto problema principale è quando le persone insistono nell'usare le versioni beta di Applegli strumenti di sviluppo. 

Ogni anno, Apple rilascia un nuovo iOS, un nuovo macOS e altri prodotti, offrendoci sempre nuove ed entusiasmanti cose da provare.

È naturale che le persone vogliano imparare le novità e le novità migliori, soprattutto se sanno che Swift ha una lunga storia di cambiamenti.

Tuttavia, quando le persone cercano di imparare con il software beta, incontrano una serie di problemi:

Poiché i tutorial non sono stati aggiornati per la versione beta, seguire le loro istruzioni non sarà sempre possibile o fallirà.

I bug sono comuni nelle beta, in particolare quelli rilasciati per i principali aggiornamenti iOS.

AppleI framework beta richiedono tempo per stabilizzarsi, il che significa che il codice che funzionava nella beta 1 potrebbe non funzionare nella beta 3.

Quindi, anche se è emozionante imparare cose nuove e potresti credere di essere in vantaggio con le nuove funzionalità, di solito non ne vale la pena. 

Utilizza sempre le versioni pubbliche più recenti di Applefino a quando non ti senti a tuo agio con loro.

Basandosi sulla documentazione ufficiale

Basandosi sulla documentazione ufficiale

Il quinto problema principale che le persone affrontano quando cercano di imparare è fare affidamento su Applela documentazione. 

AppleIl team delle pubblicazioni per sviluppatori di lavora duramente per documentare quanto più possibile dalla vasta gamma di framework dell'azienda

Ma il loro compito principale è scrivere materiale di riferimento (cose che leggi quando provi a utilizzare un pezzo specifico dei loro strumenti) piuttosto che creare un corso strutturato per aiutarti a imparare a creare app iOS.

Abbiamo perso il conto del numero di volte in cui le persone hanno chiesto: "Come posso imparare Swift?" solo per sentirsi dire: "Leggi Applela guida di riferimento Swift." 

Questo approccio funziona per alcune persone. 

Tuttavia, per la maggior parte delle persone, è come cercare di imparare una lingua umana leggendo un dizionario.

I documenti hanno lo scopo di coprire tutto nella lingua piuttosto che insegnarti le parti più importanti e come applicarle.

Quindi, se hai una vasta esperienza con altre lingue, leggi Applele guide di riferimento di possono essere utili. Ma se hai appena iniziato, potresti voler rivisitarli dopo alcuni mesi.

Impantanarsi in Objective-C

Il sesto problema principale che le persone devono affrontare è il tentativo di apprendere Objective-C.

Questo era Appleil linguaggio di sviluppo principale di prima dell'introduzione di Swift. Sebbene siano presenti dei resti in alcune vecchie basi di codice, la stragrande maggioranza del codice esistente è ora Swift e anche quasi tutto il nuovo codice è Swift.

Alcune persone trascorrono anni a scrivere Objective-C prima di Swift e iniziano ad amarlo davvero. Ma ha una curva di apprendimento estremamente ripida e manca della maggior parte delle funzionalità importanti di Swift. 

Quando Apple annunciato per la prima volta l'iPhone SDK, molte persone sono rimaste inorridite da Objective-C perché era diverso da qualsiasi altra cosa vista finora.

Objective-C e Swift non hanno quasi nulla in comune per un principiante. 

Sì, condividono lo stesso Apple quadri, ma unless hai intenzione di lavorare a Apple – l'unica azienda al mondo che produce ancora grandi quantità di Objective-C – dovresti lasciare da solo Objective-C e concentrarti interamente su Swift.

Ignorando altre lingue

Ignorando altre lingue

L'ultimo grande errore che le persone commettono quando imparano Swift è liquidare altre lingue come inferiori a Swift. 

L'obiettivo più comune è JavaScript. Vedrai anche persone prendere di mira Python, Java, Ruby, Go e altri linguaggi, e per cosa?

Non è una gara: quelle lingue non devono perdere perché Swift vinca. Infatti, Swift e SwiftUI sono spesso ispirati ad altri linguaggi e framework.

Ogni volta che vengono prese in considerazione nuove funzionalità del linguaggio, la comunità esamina implementazioni simili in Rust, Python, Haskell e altri linguaggi e SwiftUI è fortemente influenzato da JavaScript React struttura.

Risorse e corsi di sviluppo iOS

Risorse e corsi di sviluppo iOS

Veniamo ora alla parte che interessa alla maggior parte delle persone. Quali sono le risorse che dovresti utilizzare per imparare Swift, SwiftUI e altro ancora per raggiungere il tuo obiettivo di diventare uno sviluppatore iOS?

Ce ne sono molti là fuori e la comunità Swift ha un gruppo così eterogeneo di persone che condividono le proprie conoscenze. 

Tuttavia, in questo articolo, ci concentreremo sulle risorse gratuite, luoghi in cui puoi imparare a creare fantastiche app senza spendere un centesimo.

Ciò è dovuto a due fattori:

  1. Alcune persone credono che più alto è il prezzo di un corso Swift, migliore sarà.
  2. Molti siti, come Udemy, puntano sulla vendita di un gran numero di corsi a basso costo, sicuri che se non ti piace uno, ne comprerai semplicemente un altro. Hanno anche un modello di business come quello di Steam in quanto ci sono vendite costanti, incoraggiando le persone ad accumulare un gran numero di corsi per studiare "un giorno".

Quindi, qui stiamo solo elencando risorse gratuite in modo da non spendere cento dollari o più per il tuo primo corso e non acquistare una dozzina di corsi economici pensando che ti renderanno uno sviluppatore.

Tutorial

Iniziare, Apple ha due risorse principali che possono aiutarti. Il primo è suo Codice Didattico di LPI.

Contiene risorse per studenti e insegnanti per apprendere Swift dalle basi, fino alle certificazioni professionali. 

Il loro curriculum è ampio, quindi potrebbe volerci del tempo per trovare il miglior punto di ingresso per te, ma una volta lì, troverai molto da esplorare.

Secondo, Apple ha una serie di Tutorial SwiftUI che ti guidano attraverso il processo di creazione di app del mondo reale. Questi, tuttavia, non insegnano Swift, quindi devi prima completare il loro curriculum incentrato su Swift.

YouTube e altri siti

Ce ne sono alcuni eccellenti Video di YouTube che ti guidano attraverso i fondamenti di SwiftUI.

Esistono altri siti con tutorial Swift e SwiftUI di alta qualità, tra cui BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee e altri ancora: incoraggiamo davvero le persone a visitare una varietà di risorse e trovare ciò che funziona per loro.

Istruzione basata su app

Se preferisci imparare tramite le app, te ne consiglio una completamente gratuita. Appledi Swift Playgrounds app.

Ti permette di imparare Swift direttamente dal tuo iPad o Mac. 

Ci sono molti interattivi lesson rivolti ai bambini, ma ce ne sono anche di più avanzati lesson che ti aiuteranno a migliorare le tue abilità.

Trovare soluzioni

Infine, dovrai imparare a trovare risposte online. Questo potrebbe significare andare a Stack Overflow, ma spero di no perché non è un posto particolarmente piacevole.

Poni invece domande sui forum Hacking with Swift, sul tuo gruppo Slack preferito, sulle sessioni iOS Dev Happy Hour, su Twitter/X e altrove: siamo una comunità veramente calorosa e accogliente con molte persone desiderose di aiutarti a raggiungere i tuoi obiettivi.

Impegnarsi nella comunità

Impegnarsi nella comunità

A proposito di comunità, vorrei discutere di un argomento davvero importante che ti aiuterà a incontrare persone in posizioni simili alle tue, a imparare in modo più efficace e a trovare opportunità di lavoro.

È una situazione vantaggiosa per tutti.

L'argomento è il collegamento con la comunità di sviluppo iOS. Ciò include sapere dove cercare notizie e idee interessanti, dove andare per incontrare persone e condividere suggerimenti e dove andare per porre domande.

Chi dovrei seguire su Twitter?

Cominciamo con il più semplice, ovvero usare Twitter. Twitter è un modo fantastico per seguire le cose che ti interessano e ci sono alcune persone che consiglio vivamente nel caso dello sviluppo di iOS.

Sì, queste persone twittano sul proprio lavoro, ma penso che siano fantastici da seguire perché twittano anche molto sul lavoro di altre persone: ti aiuteranno a vedere una varietà di prospettive su un particolare argomento e condividono tutti i tipi di idee interessanti e cose da provare.

Ecco 9 persone che ti consigliamo di seguire su Twitter:

Sean Allen passa molto tempo su YouTube realizzando video sullo sviluppo di Swift e iOS, ma lavora anche duramente per spargere la voce sul lavoro di altre persone: fa davvero un ottimo lavoro nell'aiutare tutti a scoprire qualcosa di nuovo ogni settimana.

Antonio van der Lee gestisce un sito Web di sviluppo iOS all'indirizzo https://www.avanderlee.com, ma condivide anche alcuni ottimi collegamenti a risorse utili che trova su GitHub, newsletter e altro ancora.

Novall Khan lavori per Apple, ma questo non le impedisce di pubblicare regolarmente video su cosa sta lavorando, cosa sta imparando, con cosa ha problemi e altro ancora: è davvero stimolante.

Steve Troughton-Smith è noto per i suoi precedenti lavori su iOS, ma dovresti davvero seguirlo per la fantastica gamma di collegamenti che condivide con un lavoro impressionante. Mi piace come condivide i progressi di sviluppo delle sue app, così puoi vederle crescere dall'inizio alla fine.

Kaya Tommaso è uno degli sviluppatori indipendenti più famosi della nostra community ed è stata descritta da Apple più volte di quante ne possa contare. Twitta spesso sul suo lavoro e sulle sue presentazioni, ma condivide anche link a libri che sta leggendo, articoli che ha letto e altre risorse.

Majid Jabrailov non solo scrive un fantastico blog Swift e SwiftUI, ma è anche uno pneumaticoless promotore di altri: se lo segui su Twitter, riceverai un'idea dopo l'altra da un'ampia varietà di fonti.

Donny Wals scrive un blog Swift e, più recentemente, libri su Combine e Core Data, ma incoraggia anche le persone a condividere ciò su cui stanno lavorando su Twitter. Anche solo leggere quel thread una volta alla settimana ti ispirerà a provare cose nuove, quindi dovresti assolutamente seguire Donny.

Panage estivo funziona su Apple's, quindi, sebbene sia in qualche modo limitata in ciò che può dire, twitta molti suggerimenti di prim'ordine da se stessa e da altri che tutti possono utilizzare per creare app migliori.

Natascia Fadeeva scrive un blog sullo sviluppo di Swift e iOS, inclusi articoli su Core Data, domande per interviste e altri argomenti, ma twitta anche su cose che trova altrove.

Newsletter e altro

Newsletter e altro

Naturalmente, Twitter non è l'unico posto dove rimanere in contatto con la comunità; ci sono anche newsletter, gruppi Slack, incontri Zoom, forum, conferenze e altri luoghi.

Non voglio annoiarvi troppo, quindi ne elencherò solo uno per ciascuno:

Non puoi sbagliare Settimanale per sviluppatori iOS per newsletter.

Se vuoi postare su un forum web, https://www.hackingwithswift.com/forums è abbastanza buono. Ci sono molte categorie tra cui scegliere, e chiunque, riguardoless di livello di esperienza, è il benvenuto a partecipare. Sei più che benvenuto a postare qui le tue domande da principiante, credimi!

Ogni mese, il Happy Hour per sviluppatori iOS si tiene durante una chiamata di gruppo Zoom. Il vero divertimento è nelle stanze per sottogruppi di lavoro, dove puoi chattare con gruppi da 6 a 8 persone alla volta. È molto divertente e incontrerai nuove persone.

Partecipare alle conferenze è stato difficile a causa della pandemia di coronavirus, ma Apple's WWDC è stato un enorme successo lo scorso anno ed è stato accompagnato da una serie di eventi comunitari.

Un gruppo di amici e io abbiamo creato un Repository GitHub per tenere traccia di tutti gli altri eventi, articoli e altre cose accadute, dai un'occhiata!

Infine, se preferisci chattare su Slack dove puoi ottenere risposte più velocemente, puoi partecipare gratuitamente Hacking con il gruppo Swift Slack e unisciti a uno dei canali Swift, SwiftUI e altri.

Quanto tempo ci vuole per imparare iOS?

Questa è una domanda frequente e vogliamo affrontarla adesso.

Quanto tempo ci vuole per passare dal non sapere nulla di Swift all'essere in grado di ottenere una posizione di sviluppatore iOS entry-level?

La risposta ovvia è "dipende", ma in questo caso sarebbe una scappatoia, quindi affrontiamo la questione in diversi modi.

La regola d'oro è non avere fretta

Innanzitutto non è possibile seguire più corsi contemporaneamente. Ricordi cosa ho detto sulla "sindrome dell'oggetto luccicante"?

Sì, molte persone credono di poter seguire due corsi contemporaneamente, quindi dedicarci quattro, cinque o anche più ore ogni giorno e avere comunque una comprensione di alta qualità degli argomenti trattati.

Per essere chiari, ho visto persone provarlo così tante volte e fallisce sempre. Ogni volta.

Non funziona mai, e sento persone dire che è perché i tutorial erano pessimi, o perché Swift era troppo difficile, o letteralmente per qualsiasi altra ragione diversa dal tentativo di affrettarsi attraverso qualcosa di complesso.

Imparare Swift a volte può essere difficile e imparare a creare app richiede molti tentativi ed errori, commettendo errori e prendendo strade sbagliate.

E va bene – è meglio che bene, è fantastico! 

Ogni volta che provi qualcosa, commetti un errore o prendi la strada sbagliata, impari qualcosa lungo il percorso. Quando finalmente arriverai alla soluzione, la capirai molto meglio.

Quindi, il TL;DR qui è: non avere fretta: prenditi il ​​tuo tempo, non aver paura di esplorare le tangenti che si presentano.

Non aver paura di sperimentare con i tuoi progetti e non aver paura di tornare a qualcosa che hai imparato in precedenza e reimpararlo secondo necessità.

Qual è il tuo background formativo

Qual è il tuo background formativo?

In secondo luogo, dovresti considerare il tuo background prima di venire in Swift.

Vedi, imparare a creare app richiede una vasta gamma di competenze. Se disponi di una vasta conoscenza preliminare come version control, strutture dati, algoritmi e altro ancora, avrai un vantaggio significativo rispetto a coloro che sono nuovi all'informatica in generale.

Quindi, ecco alcune possibilità per dove potresti essere in questo momento:

Se hai una laurea in informatica, avrai già familiarità con molti dei fondamenti di CS necessari per iniziare con Swift.

Variabili, matrici, cicli, matrici, insiemi, funzioni, OOP e altri concetti saranno utili in Swift, così come tutto il tuo lavoro con strutture dati e algoritmi.

Ciò potrebbe farti risparmiare 4-6 mesi di tempo di studio a seconda delle materie studiate e ti darà anche un vantaggio quando fai domanda per posti di lavoro presso molte aziende.

Se non hai una laurea in informatica ma hai frequentato un bootcamp di programmazione, avrai molte delle nozioni di base necessarie per iniziare con Swift.

Questo non ti darà lo stesso vantaggio quando fai domanda per un lavoro presso quelle aziende perché spesso si aspettano una laurea solo per selezionare una casella nel loro elenco di requisiti arbitrari. Ma ti farà comunque risparmiare tre o quattro mesi.

Se non hai una laurea in CS e non hai frequentato un bootcamp, ma hai programmato nel tempo libero, risparmierai un po' di tempo, probabilmente due mesi circa, a seconda del linguaggio o dei framework che stavi utilizzando .

Cosa succede se non hai una laurea in informatica, non hai partecipato a un bootcamp e non hai precedenti esperienze di programmazione?

Quindi stimerei dai 9 ai 12 mesi per passare dal nulla a un lavoro entry-level.

Sì, potrebbe essere un anno intero di lavoro in aggiunta a qualunque sia il tuo attuale lavoro a tempo pieno, e questo è solo per ottenere il tuo primo lavoro come sviluppatore iOS.

E' sempre lo stesso anno?

No. Se hai esperienza precedente, puoi ridurre il tempo da 1 a 6 mesi, come ho affermato in precedenza.

Se prendi i numeri migliori da entrambe le parti – 9 mesi da zero a un lavoro entry-level, più 6 mesi per avere una laurea in informatica – significa che potresti essere assunto in soli 3 mesi, il che è incredibile.

Quindi, non hai bisogno di una laurea CS o di un bootcamp, ma devi essere disposto a lavorare sodo.

Concediti un po' di margine

Il terzo punto che vorrei sottolineare prima di andare avanti è che "ci vuole tutto il tempo che serve". Adoro un testo di John Lennon che dice: "La vita è ciò che accade quando sei impegnato a fare altri piani".

Non essere troppo duro con te stesso se rimani indietro con il tuo programma di apprendimento, o se ti ritrovi a perdere qualche giorno o anche qualche settimana, e così via.

Finché sarai resiliente, ci arriverai.

Prepararsi a candidarsi

Prepararsi a candidarsi

Infine, se sei un po' più avanti nel tuo percorso di apprendimento su iOS e stai pensando di ottenere il tuo primo lavoro entry-level, vorrei indicarti un'enorme raccolta di risorse per aiutarti.

lo consiglierei Video di suggerimenti per l'intervista a Swift di Sean Allen.

Ha un'intera playlist per loro in cui puoi lavorare su discussioni individuali come classi vs strutture, programmazione funzionale, gestione degli errori e altro ancora.

Nessuno di essi è particolarmente lungo, ma sono tutti progettati per fornirti le competenze necessarie per ottenere buoni risultati in un colloquio.

Dove ora?

Ok, ho esaminato le competenze di base e di estensione di cui avrai bisogno, gli errori di apprendimento comuni, i corsi che puoi seguire, come connetterti con la community iOS.

Ho anche spiegato come prepararsi per il colloquio di lavoro.

Inoltre, spero di aver dimostrato quante informazioni sono disponibili gratuitamente. 

Sì, la tentazione di spendere cento dollari o più per un corso è forte. Ma rilassati: muoviti prima, trova lo slancio e trova qualcuno che insegni Swift in un modo che funzioni per te.

Quando sei a posto e ti senti pronto, vai avanti e spendi dei soldi se vuoi.

Buona fortuna per il tuo viaggio! 

L'autore
Davide Attard
David ha lavorato nel settore online e digitale negli ultimi 21 anni. Ha una vasta esperienza nei settori del software e del web design utilizzando WordPress, Joomla e le nicchie che li circondano. Ha lavorato con agenzie di sviluppo software, società di software internazionali, agenzie di marketing locali e ora è responsabile delle operazioni di marketing presso Aphex Media, un'agenzia SEO. In qualità di consulente digitale, il suo obiettivo è aiutare le aziende a ottenere un vantaggio competitivo utilizzando una combinazione del loro sito Web e delle piattaforme digitali oggi disponibili. La sua miscela di esperienza tecnologica combinata con un forte senso degli affari conferisce un vantaggio competitivo ai suoi scritti.

Un'altra cosa... Sapevi che anche le persone che condividono cose utili come questo post sembrano FANTASTICHE? ;-)
Per favore, lasciare un utile commenta con i tuoi pensieri, quindi condividi questo articolo sui tuoi gruppi di Facebook che lo troverebbero utile e raccogliamo insieme i frutti. Grazie per la condivisione e per essere gentile!

Disclosure: Questa pagina può contenere collegamenti a siti esterni per prodotti che amiamo e consigliamo vivamente. Se acquisti prodotti che ti suggeriamo, potremmo guadagnare una commissione per segnalazione. Tali commissioni non influenzano le nostre raccomandazioni e non accettiamo pagamenti per recensioni positive.

Autore / i in primo piano su:  Logo della rivista Inc   Logo di Sitepoint   Logo CSS Tricks    logo webdesignerdepot   Logo WPMU DEV   e molti altri ...