Cum să devii un dezvoltator iOS - Ghidul final (2024)

dezvoltator ios

În acest articol, vom trece peste ceea ce credem că este nevoie pentru a deveni un dezvoltator iOS. 

Îndreptăm acest ghid direct către două grupuri de persoane:

  • Începători absoluti Swift (Swift este limbajul folosit pentru a codifica aplicațiile iOS) - oameni care nu au creat niciodată nimic pentru iOS până acum.
  • Și oameni care au încercat să învețe Swift înainte, dar nu și-au atins niciodată obiectivul de a obține un loc de muncă cu normă întreagă.

Privințăless de nivelul tău actual, scopul aici este același. Pentru a vă pune în situația de a aplica pentru un rol de dezvoltator iOS junior la o companie.

Vom analiza abilitățile pe care ar trebui să le învățați, cursurile pe care le puteți urma, cum să vă conectați la comunitate, greșelile comune pe care le fac oamenii și multe altele. 

Cel mai bine, tot ceea ce vom discuta va fi complet gratuit.

Serios, prea mulți oameni cred că cheltuind mulți bani îi va pune pe drumul rapid către jobul lor de vis, când cei mai importanți factori sunt determinarea și voința.

Acest articol este împărțit în șapte secțiuni:

  1. Abilități de bază pe care trebuie să le aveți pentru a obține un loc de muncă.
  2. Abilități pe care este plăcut să le ai pentru a te diferenția de mulțime
  3. Greșeli comune pe care oamenii le fac atunci când încearcă să învețe.
  4. Multe resurse gratuite disponibile pentru a vă ajuta să învățați Swift.
  5. Cum să intrați în contact cu comunitatea de dezvoltare iOS.
  6. O estimare a cât timp va dura pentru a vă atinge obiectivul.
  7. Pregătește-te să aplici pentru primul tău loc de muncă.

Citiți întreaga postare sau treceți direct la informațiile pe care le căutați, depinde în întregime de dvs.!

Abilitățile fundamentale necesare pentru a deveni un dezvoltator iOS

Ce este un dezvoltator iOS?

Un dezvoltator iOS lucrează la aplicații pentru Apple gama de telefoane. iOS este special pentru iPhone și vei lucra în primul rând cu jocuri și aplicații pentru acel telefon.

S-ar putea să fii implicat în:

  • Proiectarea și planificarea aplicațiilor
  • Scrierea codului și dezvoltarea de aplicații
  • Efectuarea de întreținere pe aplicații sau servere de aplicații
  • Identificarea problemelor și rezolvarea acestora
  • Dezvoltarea de actualizări și îmbunătățiri
  • Lucrul cu echipe de-a lungul întregului ciclu de viață al aplicației

Chiar dacă sunteți specializat într-un anumit produs, sunt multe implicate în ziua obișnuită.

Să împărțim cele cinci articole în bucăți mai mici.

Abilități de bază necesare pentru a deveni un dezvoltator iOS

Care este minimul absolut de competențe necesare pentru a obține un loc de muncă în dezvoltarea iOS? 

Există cinci abilități esențiale de care credem că veți avea nevoie ca dezvoltator iOS:

  1. Programare rapidă
  2. SwiftUI 
  3. Rețele
  4. Lucrul cu date
  5. Gestionarea versiunilor

Să împărțim cele cinci articole în bucăți mai mici.

1. Learning Swift

Rapid este primul pe listă. Aceasta este Applelimbajul de programare principal al lui. Nu are conceptul de a afișa informații pe ecranul unui iPhone sau de a descărca date de pe internet. 

Este pur și simplu un limbaj precum JavaScript sau Python. Este doar un cod pur pe care îl folosiți pentru a crea variabile, a scrie funcții și așa mai departe.

Swift are doar câțiva ani și folosește aproape toate caracteristicile de ultimă oră disponibile. 

Aceasta înseamnă că puteți evita toate comportamentele vechi care sunt comune în limbaje mai vechi precum C++ și Java.

De asemenea, înseamnă că are o mulțime de funcții avansate de care poți profita.

2. SwiftUI

A doua abilitate de bază necesară este SwiftUI. Este un Apple cadru care ne permite să folosim Swift pentru a crea aplicații pentru iOS, macOS, tvOS și chiar watchOS. 

Acolo unde Swift este limbajul de programare, SwiftUI oferă instrumentele pentru dezvoltatorii să creeze aplicații.

Pentru a fi clar, SwiftUI nu este un înlocuitor pentru Swift – este un cadru construit pe Swift care ne permite să creăm aplicații.

Va trebui să cunoașteți atât Swift, cât și SwiftUI pentru a reuși.

SwiftUI este un cadru destul de tânăr, a apărut pentru prima dată în 2014 și a fost dezvoltat pentru a înlocui obiectivul arhaic C.

În ciuda vârstei sale fragede, comunitatea iOS l-a îmbrățișat din toată inima pentru că este atât de ușor de utilizat.

Apple are, de asemenea, un cadru mai vechi pentru construirea de aplicații iOS numit UIKit. Dacă întrebi o grămadă de oameni dacă ar trebui să înveți mai întâi SwiftUI sau UIKit, vei primi o varietate de răspunsuri. 

Credem că ar trebui să înveți SwiftUI și iată motivul pentru care ar trebui să prioritizezi SwiftUI ca abilitate de bază.

SwiftUI este semnificativ mai ușor decât UIKit și – este nevoie de un sfert din cod pentru a obține aceleași rezultate ca UIKit și sunt mai puține lucruri de învățat pe parcurs. 

Aceasta înseamnă că câștigi mult elan, deoarece poți construi lucrurile mai repede, poți vedea rezultatele mai repede și poți repeta acele rezultate cu mai multă agilitate.

Creat pentru Swift

Creat pentru Swift

SwiftUI a fost creat pentru Swift, folosind funcții de limbaj pentru a ajuta la evitarea problemelor și la obținerea performanței maxime. 

De exemplu, dacă modificați unele date de pe un ecran al unei aplicații, SwiftUI se va asigura automat că noile date sunt actualizate oriunde altundeva în aplicația dvs. care le folosește.

Nu trebuie să scrieți cod pentru a menține totul sincronizat, ceea ce este de obicei destul de complex. 

UIKit a fost scris pentru Applelimba mai veche a lui, Objective-C. Drept urmare, are tot felul de ciudatenii care rezultă din vârsta sa.

SwiftUI este compatibil cu toate Appleplatformele lui, astfel încât să puteți folosi ceea ce ați învățat pe iOS pentru a crea o aplicație macOS sau watchOS cu cod aproape identic. 

Desigur, funcții precum Digital Crown sunt exclusive pentru un singur dispozitiv, the Apple Urmăriți, dar marea majoritate a ceea ce învățați va funcționa pe orice dispozitiv.

Cel mai important, SwiftUI este direcția în care se îndreaptă lucrurile. 

Dacă aplicați pentru un loc de muncă cu câțiva ani în urmă, probabil că ar trebui să cunoașteți UIKit. Faptul că citiți acest lucru înseamnă că sunteți mult mai departe în acest proces. 

În timp ce UIKit era mai popular, SwiftUI este acum cadrul de UI dominant.

Cele mai mari companii din lume, inclusiv Apple ei înșiși avansează acum cu SwiftUI.

Cand Apple widget-uri lansate recent în iOS 14, au făcut ca o cerință să folosești SwiftUI.

Rețele și manipularea datelor

A treia și a patra abilități pe care le-am menționat au fost crearea de rețele și manipularea datelor. În comparație cu Swift și SwiftUI, acestea sunt destul de simple, sau cel puțin simple la nivelul necesar pentru a obține un job de dezvoltator iOS junior.

Rețeaua este practica de a prelua date de pe internet sau de a trimite date de pe un dispozitiv local la un server la distanță.

Pe o aplicație mobilă, aceasta este o abilitate fundamentală.

Există numeroase metode pentru a realiza acest lucru, dar cel mai important lucru de înțeles este cum să preluați JSON de pe un server.

Aici intervine cealaltă abilitate esențială, lucrul cu date. 

Din nou, există numeroase moduri de a încărca și salva date. Minimul absolut pe care trebuie să îl puteți face este să convertiți datele pe care le-ați primit de la un server în informații pe care aplicația dvs. le poate afișa.

Deci, a treia și a patra abilități de bază sunt indisolubil legate.

Preluați câteva date de pe un server, apoi convertiți-le în informații care pot fi afișate în aplicația dvs.

Unii dezvoltatori glumesc că scrierea acestui tip de cod este jumătate din munca unui dezvoltator iOS și este cu siguranță adevărat că ne bazăm foarte mult pe el.

Version control

Abilitatea finală nu este deloc codificare, e version control, cum ar fi Git. Din nou, nu aveți nevoie de multe aici, dar este important să vă puteți publica codul într-un loc public, cum ar fi GitHub, astfel încât recrutorii să vă poată vedea munca.

Puțini oameni din lume înțeleg cu adevărat cum funcționează Git, dar este în regulă – trebuie doar să cunoașteți suficiente elemente de bază pentru a vă stoca datele în siguranță și pentru a colabora cu alții.

Deci, atunci când cele cinci sunt adăugate împreună, există două masive - Swift și SwiftUI - precum și trei minore, dar importante. 

Dacă vă puteți concentra pe acele cinci lucruri fără a fi distras, veți fi pe drumul cel bun către primul dvs. job de dezvoltator iOS.

Asta este: acestea sunt cele cinci abilități esențiale de care cred că ai nevoie pentru a fi un dezvoltator iOS!

Există mii de oameni care au doar acele abilități și pot construi și livra aplicații fantastice în App Store.

Ce vine după fundamente

Ce urmează după elementele fundamentale?

Odată ce ați stăpânit cele cinci abilități de bază, veți putea să vă expediați propriile aplicații și să lucrați ca dezvoltator independent. De asemenea, puteți aplica pentru posturi junior de dezvoltare iOS și puteți lucra pentru o companie dacă asta doriți să faceți. 

Nu sunt necesare alte calificări speciale – doar obțineți acele abilități de bază și veți fi bine.

Cu toate acestea, dacă ați stăpânit aceste abilități și doriți să avansați, există încă cinci abilități pe care v-am recomanda să le învățați.

Veți deveni și mai capabil de angajare, iar gama de aplicații pe care o veți putea crea se va extinde și mai mult.

Abilitățile sunt după cum urmează:

  • UIKit 
  • Date de bază 
  • Validare
  • Testarea
  • Arhitectura software
  • multithreading

Ca și înainte, am dori să trecem peste fiecare dintre acestea în detaliu, astfel încât să înțelegeți de ce credem că sunt importante – și de ce le considerăm mai degrabă abilități de extensie decât abilități de bază.

UIKit

În primul rând, există UIKit. Acest lucru este Applecadru de interfață cu utilizatorul mai vechi, care a fost folosit pentru dezvoltarea aplicațiilor din 2008 – care este vechi în termeni de software.

Dar asta nu înseamnă că UIKit este rău. De fapt, pe măsură ce te obișnuiești cu modul în care funcționează, vei fi surprins de cât de elegant poate fi.

Există numeroase motive pentru care UIKit merită să înveți, inclusiv:

Sute de mii de aplicații au fost deja scrise în UIKit. Dacă vă alăturați unei companii care are o aplicație mare, bine stabilită, aproape sigur vi se va cere să scrieți cod UIKit pentru a o întreține.

UIKit este mult mai puternic decât SwiftUI – există multe lucruri pe care le puteți face în UIKit care nu sunt posibile în prezent în SwiftUI.

Folosind tehnologia Auto Layout, puteți crea machete extrem de precise.

Dacă întâmpinați probleme cu codul dvs., UIKit are mai multe soluții decât SwiftUI pur și simplu pentru că există de mult mai mult timp.

Toate acestea fac ca UIKit să sune fantastic, așa că de ce l-am făcut mai degrabă o abilitate de extensie decât o abilitate de bază? 

Deoarece UIKit are și probleme:

Aproape totul este mai dificil de făcut în UIKit decât în ​​SwiftUI, unele sarcini necesitând de o sută de ori, dacă nu mai mult, cod. 

SwiftUI a fost conceput special pentru dezvoltarea iOS modernă, așa că face o mare parte din munca grea pentru dvs.

Deoarece UIKit nu a fost scris în Swift, are multe caracteristici pe care SwiftUI nu le are - multe opționale implicite desfășurate, codul de marcare cu un atribut special @objc pentru a-l face disponibil pentru subsolul Objective-C al UIKit și necesitatea de a utiliza protocoale și delegați pentru a afișa date simple.

Nimic despre aspectul automat nu este automat. De fapt, dacă încercați vreodată să construiți un aspect complex, este posibil să aveți coșmaruri despre aspectul automat.

Este extrem de inteligent, dar este și extrem de dificil pe alocuri.

Acesta este motivul pentru care considerăm UIKit a fi o abilitate de extensie. Este nevoie de mult mai mult timp și efort pentru a învăța decât SwiftUI, ceea ce înseamnă că necesită mult mai multă determinare.

Trebuie să vrei cu adevărat să înveți, altfel vei fi confuz, plictisit, supărat sau, eventual, toate trei!

Sigur, SwiftUI nu are toate caracteristicile UIKit, dar vă permite să faceți progrese rapide și să câștigați impuls înainte de a trece la UIKit.

 

Gestionarea datelor de bază

Gestionarea datelor de bază

Date de bază, AppleCadrul lui pentru lucrul cu datele aplicației, este a doua abilitate de extensie pe care am menționat-o. 

Core Data vă permite să manipulați datele odată ce le-ați obținut, cum ar fi căutarea unor valori specifice, sortarea rezultatelor și multe altele, totul foarte eficient. 

De asemenea, se poate conecta cu ușurință la iCloud, asigurându-se că datele utilizatorului sunt sincronizate pe toate dispozitivele lor.

Core Data are o serie de dezavantaje. Cel mai grav dintre acestea este că nu este întotdeauna plăcut să lucrezi cu el.

Core Data este aproape la fel de vechi ca UIKit și, deși a funcționat bine în Objective-C, nu se simte la fel de natural în Swift. 

Se integrează bine cu SwiftUI, ceea ce îl face să se simtă less ciudat, dar este totuși un subiect surprinzător de complex.

La fel ca UIKit, Core Data este extrem de populară – sute de mii de aplicații au fost create cu el și sunt folosite în multe întreprinderi mari și mici. 

Core Data, precum UIKit, este extrem de puternică și, deși ați putea recrea cele mai importante părți ale acestora în propriul cod, de ce ați face-o?

Testarea codului dvs

A treia abilitate de pe lista mea de extensii este testarea. Scrierea unui cod special pentru a vă asigura că codul principal al aplicației funcționează conform așteptărilor. 

Testele ne permit să ne asigurăm că codul nostru funcționează corect și, mai important, că continuă să funcționeze corect chiar și după ce am făcut modificări semnificative.

Testarea este esențială și vă va ajuta să scrieți software de calitate superioară. Deci, de ce este considerată o abilitate de extensie mai degrabă decât o abilitate de bază? 

Există trei motive pentru acest lucru:

Comunitatea iOS este groaznică la testare, indiferent de motivele istorice. Multe aplicații mari nu au deloc teste și, în mod tragic, un număr de dezvoltatori seniori iOS sunt aproape mândri că nu scriu niciodată teste. 

Când te gândești la toate lucrurile uimitoare cu care poți crea Appleinstrumentele și cadrele lui, scrierea testelor nu pare prea distractiv în comparație. 

Când aplici pentru un loc de muncă, cunoscând Swift și AppleCadrele principale ale lui vor fi întotdeauna mai utile decât a ști cum să scrieți teste. 

Companiile ar prefera ca tu să știi cum să folosești SwiftUI, UIKit sau unul dintre ceilalți mari, deoarece testarea este un subiect mult mai mic.

Deci, testarea este importantă, testarea contează și, dacă vrei să fii un dezvoltator excelent, trebuie să înveți cum să scrii teste grozave.

Dar numai după ce ați stăpânit elementele fundamentale ale dezvoltării aplicațiilor – după ce ați avut un oarecare succes, ați simțit graba de a avea aplicația live pe App Store și ați stăpânit testarea.

Arhitectura software

Arhitectura software

A patra abilitate de extensie pe care am dori să o discutăm este arhitectura software, care este despre modul în care scriem codul. 

Vei scrie un cod groaznic atunci când începi. 

E în regulă pentru că așa înveți. Nu începi bine – devii bun fiind rău mult timp și învățând modalități mai bune de a face lucrurile cu experiență și expunere.

Ideea este că rămâi cu codul rău până când îți dai seama cum să faci mai bine. Aici intervine arhitectura software.

Privind tehnicile încercate și adevărate pentru structurarea codului dvs. pentru a face mai ușor de citit, utilizat, modificat și întreținut pe termen lung. 

Aceste tehnici se bazează uneori pe modul în care funcționează Swift – caracteristici ale limbajului care pot fi folosite pentru a scrie cod mai bun. 

Cu toate acestea, există numeroase alte tehnici care funcționează în orice limbaj de programare și sunt denumite în mod obișnuit modele de design.

Un aspect important al acestei abilități pe care ar trebui să începeți să-l învățați este cum să vă despărțiți codul. 

De exemplu, dacă creați un singur ecran în aplicația dvs., acesta ar putea include un buton de conectare, o galerie de imagini și o listă de prieteni. 

Cu toate acestea, în mod ideal ar trebui să separați fiecare dintre acele părți - o componentă a butonului de conectare, o componentă a galeriei de imagini și o componentă a listei de prieteni - astfel încât să puteți reutiliza oricare dintre aceste componente în alte părți ale aplicației dvs.

Arhitectura software este mult mai subiectivă decât celelalte abilități pe care le-am discutat până acum. Pentru ceilalți, cum ar fi SwiftUI, puteți argumenta: „Ei bine, știu cum să fac X, Y și Z, așa că sunt încrezător că sunt un bun dezvoltator SwiftUI”.

Arhitectura software este un subiect foarte larg și adesea nu există o modalitate evidentă „corectă” de a rezolva o problemă.

Cel mai bun punct de referință pentru acesta este acesta: vă uitați înapoi la codul dvs. de acum șase luni, acum un an și așa mai departe.

Scrierea unui cod prost este acceptabilă dacă te apropie de scrierea unui cod mai bun. 

Cu siguranță te vei zgâria la cap pe alocuri când te uiți înapoi la codul pe care l-ai scris acum cinci ani, pentru că acum vei ști mai multe decât atunci.

Așa ar trebui să fie.

multithreading

Ultima abilitate de extensie pe care o vom discuta este multithreading. Aceasta este practica de a face codul să facă mai mult de un lucru la un moment dat. 

Multithreadingul poate fi o adevărată durere, deoarece este greu de înțeles pentru creierul nostru.

Când codul tău face câte un lucru la un moment dat, îl putem gândi liniar, dar când două sau trei lucruri se întâmplă în același timp, potențial suprapuse, se poate încurca într-adevăr cu gândirea ta.

Deci, deși multithreading-ul este o abilitate excelentă, ar trebui să fii precaut. Scopul dvs. ar trebui să fie să înțelegeți suficient de concepte și cod pentru ca acesta să funcționeze bine, fără a merge prea departe. 

Pentru a fi sincer, mulți dezvoltatori cred că multithreading va face instantaneu codul lor să ruleze de trei sau patru ori mai rapid. 

Deși acest lucru este adevărat în unele cazuri, în multe alte cazuri, codul dvs. va rula mai lent și acum va trebui să vă ocupați de toată complexitatea suplimentară a codului.

„Recomandarea mea specifică este să evitați pe cât posibil să scrieți cod asincron/concurent. Acest lucru poate părea ciudat în 2018, dar costul în complexitate și performanță este mare.

Așadar, aflați puțin despre cum funcționează multithreadingul în Swift pentru a demonstra că înțelegeți conceptele și implementarea, dar nu exagerați!”

David Smith - Apple Echipa SwiftUI

Greșeli comune pe care le fac noii dezvoltatori iOS

Greșeli comune pe care le fac noii dezvoltatori iOS

În acest moment, am enumerat toate abilitățile de bază și de extensie de care veți avea nevoie pentru a lucra ca dezvoltator iOS cu normă întreagă. 

De asemenea, vrem să discutăm despre unele dintre cele mai frecvente greșeli pe care le fac oamenii în timp ce învață.

Greșeli Le văd tot timpul și știu cum îi dau înapoi pe oameni.

Există șapte probleme majore cu care se confruntă oamenii. 

  1. Amintindu-și totul
  2. Sindromul obiectului lucios 
  3. Lupul singuratic învață
  4. Folosind software-ul beta
  5. Depinde de Appledocumentația lui
  6. A fi blocat în Objective-C
  7. Vizând alte limbi

Să trecem peste fiecare dintre ele unul câte unul.

Nu mai încerca să-ți amintești totul

Nu mai încerca să-ți amintești totul

Prima problemă, și de departe cea mai comună, pe care o întâmpină oamenii este încercarea de a memora totul.

Nimeni nu-și amintește totul. Nimeni nu se apropie de a-și aminti totul.

Chiar dacă luați în considerare doar API-urile publicate de Apple, trebuie să fie peste o sută de mii dintre ele. 

Chiar dacă îl limitați la componentele de bază ale dezvoltării aplicațiilor, încă vă uitați la câteva sute.

Toate lucrează într-un mod foarte precis, care necesită multă învățare pentru utilizare.

În schimb, învață cum să faci ceva nou și apoi uită imediat cum să faci din nou. 

Deci, îl căutați, îl utilizați din nou și apoi uitați imediat de el.

Așadar, îl cauți a treia oară și îl folosești, iar de data aceasta în mare parte îl uiți – unele părți rămân cu tine. 

Acest ciclu continuă la nesfârșit, fiind nevoit să vă referiți la un tutorial sau la un alt ghid de referință de fiecare dată, până când elementele fundamentale sunt înrădăcinate în minte până la punctul în care puteți face acest lucru fără a consulta pe nimeni altcineva.

Dacă nu știai deja, uitarea este o parte importantă a învățării.

De fiecare dată când uiți ceva și îl înveți din nou, acesta se cufundă mai adânc și mai adânc în creierul tău.

Când reînveți ceva, creierul tău face noi conexiuni cu alte lucruri pe care le-ai învățat, ceea ce te ajută să înțelegi mai multe despre contextul a ceea ce încerci să faci. 

Dacă îți propui să memorezi totul, te vei lupta.

În schimb, nu vă îngrijorați să uitați lucruri. Să știi unde să le cauți este mult mai important decât să memorezi un anumit cod Swift pentru a realiza ceva.

Evitați sindromul obiectelor strălucitoare

A doua problemă cea mai frecventă este „sindromul obiectului strălucitor”.

Aici găsim un tutorial care funcționează și începem să facem progrese. Dar după o săptămână sau două, observăm o altă serie de tutoriale pe care vrem să o urmăm și să trecem la asta. 

Problema aici este că multe aspecte ale învățării sunt neinteresante. Asta nu este neapărat vina profesorului. 

Este doar un fapt de a învăța să codificați – unele lucruri vă oferă rezultate excelente cu puțin efort, în timp ce altele necesită mult mai mult timp pentru a înțelege, nu produc rezultate fantastice sau sunt doar o parte a unui concept mai larg.

Când atingeți aceste curbe abrupte de învățare, apare sindromul obiectelor strălucitoare.

Cu atât de multe tutoriale gratuite disponibile, poți sări la oricare dintre ele și să repornești și te vei întoarce în capătul puțin adânc al piscinei, acoperind părți mai ușoare pe care le-ai învățat deja. 

Dar, unless cursul inițial a ales un subiect neobișnuit de acoperit, probabil că va trebui să-l înveți în cele din urmă și doar întârzi inevitabilul.

Vă rugăm să fiți conștienți de sindromul obiectului strălucitor.

Când întâmpinați o problemă, încercați să cereți ajutor de la altcineva și să perseverați în loc să schimbați.

Nu merge singur

Nu merge singur

Vorbind de a întreba pe altcineva, a treia problemă în care vedem oamenii se întâlnesc este atunci când se învârt singuri cu învățarea lor.

Ei cred că sunt pe deplin capabili să învețe să creeze aplicații iOS folosind Swift singuri și nu au nevoie de ajutor.

Această metodă funcționează pentru un număr foarte mic de oameni, de obicei cei cu experiență vastă cu alte limbaje sau platforme de programare. 

Cu toate acestea, pentru majoritatea oamenilor, învățarea în acest mod este o experiență teribilă.

Fiecare greșeală sau neînțelegere durează de cinci ori mai mult pentru a fi observată și apoi rezolvată. Este extrem de ușor să-ți pierzi motivația și pierzi multă inspirație când îi vezi pe alții reușind.

Dacă ești un învățător natural de „lup singuratic”, te îndemnăm să-ți schimbi felurile. 

Împărtășiți ceea ce învățați, conectați-vă cu alții care învață și dezvoltați obiceiul de a pune întrebări. 

Veți descoperi o comunitate fantastică de cursanți care vă vor sprijini și vă vor încuraja. De asemenea, te vei inspira de munca lor și, la rândul tău, îi vei inspira cu a ta.

Este complet transformator!

Nu utilizați versiuni beta

A patra problemă majoră este când oamenii insistă să folosească versiuni beta ale Appleinstrumentele de dezvoltare ale lui. 

In fiecare an, Apple lansează un nou iOS, un nou macOS și alte produse, oferind mereu lucruri noi interesante pe care să le încercăm.

Este firesc ca oamenii să dorească să învețe cele mai noi și mai bune, mai ales dacă știu că Swift are o lungă istorie de schimbare.

Cu toate acestea, atunci când oamenii încearcă să învețe cu software-ul beta, se confruntă cu o serie de probleme:

Deoarece tutorialele nu au fost actualizate pentru versiunea beta, respectarea instrucțiunilor lor nu va fi întotdeauna posibilă sau va eșua.

Bug-urile sunt comune în beta, în special cele lansate pentru actualizări majore iOS.

Applecadrele beta ale lui necesită timp pentru a se stabiliza, ceea ce înseamnă că codul care a funcționat în beta 1 ar putea să nu funcționeze în beta 3.

Deci, deși este interesant să înveți lucruri noi și s-ar putea să crezi că treci înaintea jocului cu funcții noi, de obicei nu merită. 

Utilizați întotdeauna cele mai recente versiuni publice ale Appleinstrumentele pentru dezvoltatori până când vă simțiți confortabil cu ele.

Bazându-se pe documentația oficială

Bazându-se pe documentația oficială

A cincea problemă majoră cu care se confruntă oamenii atunci când încearcă să învețe este să se bazeze Appledocumentația lui. 

AppleEchipa de publicații pentru dezvoltatori a lui lucrează din greu pentru a documenta cât mai mult posibil din gama largă de cadre ale companiei

Dar sarcina lor principală este să scrie materiale de referință – lucruri pe care le citești atunci când încerci să folosești o anumită bucată din instrumentele lor – mai degrabă decât să creeze un curs structurat care să te ajute să înveți să construiești aplicații iOS.

Am pierdut socoteala de câte ori oamenii au întrebat: „Cum pot învăța Swift?” doar pentru a fi spus: „Citește AppleGhidul de referință Swift al lui.” 

Această abordare funcționează pentru unii oameni. 

Cu toate acestea, pentru majoritatea oamenilor, este ca și cum ai încerca să înveți o limbă umană citind un dicționar.

Documentele sunt menite să acopere totul în limbă, mai degrabă decât să vă învețe cele mai importante părți și cum să le aplicați.

Deci, dacă aveți o experiență vastă cu alte limbi, citiți AppleGhidurile de referință ale lui pot fi utile. Dar dacă abia sunteți la început, poate doriți să le revedeți după câteva luni.

A fi blocat în Objective-C

A șasea problemă majoră cu care se confruntă oamenii este încercarea de a învăța Objective-C.

Acest lucru a fost Applelimbajul principal de dezvoltare înainte de introducerea lui Swift. Deși există rămășițe în unele baze de cod vechi, marea majoritate a codului existent este acum Swift și aproape tot codul nou este, de asemenea, Swift.

Unii oameni petrec ani de zile scriind Objective-C înainte de Swift și chiar ajung să-l iubească. Dar are o curbă de învățare extrem de abruptă și îi lipsesc majoritatea caracteristicilor importante ale lui Swift. 

Cand Apple a anunțat pentru prima dată iPhone SDK, mulți oameni au fost îngroziți de Objective-C, deoarece nu semăna cu nimic altceva care a văzut până acum.

Objective-C și Swift nu au aproape nimic în comun pentru un începător. 

Da, împărtășesc același lucru Apple cadre, dar unless ai de gând să lucrezi la Apple – singura companie din lume care încă mai produce cantități mari de Objective-C – ar trebui să lăsați Objective-C în pace și să vă concentrați în întregime pe Swift.

Ignorarea altor limbi

Ignorarea altor limbi

Ultima greșeală majoră pe care oamenii o fac atunci când învață Swift este respingerea altor limbi ca fiind inferioare Swift. 

Cea mai comună țintă este JavaScript. Veți vedea, de asemenea, că oamenii țintesc spre Python, Java, Ruby, Go și alte limbi și pentru ce?

Nu este o cursă – acele limbi nu trebuie să piardă pentru ca Swift să câștige. De fapt, Swift și SwiftUI sunt adesea inspirate de alte limbaje și cadre.

Ori de câte ori sunt luate în considerare funcții de limbă noi, comunitatea analizează implementări similare în Rust, Python, Haskell și în alte limbi, iar SwiftUI este puternic influențat de JavaScript. React cadru.

Resurse și cursuri de dezvoltare iOS

Resurse și cursuri de dezvoltare iOS

Acum, pentru partea care îi interesează majoritatea oamenilor. Care sunt resursele pe care ar trebui să le folosiți pentru a învăța Swift, SwiftUI și multe altele - pentru a vă atinge obiectivul de a deveni un dezvoltator iOS?

Există mulți acolo, iar comunitatea Swift are un grup atât de divers de oameni care își împărtășesc cunoștințele. 

Cu toate acestea, în acest articol, ne vom concentra pe resurse gratuite – locuri în care puteți învăța să construiți aplicații fantastice fără a cheltui un ban.

Acest lucru se datorează a doi factori:

  1. Unii oameni cred că cu cât prețul unui curs Swift este mai mare, cu atât trebuie să fie mai bun.
  2. Multe site-uri, cum ar fi Udemy, se bazează pe vânzarea unui număr mare de cursuri low-cost, încrezători că, dacă nu vă place unul, veți cumpăra altul. Ei au, de asemenea, un model de afaceri precum cel al lui Steam prin faptul că există vânzări constante, încurajând oamenii să acumuleze un număr mare de cursuri pentru a studia „o zi”.

Așadar, aici listăm doar resurse gratuite, astfel încât să nu cheltuiți o sută de dolari sau mai mult pe primul dvs. curs și să nu cumpărați o duzină de cursuri ieftine gândindu-vă că vă vor face dezvoltator.

Tutoriale

A incepe, Apple are două resurse majore care vă pot ajuta. Primul este al lui Codul didactic site-ul web.

Conține resurse pentru studenți și profesori pentru a învăța Swift de la zero, până la certificările profesionale. 

Curriculum-ul lor este extins, așa că poate dura ceva timp pentru a găsi cel mai bun punct de intrare pentru tine, dar odată ajuns acolo, vei găsi multe de explorat.

În al doilea rând, Apple are o serie de Tutoriale SwiftUI care vă ghidează prin procesul de creare a aplicațiilor din lumea reală. Acestea, totuși, nu predau Swift, așa că trebuie mai întâi să finalizați programa lor axată pe Swift.

YouTube și alte site-uri

Sunt unele excelente Videoclipuri YouTube care vă ghidează prin elementele fundamentale ale SwiftUI.

Există și alte site-uri cu tutoriale Swift și SwiftUI de înaltă calitate, inclusiv BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee și multe altele - încurajăm cu adevărat oamenii să viziteze o varietate de resurse și să găsească ceea ce funcționează pentru ei.

Educație bazată pe aplicații

Dacă preferați să învățați prin aplicații, vă recomand una care este complet gratuită. AppleLocurile de joacă Swift ale lui app.

Vă permite să învățați Swift direct de pe iPad sau Mac. 

Sunt multe interactive lessdestinate copiilor, dar există și altele mai avansate lesslucruri care vă vor ajuta să vă dezvoltați abilitățile.

Găsirea soluțiilor

În cele din urmă, va trebui să înveți cum să găsești răspunsuri online. Acest lucru ar putea însemna să merg la Stack Overflow, dar sper că nu pentru că nu este un loc deosebit de plăcut.

În schimb, puneți întrebări pe forumurile Hacking with Swift, grupul dvs. favorit Slack, sesiunile iOS Dev Happy Hour, Twitter/X și în alte părți - suntem o comunitate cu adevărat caldă și primitoare, cu mulți oameni dornici să vă ajute să vă atingeți obiectivele.

Implicarea în comunitate

Implicarea în comunitate

Vorbind despre comunitate, aș dori să discut un subiect cu adevărat important care te va ajuta să cunoști oameni în poziții similare cu tine, să înveți mai eficient și să găsești locuri de muncă.

Este o situație de câștig-câștig peste tot.

Subiectul se conectează cu comunitatea de dezvoltare iOS. Aceasta include să știi unde să cauți știri și idei interesante, unde să mergi pentru a întâlni oameni și a împărtăși sfaturi și unde să mergi pentru a pune întrebări.

Pe cine ar trebui să urmăresc pe Twitter?

Să începem cu cel mai simplu, care este să folosești Twitter. Twitter este o modalitate fantastică de a urmări lucrurile care vă interesează și există câteva persoane pe care le-aș recomanda cu căldură în cazul dezvoltării iOS.

Da, acești oameni tweetează despre propria lor muncă, dar cred că sunt grozavi de urmărit, deoarece, de asemenea, tweetează mult despre munca altora – te vor ajuta să vezi o varietate de perspective asupra unui anumit subiect și împărtășesc tot felul de idei interesante și lucruri de încercat.

Iată 9 persoane pe care vi le recomandăm să le urmăriți pe Twitter:

Sean Allen Petrece mult timp pe YouTube realizând videoclipuri de dezvoltare Swift și iOS, dar de asemenea lucrează din greu pentru a răspândi vestea despre munca altora – chiar face o treabă grozavă în a ajuta pe toată lumea să descopere ceva nou în fiecare săptămână.

Antoine van der Lee conduce un site web de dezvoltare iOS la https://www.avanderlee.com, dar împărtășește și câteva link-uri grozave către resurse utile pe care le găsește pe GitHub, buletine informative și multe altele.

Novall Khan lucreaza pentru Apple, dar asta nu o împiedică să posteze în mod regulat videoclipuri despre ceea ce lucrează, ce învață, cu ce are probleme și multe altele – este cu adevărat inspiratoare.

Steve Troughton-Smith este bine-cunoscut pentru munca sa anterioară în care a lucrat cu iOS, dar ar trebui să-l urmăriți cu adevărat pentru gama fantastică de link-uri pe care le împărtășește către lucrări impresionante. Îmi place cum împărtășește progresul dezvoltării propriilor aplicații, astfel încât să le puteți vedea crescând de la început până la sfârșit.

Kaya Thomas este unul dintre cei mai cunoscuți dezvoltatori indie ai comunității noastre și a fost prezentată de Apple de mai multe ori decât pot număra. Ea postează frecvent pe Twitter despre propria muncă și prezentări, dar partajează și linkuri către cărțile pe care le citește, articolele pe care le-a citit și alte resurse.

Majid Jabrayilov nu numai că scrie un blog fantastic Swift și SwiftUI, dar este și un cauciucless promotor al altora – dacă îl urmărești pe Twitter, vei primi idee după idee dintr-o mare varietate de surse.

Donny Wals scrie un blog Swift și, mai recent, cărți despre Combine și Core Data, dar încurajează și oamenii să împărtășească ceea ce lucrează pe Twitter. Chiar și doar citirea acelui thread o dată pe săptămână te va inspira să încerci lucruri noi, așa că cu siguranță ar trebui să-l urmărești pe Donny.

Sommer Panage funcționează pe Appleechipa de accesibilitate a lui, așa că, deși este oarecum limitată în ceea ce poate spune, ea trimite pe Twitter o mulțime de sfaturi de prim rang de la ea și de la alții, pe care toată lumea le poate folosi pentru a crea aplicații mai bune.

Natascha Fadeeva scrie un blog despre dezvoltarea Swift și iOS, inclusiv articole despre Core Data, întrebări de interviu și alte subiecte, dar ea postează și pe Twitter despre lucruri pe care le găsește în altă parte.

Buletine informative și multe altele

Buletine informative și multe altele

Desigur, Twitter nu este singurul loc pentru a rămâne în contact cu comunitatea; există, de asemenea, buletine informative, grupuri Slack, întâlniri Zoom, forumuri, conferințe și alte locații.

Nu vreau să vă plictisesc prea mult, așa că voi enumera doar unul din fiecare aici:

Nu poți greși iOS Dev Weekly pentru buletine informative.

Dacă vrei să postezi pe un forum web, https://www.hackingwithswift.com/forums este destul de bun. Există multe categorii din care să alegeți și oricine, ține contless de nivel de experiență, este binevenit să participe. Ești mai mult decât binevenit să postezi aici întrebările tale pentru începători, crede-mă!

În fiecare lună, Ora fericită pentru dezvoltatori iOS este reținut la un apel de grup Zoom. Adevărata distracție este în sălile de lucru, unde poți discuta cu grupuri de 6 până la 8 persoane simultan. Este foarte distractiv și vei întâlni oameni noi.

Participarea la conferințe a fost dificilă din cauza pandemiei de coronavirus, dar Apple's WWDC a fost un succes imens anul trecut și a fost însoțit de o mulțime de evenimente comunitare.

Un grup de prieteni și cu mine am creat un GitHub depozit pentru a vă ajuta să urmăriți toate celelalte evenimente, articole și alte lucruri care s-au întâmplat – aruncați o privire!

În cele din urmă, dacă preferați să discutați pe Slack unde puteți obține răspunsuri mai repede, vă puteți alătura gratuit Hacking cu grupul Swift Slack și alăturați-vă unuia dintre canalele Swift, SwiftUI și alte canale.

Cât timp durează să înveți iOS?

Aceasta este o întrebare frecventă și pe care vrem să o abordăm chiar acum.

Cât timp durează să treci de la a nu ști nimic despre Swift la a putea obține o poziție de dezvoltator iOS la nivel de intrare?

Răspunsul evident este „depinde”, dar acesta ar fi un polițist în acest caz, așa că haideți să o abordăm în câteva moduri diferite.

Regula de aur este să nu te grăbești

În primul rând, nu puteți urma mai multe cursuri în același timp. Îți amintești ce am spus despre „sindromul obiectului strălucitor”?

Da, mulți oameni cred că pot urma două cursuri în același timp, apoi pot înghesui patru, cinci sau chiar mai multe ore în fiecare zi și au în continuare o înțelegere de înaltă calitate a subiectelor abordate.

Pentru a fi clar, am văzut oameni încercând asta de atâtea ori și întotdeauna eșuează. De fiecare dată.

Nu funcționează niciodată și aud oameni spunând că este pentru că tutorialele au fost proaste sau pentru că Swift a fost prea dificil sau pentru orice alt motiv, în afară de încercarea de a se grăbi prin ceva complex.

Învățarea Swift poate fi uneori dificilă, iar învățarea să construiască aplicații necesită multe încercări și erori, greșeli și cotituri greșite.

Și asta e în regulă – este mai bine decât bine, este fantastic! 

De fiecare dată când încerci ceva, faci o greșeală sau iei o întorsătură greșită, înveți ceva pe parcurs. Când ajungeți în sfârșit la soluție, o veți înțelege mult mai bine.

Deci, TL;DR aici este nu vă grăbiți – luați-vă timp, nu vă fie teamă să explorați tangentele care apar.

Nu vă fie teamă să experimentați cu proiectele dvs. și nu vă fie teamă să vă întoarceți la ceva ce ați învățat anterior și să-l reînvățați după cum este necesar.

Care este mediul tău educațional

Care este pregătirea dvs. educațională?

În al doilea rând, ar trebui să vă luați în considerare antecedentele înainte de a veni la Swift.

Vedeți, a învăța să construiți aplicații necesită o gamă largă de abilități. Dacă aveți o mulțime de cunoștințe anterioare precum version control, structuri de date, algoritmi și multe altele, veți avea un avantaj semnificativ față de cei care sunt începători în informatică în general.

Așadar, iată câteva posibilități pentru unde ați putea fi chiar acum:

Dacă aveți o diplomă în informatică, veți fi deja familiarizat cu multe dintre elementele fundamentale CS necesare pentru a începe să utilizați Swift.

Variabilele, matricele, buclele, matricele, seturile, funcțiile, OOP și alte concepte vor fi utile în Swift, la fel ca toată munca ta cu structurile de date și algoritmi.

Acest lucru vă poate economisi 4-6 luni de timp de studiu în funcție de disciplinele pe care le-ați studiat și vă va oferi și un avantaj atunci când aplicați pentru locuri de muncă la multe companii.

Dacă nu aveți o diplomă CS, dar ați participat la un bootcamp de codare, veți avea multe dintre elementele fundamentale de care veți avea nevoie pentru a începe să utilizați Swift.

Acest lucru nu vă va oferi același avantaj atunci când aplicați pentru locuri de muncă la acele companii, deoarece adesea se așteaptă la o diplomă doar pentru a bifa o casetă din lista lor de cerințe arbitrare. Dar tot te va economisi trei sau patru luni.

Dacă nu ai o diplomă CS și nu ai participat la un bootcamp, dar ai făcut codificare în timpul liber, vei economisi ceva timp – probabil două luni sau cam așa ceva, în funcție de limba sau de cadrele pe care le folosești .

Ce se întâmplă dacă nu aveți o diplomă CS, nu ați participat la un bootcamp și nu aveți experiență anterioară în codificare?

Apoi aș estima 9 până la 12 luni pentru a trece de la nimic la un loc de muncă la nivel de intrare.

Da, ar putea fi un an întreg de muncă, pe lângă oricare ar fi jobul tău actual cu normă întreagă, și asta doar pentru a obține primul tău loc de muncă ca dezvoltator iOS.

Este întotdeauna același an?

Nu. Dacă aveți experiență anterioară, puteți reduce acest timp la 1 până la 6 luni, așa cum am spus anterior.

Dacă luați cele mai bune numere de ambele părți – 9 luni de la nimic la un loc de muncă la nivel de intrare, plus 6 luni pentru a avea o diplomă CS – asta înseamnă că ați putea fi angajat în doar 3 luni, ceea ce este incredibil.

Deci, nu aveți nevoie de o diplomă CS sau de un bootcamp, dar trebuie să fiți dispus să lucrați din greu.

Permiteți-vă o marjă de libertate

Al treilea punct pe care aș dori să-l subliniez înainte de a trece mai departe este că „este nevoie de atâta timp cât este nevoie”. Îmi place un vers al lui John Lennon care spune: „Viața este ceea ce se întâmplă atunci când ești ocupat să faci alte planuri”.

Nu fi prea dur cu tine dacă rămâi în urmă cu programul tău de învățare sau dacă îți lipsește câteva zile sau chiar câteva săptămâni și așa mai departe.

Atâta timp cât ești rezistent, vei ajunge acolo.

Pregătește-te să aplici

Pregătește-te să aplici

În cele din urmă, dacă sunteți puțin mai departe în călătoria dvs. de învățare iOS și vă gândiți să obțineți primul loc de muncă la nivel de intrare, aș dori să vă îndrept către o colecție masivă de resurse care să vă ajute.

as recomanda Videoclipurile cu sfaturi pentru interviul Swift ale lui Sean Allen.

El are o listă de redare întreagă pentru ei în care puteți lucra prin discuții individuale, cum ar fi clase vs structuri, programare funcțională, gestionarea erorilor și multe altele.

Niciuna dintre ele nu este deosebit de lungă, dar toate sunt concepute pentru a vă oferi abilitățile de care aveți nevoie pentru a performa bine la un interviu.

Unde acum?

Bine, deci am trecut peste abilitățile de bază și de extensie de care veți avea nevoie, greșelile comune de învățare, cursurile pe care le puteți urma, cum să vă conectați cu comunitatea iOS.

Am explicat și cum să vă pregătiți pentru interviul de angajare.

În plus, sper că am demonstrat câte informații sunt disponibile gratuit. 

Da, tentația de a cheltui o sută de dolari sau mai mult pe un curs este puternică. Dar relaxează-te – mișcă-te mai întâi, găsește un impuls și găsește pe cineva care să învețe Swift într-un mod care funcționează pentru tine.

Când vă aflați într-un loc bun și vă simțiți pregătit, mergeți mai departe și cheltuiți niște bani dacă doriți.

Mult noroc în călătoria voastră! 

Despre autor
David Attard
David a lucrat în sau în jurul industriei online și digitale în ultimii 21 de ani. Are o vastă experiență în industriile software și web design folosind WordPress, Joomla și nișele din jurul lor. A lucrat cu agenții de dezvoltare software, companii internaționale de software, agenții de marketing locale și acum este șeful operațiunilor de marketing la Aphex Media - o agenție SEO. În calitate de consultant digital, se concentrează pe a ajuta companiile să obțină un avantaj competitiv folosind o combinație a site-ului lor web și a platformelor digitale disponibile astăzi. Combinația sa de experiență tehnologică, combinată cu o puternică perspicacitate în afaceri, aduce un avantaj competitiv scrierilor sale.

Inca un lucru... Știați că și persoanele care împărtășesc lucruri utile precum această postare arată MĂRĂTOARE? ;-)
Te rugăm să ne contactezi lasa un util comentează cu gândurile tale, apoi împărtășește acest lucru grupurilor tale de Facebook care ar găsi acest lucru util și să profităm împreună de beneficii. Vă mulțumim că ați împărtășit și ați fost drăguți!

Dezvaluirea: Această pagină poate conține linkuri către site-uri externe pentru produse pe care le iubim și le recomandăm din toată inima. Dacă cumpărați produse pe care vi le sugerăm, este posibil să câștigăm o taxă de recomandare. Astfel de taxe nu influențează recomandările noastre și nu acceptăm plăți pentru recenzii pozitive.

Autor (i) prezentat (e) pe:  Logo-ul revistei Inc   Sigla Sitepoint   Logo CSS Tricks    sigla webdesignerdepot   Sigla WPMU DEV   si multe altele ...