Sådan bliver du iOS-udvikler - The Ultimate Guide (2024)

ios udvikler

I denne artikel vil vi gennemgå, hvad vi mener, der skal til for at blive en iOS-udvikler. 

Vi retter denne vejledning direkte mod to grupper af mennesker:

  • Absolut Swift-begyndere (Swift er det sprog, der bruges til at kode iOS-apps) – folk, der aldrig har bygget noget til iOS før.
  • Og folk, der har prøvet at lære Swift før, men aldrig rigtig nåede deres mål om at få et fuldtidsjob.

Regardless af dit nuværende niveau, er målet her det samme. For at sætte dig i stand til at ansøge om en junior iOS -udviklerrolle hos en virksomhed.

Vi vil se på de færdigheder, du bør lære, de kurser, du kan tage, hvordan du får forbindelse til fællesskabet, almindelige fejl, folk begår og meget mere. 

Det bedste af det hele er, at alt, hvad vi diskuterer, vil være helt gratis.

Alvorligt, alt for mange mennesker tror, ​​at at bruge mange penge vil sætte dem på den hurtige vej til deres drømmejob, når de vigtigste faktorer er beslutsomhed og viljestyrke.

Denne artikel er opdelt i syv afsnit:

  1. Kernekompetencer, som du skal have for at få et job.
  2. Færdigheder, der er rart at have for at adskille dig fra mængden
  3. Almindelige fejl, som folk begår, når de forsøger at lære.
  4. De mange gratis ressourcer, der er tilgængelige for at hjælpe dig med at lære Swift.
  5. Sådan kommer du i kontakt med iOS -udviklingssamfundet.
  6. Et skøn over hvor lang tid det vil tage at nå dit mål.
  7. Gør dig klar til at søge dit første job.

Læs hele indlægget eller spring direkte til den information, du leder efter, det er helt op til dig!

De grundlæggende færdigheder, der kræves for at blive en iOS -udvikler

Hvad er en iOS-udvikler?

En iOS-udvikler arbejder på apps til Apple række telefoner. iOS er specifikt til iPhone, og du vil primært arbejde med spil og apps til den telefon.

Du kan være involveret i:

  • Design og planlægning af apps
  • Skrive kode og udvikle apps
  • Udførelse af vedligeholdelse på apps eller app-servere
  • Identificere problemer og løse dem
  • Udvikling af opdateringer og forbedringer
  • Arbejde med teams på tværs af hele appens livscyklus

Selvom du er specialiseret i et bestemt produkt, er der meget involveret i den gennemsnitlige dag.

Lad os opdele de fem elementer i mindre bidder.

Kernefærdigheder, der kræves for at blive iOS-udvikler

Hvad er det absolutte minimum af færdigheder, der kræves for at få et job i iOS -udvikling? 

Der er fem væsentlige færdigheder, som vi mener, du har brug for som iOS-udvikler:

  1. Hurtig programmering
  2. SwiftUI 
  3. netværk
  4. Arbejde med data
  5. Versionsstyring

Lad os opdele de fem elementer i mindre bidder.

1. At lære Swift

Swift er først på listen. Dette er Apple's centrale programmeringssprog. Det har ingen idé om at vise oplysninger på en iPhones skærm eller downloade data fra internettet. 

Det er simpelthen et sprog som JavaScript eller Python. Det er bare ren kode, som du bruger til at lave variabler, skrive funktioner og så videre.

Swift er kun et par år gammel og gør brug af næsten alle banebrydende funktioner, der er tilgængelige. 

Det betyder, at du kan undgå al den gamle adfærd, der er almindelig på ældre sprog som C++ og Java.

Det betyder også, at den har en række avancerede funktioner, som du kan drage fordel af.

2. SwiftUI

Den anden kernefærdighed, der kræves, er SwiftUI. Det er en Apple ramme, der giver os mulighed for at bruge Swift til at oprette apps til iOS, macOS, tvOS og endda watchOS. 

Hvor Swift er programmeringssproget, leverer SwiftUI værktøjerne til udviklere til at oprette apps.

For at være klar, så er SwiftUI ikke en erstatning for Swift – det er en ramme bygget oven på Swift, der giver os mulighed for at oprette apps.

Du skal kende både Swift og SwiftUI for at få succes.

SwiftUI er en ret ung ramme, den dukkede op første gang i 2014, og den blev udviklet til at erstatte det arkaiske mål C.

På trods af sin unge alder har iOS-fællesskabet taget det helhjertet til sig, fordi det er så nemt at bruge.

Apple har også en ældre ramme til at bygge iOS-apps kaldet UIKit. Hvis du spørger en masse mennesker, om du skal lære SwiftUI eller UIKit først, får du en række svar. 

Vi synes, du skal lære SwiftUI, og her er begrundelsen for, hvorfor du bør prioritere SwiftUI som en kernefærdighed.

SwiftUI er væsentligt nemmere end UIKit, og – det kræver måske en fjerdedel af koden at opnå de samme resultater som UIKit, og der er færre ting at lære undervejs. 

Det betyder, at du får en masse momentum, fordi du kan bygge ting hurtigere, se resultater hurtigere og gentage disse resultater med mere smidighed.

Skabt til Swift

Skabt til Swift

SwiftUI blev skabt til Swift ved at bruge sprogfunktioner til at hjælpe med at undgå problemer og opnå maksimal ydeevne. 

For eksempel, hvis du ændrer nogle data på én skærm i en app, vil SwiftUI automatisk sikre, at de nye data opdateres andre steder i din app, der bruger dem.

Du behøver ikke skrive kode for selv at holde det hele synkroniseret, hvilket typisk er ret komplekst. 

UIKit er skrevet til Apple's ældre sprog, Objective-C. Som et resultat har den alle mulige særheder som følge af dens alder.

SwiftUI er kompatibel med alle Apple's platforme, så du kan bruge det, du lærte på iOS, til at oprette en macOS- eller watchOS -app med næsten identisk kode. 

Selvfølgelig er funktioner såsom Digital Crown eksklusive til en enkelt enhed, den Apple Se, men langt størstedelen af ​​det, du lærer, fungerer på enhver enhed.

Det vigtigste er, at SwiftUI er den retning, tingene går i. 

Hvis du søgte et job for et par år siden, skulle du sandsynligvis kende UIKit. Det faktum, at du læser dette, betyder, at du er meget længere henne i processen. 

Mens UIKit plejede at være mere populært, er SwiftUI nu den dominerende UI-ramme.

Verdens største virksomheder, inkl Apple selv går nu videre med SwiftUI.

Hvornår Apple for nylig lancerede widgets i iOS 14, gjorde de det til et krav, at du bruger SwiftUI.

Netværk og datamanipulation

Den tredje og fjerde færdighed, vi nævnte, var netværk og datamanipulation. Sammenlignet med Swift og SwiftUI er disse ret enkle eller i det mindste simple på det niveau, der kræves for at få et junior iOS-udviklerjob.

Netværk er praksis med at hente data fra internettet eller sende data fra en lokal enhed til en fjernserver.

På en mobilapp er dette en grundlæggende færdighed.

Der er mange metoder til at opnå dette, men det vigtigste at forstå er, hvordan man henter JSON fra en server.

Det er her den anden væsentlige færdighed kommer i spil, nemlig at arbejde med data. 

Igen er der adskillige måder at indlæse og gemme data på. Det absolutte minimum, du skal kunne gøre, er at konvertere de data, du har modtaget fra en server, til information, som din app kan vise.

Så den tredje og fjerde kernefærdighed er uløseligt forbundet.

Hent nogle data fra en server, og konverter dem derefter til oplysninger, der kan vises i din app.

Nogle udviklere joker med, at det at skrive denne type kode er halvdelen af ​​en iOS-udviklers arbejde, og det er helt sikkert rigtigt, at vi er meget afhængige af det.

Version control

Den sidste færdighed koder slet ikke, dens version control, såsom Git. Igen har du ikke brug for meget her, men det er vigtigt, at du er i stand til at offentliggøre din kode et sted offentligt, f.eks. GitHub, så rekrutterere kan se dit arbejde.

Få mennesker i verden forstår virkelig, hvordan Git fungerer, men det er okay – du skal bare vide nok af det grundlæggende for at gemme dine data sikkert og samarbejde med andre.

Så når disse fem lægges sammen, er der to massive - Swift og SwiftUI - samt tre mindre, men vigtige. 

Hvis du bare kan fokusere på disse fem ting uden at blive distraheret, er du godt på vej til dit første iOS -udviklerjob.

Det er det: det er de fem væsentlige færdigheder, som jeg tror, ​​du skal bruge for at være iOS-udvikler!

Der er tusinder af mennesker, der kun har disse færdigheder og kan bygge og sende fantastiske apps i App Store.

Hvad kommer efter det grundlæggende

Hvad kommer efter det grundlæggende?

Når du har mestret de fem kernefærdigheder, vil du være i stand til at sende dine egne apps og arbejde som indie-udvikler. Du kan muligvis også ansøge om junior iOS udviklingsstillinger og arbejde for en virksomhed, hvis det er det, du vil. 

Der er ingen andre særlige kvalifikationer påkrævet - bare søm disse kernefærdigheder, og du får det godt.

Men hvis du har mestret disse færdigheder og ønsker at avancere, er der fem færdigheder mere, vi vil anbefale dig at lære.

Du bliver endnu mere anvendelig, og rækken af ​​apps, du vil være i stand til at bygge, udvides endnu mere.

Evnerne er som følger:

  • UIKit 
  • Kernedata 
  • Validering
  • Test
  • Software arkitektur
  • multithreading

Som før vil vi gerne gennemgå hver af disse mere detaljeret, så du forstår, hvorfor vi synes, de er vigtige – og hvorfor vi opfatter dem som udvidelsesevner snarere end kernefærdigheder.

UIKit

For det første er der UIKit. Dette er Apple's ældre brugergrænseflade-framework, som har været brugt til app-udvikling siden 2008 – hvilket er gammelt i softwaremæssig henseende.

Men det betyder ikke, at UIKit er dårligt. Faktisk, når du vænner dig til, hvordan det fungerer, vil du blive overrasket over, hvor elegant det kan være.

Der er mange grunde til, at UIKit er værd at lære, herunder:

Hundredtusindvis af apps er allerede blevet skrevet i UIKit. Hvis du tilslutter dig en virksomhed, der har en stor, veletableret app, vil du næsten helt sikkert blive bedt om at skrive UIKit-kode for at vedligeholde den.

UIKit er langt mere kraftfuld end SwiftUI - der er mange ting, du kan gøre i UIKit, som i øjeblikket ikke er mulige i SwiftUI.

Ved hjælp af Auto Layout -teknologi kan du oprette ekstremt præcise layout.

Hvis du støder på problemer med din kode, har UIKit flere løsninger end SwiftUI simpelthen fordi den har eksisteret i meget længere tid.

Alt dette får UIKit til at lyde fantastisk, så hvorfor gjorde jeg det til en udvidelsesfærdighed frem for en kernefærdighed? 

Fordi UIKit også har problemer:

Næsten alt er sværere at gøre i UIKit end i SwiftUI, med nogle opgaver, der kræver hundrede gange, hvis ikke mere, kode. 

SwiftUI er designet specifikt til moderne iOS-udvikling, så det gør en masse af de tunge løft for dig.

Fordi UIKit ikke blev skrevet i Swift, har det mange funktioner, som SwiftUI ikke har – mange implicit uindpakkede ekstraudstyr, markering af kode med en speciel @objc attribut for at gøre den tilgængelig for UIKit's Objective-C undermave, og behovet for at bruge protokoller og delegerede for at vise simple data.

Intet ved Auto Layout er automatisk. Faktisk, hvis du nogensinde forsøger at bygge et komplekst layout, kan du have mareridt om Auto Layout.

Det er ekstremt smart, men det er også ekstremt svært nogle steder.

Det er derfor, vi anser UIKit for at være en udvidelsesevne. Det tager betydeligt mere tid og kræfter at lære end SwiftUI, hvilket betyder, at det kræver meget mere beslutsomhed.

Du skal virkelig have lyst til at lære det, ellers bliver du forvirret, keder dig, vred eller potentielt alle tre!

Sikker på, SwiftUI har ikke alle funktionerne i UIKit, men det giver dig mulighed for at gøre hurtige fremskridt og få momentum, før du går videre til UIKit.

 

Håndtering af kernedata

Håndtering af kernedata

Kernedata, Apple's ramme for at arbejde med applikationsdata, er den anden udvidelsesfærdighed, jeg nævnte. 

Kernedata giver dig mulighed for at manipulere data, når du har fået dem, såsom at søge efter specifikke værdier, sortere resultaterne og mere, alt sammen meget effektivt. 

Det kan også nemt oprette forbindelse til iCloud, hvilket sikrer, at brugerdata er synkroniseret på tværs af alle deres enheder.

Kernedata har en række ulemper. Det mest alvorlige er, at det ikke altid er behageligt at arbejde med.

Kernedata er næsten lige så gammel som UIKit, og selvom det fungerede godt i Objective-C, føles det ikke så naturligt i Swift. 

Det integreres godt med SwiftUI, hvilket får det til at føles less mærkeligt, men det er stadig et overraskende komplekst emne.

Ligesom UIKit er Core Data ekstremt populær - hundredtusindvis af apps er blevet bygget med det, og det bruges i mange store og små virksomheder. 

Kernedata, ligesom UIKit, er ekstremt kraftfuld, og mens du kunne genskabe de vigtigste dele af det i din egen kode, hvorfor skulle du så?

Test din kode

Den tredje færdighed på min liste over udvidelser er test. Skrive speciel kode for at sikre, at din primære app -kode fungerer som forventet. 

Test giver os mulighed for at sikre, at vores kode fungerer korrekt, og endnu vigtigere, at den fortsætter med at fungere korrekt, selv efter vi har foretaget væsentlige ændringer.

Test er kritisk og vil hjælpe dig med at skrive software af højere kvalitet. Så hvorfor betragtes det som en udvidelsesevne snarere end en kernefærdighed? 

Det er der tre grunde til:

iOS-fællesskabet er forfærdeligt til at teste, uanset historiske årsager. Mange store apps har ingen test overhovedet, og tragisk nok er en række senior iOS-udviklere næsten stolte af, at de aldrig skriver tests. 

Når du tænker på alle de fantastiske ting, du kan skabe med Apple's værktøjer og rammer virker skrivningstest ikke meget sjov i sammenligning. 

Når du søger et job, kender du Swift og Apple's store rammer vil altid være mere nyttige end at vide, hvordan man skriver test. 

Virksomheder vil foretrække, at du ved, hvordan man bruger SwiftUI, UIKit eller en af ​​de andre store hitters, fordi test er et meget mindre emne.

Så test er vigtigt, test betyder noget, og hvis du vil være en stor overordnet udvikler, skal du lære at skrive gode tests.

Men først efter at du har mestret det grundlæggende i appudvikling – efter at du har haft en vis succes, følt suset med at have din app live i App Store og mestret testning.

Software arkitektur

Software arkitektur

Den fjerde udvidelsesfærdighed, vi gerne vil diskutere, er softwarearkitektur, som handler om, hvordan vi skriver kode. 

Du kommer til at skrive en forfærdelig kode, når du først starter. 

Det er okay, for det er sådan, man lærer. Man starter ikke godt – man bliver god ved at være dårlig i lang tid og lære bedre måder at gøre tingene på med erfaring og eksponering.

Pointen er, at du holder fast i din dårlige kode, indtil du finder ud af, hvordan du gør det bedre. Det er her softwarearkitektur kommer ind.

Ser på gennemprøvede teknikker til at strukturere din kode for at gøre det nemmere at læse, bruge, ændre og vedligeholde i det lange løb. 

Disse teknikker er undertiden afhængige af den måde, Swift fungerer på - sproglige funktioner, der kan bruges til at skrive bedre kode. 

Der er dog adskillige andre teknikker, der fungerer i ethvert programmeringssprog og omtales almindeligvis som designmønstre.

Et vigtigt aspekt af denne færdighed, som du bør begynde at lære, er, hvordan du bryder din kode. 

Hvis du f.eks. Opretter en enkelt skærm i din app, kan den indeholde en login -knap, et billedgalleri og en liste med venner. 

Du bør dog ideelt set adskille hver af disse dele - en login-knapkomponent, en billedgallerikomponent og en vennelistekomponent - så du kan genbruge enhver af disse komponenter i andre dele af din app.

Softwarearkitektur er langt mere subjektiv end de andre færdigheder, vi hidtil har diskuteret. For de andre, såsom SwiftUI, kan du ræsonnere, "Nå, jeg ved, hvordan man laver X, Y og Z, så jeg er sikker på, at jeg er en god SwiftUI-udvikler."

Softwarearkitektur er et meget bredt emne, og der er ofte ingen oplagt "rigtig" måde at løse et problem på.

Det bedste benchmark for det er dette: ser du tilbage på din kode fra seks måneder siden, et år siden og så videre.

At skrive dårlig kode er acceptabelt, hvis det kommer dig tættere på at skrive bedre kode. 

Du vil helt sikkert klø dig i hovedet nogle steder, når du ser tilbage på kode, du skrev for fem år siden, fordi du vil vide mere nu, end du gjorde dengang.

Sådan skal det være.

multithreading

Den sidste udvidelsesevne, vi vil diskutere, er multithreading. Dette er praksis med at få din kode til at gøre mere end én ting ad gangen. 

Multithreading kan være en rigtig smerte, fordi det er svært for vores hjerner at forstå.

Når din kode gør én ting ad gangen, kan vi tænke det lineært igennem, men når to eller tre ting sker på samme tid, potentielt overlappende, kan det virkelig rode med din tankegang.

Så selvom multithreading er en stor færdighed at have, bør du være forsigtig. Dit mål bør være at forstå lige nok af begreberne og koden til at få det til at fungere godt uden at gå for langt. 

For at være ærlig, tror mange udviklere, at multithreading øjeblikkeligt vil få deres kode til at køre tre eller fire gange hurtigere. 

Selvom dette er sandt i nogle tilfælde, vil din kode i mange andre tilfælde køre langsommere, og du bliver nu nødt til at håndtere al den ekstra kodekompleksitet.

“Min specifikke anbefaling er, at du undgår at skrive asynkroniseret/samtidig kode så meget som muligt. Dette kan virke mærkeligt i 2018, men omkostningerne i kompleksitet og ydeevne er høje.

Så lær lidt om, hvordan multithreading fungerer i Swift for at demonstrere, at du forstår begreberne og implementeringen, men ikke gå for langt! ”

David Smith - Apple SwiftUI team

Almindelige fejl, nye iOS -udviklere laver

Almindelige fejl, nye iOS -udviklere laver

På dette tidspunkt har vi listet alle de kerne- og udvidelsesfærdigheder, du skal bruge for at arbejde som fuldtids iOS-udvikler. 

Vi ønsker også at diskutere nogle af de mest almindelige fejl, folk begår, mens de lærer.

Fejl. Jeg ser dem hele tiden og ved, hvordan de sætter folk tilbage.

Der er syv store problemer, som folk står over for. 

  1. Husker alt
  2. Skinnende objekt syndrom 
  3. Lone ulv læring
  4. Brug af beta -software
  5. Kommer an på Apple's dokumentation
  6. At hænge fast i Objective-C
  7. Sigter mod andre sprog

Lad os gå over hver af dem en efter en.

Stop med at prøve at huske alt

Stop med at prøve at huske alt

Det første og langt det mest almindelige problem, som folk støder på, er at forsøge at lære alt udenad.

Ingen husker alt. Ingen kommer i nærheden af ​​at huske alt.

Også selvom du kun overvejer API'erne udgivet af Apple, der må være langt over hundrede tusinde af dem. 

Selvom du begrænser det til kernekomponenterne i appudvikling, ser du stadig på flere hundrede.

Alt sammen arbejder på en meget præcis måde, der kræver meget læring at bruge.

Lær i stedet, hvordan du gør noget nyt, og glem derefter straks, hvordan du gør det igen. 

Så du slår det op, bruger det igen og glemmer det så med det samme.

Så du slår det op en tredje gang og bruger det, og denne gang glemmer du det mest – nogle dele bliver hos dig. 

Denne cyklus fortsætter på ubestemt tid, hvor du hver gang skal henvise til en vejledning eller en anden referencevejledning, indtil det grundlæggende er indgroet i dit sind til det punkt, hvor du kan gøre det uden at rådføre dig med andre.

Hvis du ikke allerede vidste det, er glemme en vigtig del af læringen.

Hver gang du glemmer noget og lærer det igen, synker det dybere og mere grundigt ind i din hjerne.

Når du genlærer noget, skaber din hjerne nye forbindelser med andre ting, du har lært, hvilket hjælper dig med at forstå mere om konteksten af ​​det, du forsøger at gøre. 

Hvis du sætter dig for at lære alt udenad, kommer du til at kæmpe.

I stedet skal du ikke bekymre dig om at glemme ting. At vide, hvor de skal slå dem op, er langt vigtigere end at huske specifik Swift -kode for at opnå noget.

Undgå skinnende objektsyndrom

Det næstmest almindelige problem er "shiny object syndrome."

Det er her, vi finder en tutorial, der virker, og vi begynder at gøre fremskridt. Men efter en uge eller to bemærker vi en anden tutorial-serie, som vi vil følge, og hopper til den i stedet. 

Problemet her er, at mange aspekter af læring er uinteressante. Det er ikke nødvendigvis lærerens skyld. 

Det er bare en kendsgerning at lære at kode – nogle ting giver dig fantastiske resultater med en lille indsats, mens andre tager meget mere tid at forstå, ikke producerer smarte resultater eller kun er en del af et større koncept.

Når du rammer disse stejle indlæringskurver, træder skinnende objektsyndrom ind.

Med så mange gratis tutorials tilgængelige, kan du hoppe til en af ​​dem og genstarte, og du vil være tilbage i den lavvandede ende af poolen og dække lettere dele, du allerede har lært. 

Men, unless det oprindelige kursus valgte et usædvanligt emne at dække, du bliver sandsynligvis nødt til at lære det til sidst, og du forsinker bare det uundgåelige.

Vær opmærksom på skinnende objekt-syndrom.

Når du støder på et problem, så prøv at bede en anden om hjælp og holde ud i stedet for at skifte.

Gå ikke alene

Gå ikke alene

Når vi taler om at spørge en anden, så er det tredje problem, vi ser folk støde på, når de går ensom ulv med deres læring.

De mener, at de er fuldt ud i stand til at lære at bygge iOS-apps ved hjælp af Swift helt alene og har ikke brug for hjælp.

Denne metode fungerer for et meget lille antal mennesker, typisk dem med stor erfaring med andre programmeringssprog eller platforme. 

Men for de fleste mennesker er det en frygtelig oplevelse at lære på denne måde.

Hver fejl eller misforståelse tager fem gange så lang tid at bemærke og derefter løse. Det er ekstremt nemt at miste motivationen, og du går glip af en masse inspiration fra at se andre lykkes.

Hvis du er en naturlig "ensom ulv"-lærer, opfordrer vi dig til at ændre dine måder. 

Del, hvad du lærer, få kontakt med andre, der lærer, og udvikl vanen med at stille spørgsmål. 

Du vil opdage et fantastisk fællesskab af elever, som vil støtte og opmuntre dig. Du vil også blive inspireret af deres arbejde og til gengæld inspirere dem med dit.

Det er fuldstændig transformerende!

Brug ikke betaversioner

Det fjerde store problem er, når folk insisterer på at bruge betaversioner af Appleudviklingsværktøjer. 

Hvert år, Apple udgiver et nyt iOS, et nyt macOS og andre produkter, der altid leverer spændende nye ting, som vi kan prøve.

Det er naturligt, at folk ønsker at lære det nyeste og bedste, især hvis de ved, at Swift har en lang historie med forandring.

Men når folk forsøger at lære med betasoftware, støder de ind i en række problemer:

Fordi tutorials ikke er blevet opdateret til betaversionen, er det ikke altid muligt at følge deres instruktioner eller mislykkes.

Bugs er almindelige i betas, især dem, der frigives til større iOS -opdateringer.

Apples beta-frameworks tager tid at stabilisere sig, hvilket betyder, at kode, der fungerede i beta 1, muligvis ikke virker i beta 3.

Så selvom det er spændende at lære nye ting, og du måske tror, ​​at du kommer foran spillet med nye funktioner, er det normalt ikke det værd. 

Brug altid de seneste offentlige udgivelser af Apple's udviklerværktøjer, indtil du er fortrolig med dem.

Stol på officiel dokumentation

Stol på officiel dokumentation

Det femte store problem, som folk står over for, når de forsøger at lære, er at stole på Apple's dokumentation. 

Apple's udviklerpublikationsteam arbejder hårdt på at dokumentere så meget som muligt fra virksomhedens brede vifte af rammer

Men deres hovedopgave er at skrive referencemateriale – ting du læser, når du prøver at bruge et bestemt stykke af deres værktøjer – i stedet for at skabe et struktureret kursus, der hjælper dig med at lære at bygge iOS-apps.

Vi har mistet tallet på antallet af gange, folk har spurgt: "Hvordan kan jeg lære Swift?" kun for at få at vide, "Læs Appleer en hurtig referencevejledning. " 

Denne tilgang virker for nogle mennesker. 

Men for de fleste mennesker er det som at prøve at lære et menneskeligt sprog ved at læse en ordbog.

Dokumenterne er beregnet til at dække alt på sproget i stedet for at lære dig de vigtigste dele og hvordan du anvender dem.

Så hvis du har stor erfaring med andre sprog, læsning Apple's referencevejledninger kan være nyttige. Men hvis du lige er startet, vil du måske besøge dem igen efter et par måneder.

At hænge fast i Objective-C

Det sjette store problem, som folk står over for, er forsøget på at lære Objective-C.

Dette var Apple's primære udviklingssprog før introduktionen af ​​Swift. Mens der er rester i nogle gamle kodebaser, er langt størstedelen af ​​eksisterende kode nu Swift, og næsten al ny kode er også Swift.

Nogle mennesker bruger år på at skrive Objective-C før Swift og bliver virkelig glade for det. Men den har en ekstrem stejl indlæringskurve og mangler de fleste af Swifts vigtige funktioner. 

Hvornår Apple først annoncerede iPhone SDK, mange mennesker var forfærdede over Objective-C, fordi det var ulig noget andet, der havde set hidtil.

Objective-C og Swift har næsten intet til fælles for en begynder. 

Ja, de deler det samme Apple rammer, men unless du planlægger at arbejde på Apple -det eneste selskab i verden, der stadig producerer store mængder Objective-C-du bør lade Objective-C være i fred og helt koncentrere dig om Swift.

Ignorerer andre sprog

Ignorerer andre sprog

Den sidste store fejl, folk begår, når de lærer Swift, er at afvise andre sprog som ringere end Swift. 

Det mest almindelige mål er JavaScript. Du vil også se folk tage sigte på Python, Java, Ruby, Go og andre sprog, og for hvad?

Det er ikke et løb – disse sprog behøver ikke at tabe, for at Swift kan vinde. Faktisk er Swift og SwiftUI ofte inspireret af andre sprog og rammer.

Hver gang nye sprogfunktioner overvejes, kigger fællesskabet på lignende implementeringer i Rust, Python, Haskell og andre sprog, og SwiftUI er stærkt påvirket af JavaScript React rammer.

iOS udviklingsressourcer og kurser

iOS udviklingsressourcer og kurser

Nu til den del, som de fleste mennesker er interesserede i. Hvilke ressourcer skal du bruge til at lære Swift, SwiftUI og mere – for at nå dit mål om at blive iOS-udvikler?

Der er mange derude, og Swift-fællesskabet har en så forskelligartet gruppe mennesker, der deler deres viden. 

Men i denne artikel vil vi fokusere på gratis ressourcer – steder, hvor du kan lære at bygge fantastiske apps uden at bruge en krone.

Dette skyldes to faktorer:

  1. Nogle mennesker mener, at jo højere prisen på et Swift-kursus er, jo bedre skal det være.
  2. Mange websteder, såsom Udemy, er afhængige af at sælge et stort antal billige kurser, overbevist om, at hvis du ikke kan lide en, vil du bare købe en anden. De har også en forretningsmodel som Steams, idet der er konstant salg, hvilket tilskynder folk til at samle et stort antal kurser for at studere "en dag."

Så her lister vi kun gratis ressourcer, så du ikke bruger hundrede dollars eller mere på dit første kursus, og ikke køber et dusin billige kurser, fordi du tænker, at det vil gøre dig til en udvikler.

Vejledninger

At begynde, Apple har to store ressourcer, der kan hjælpe dig. Den første er dens Undervisningskodeks internet side.

Den indeholder elever og lærerressourcer til at lære Swift fra bunden, helt op til professionelle certificeringer. 

Deres pensum er omfattende, så det kan tage noget tid at finde det bedste indgangspunkt for dig, men når du er der, finder du masser at udforske.

Sekund, Apple har en serie af SwiftUI tutorials som leder dig gennem processen med at skabe apps fra den virkelige verden. Disse lærer dog ikke Swift, så du skal først gennemføre deres Swift-fokuserede læseplan.

YouTube og andre websteder

Der er nogle fremragende YouTube-videoer, der leder dig gennem det grundlæggende i SwiftUI.

Der er andre websteder med Swift- og SwiftUI-vejledninger af høj kvalitet, inklusive BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee og flere – vi opfordrer virkelig folk til at besøge en række forskellige ressourcer og finde, hvad der virker for dem.

App-baseret uddannelse

Hvis du foretrækker at lære gennem apps, anbefaler jeg en, der er helt gratis. Apple's Swift Playgrounds ca.

Det giver dig mulighed for at lære Swift direkte fra din iPad eller Mac. 

Der er mange interaktive lessrettet mod børn, men der er også nogle mere avancerede lessder hjælper dig med at fremme dine færdigheder.

Finde løsninger

Endelig skal du lære at finde svar online. Dette kunne betyde, at du går til Stack Overflow, men jeg håber ikke, fordi det ikke er et særligt behageligt sted.

Stil i stedet spørgsmål på Hacking with Swift-foraene, din foretrukne Slack-gruppe, iOS Dev Happy Hour-sessionerne, Twitter/X og andre steder – vi er et virkelig varmt, imødekommende fællesskab med mange mennesker, der er ivrige efter at hjælpe dig med at nå dine mål.

At involvere sig i fællesskabet

At involvere sig i fællesskabet

Når vi taler om fællesskab, vil jeg gerne diskutere et virkelig vigtigt emne, der vil hjælpe dig med at møde mennesker i lignende positioner som dig, lære mere effektivt og finde jobåbninger.

Det er en win-win situation hele vejen rundt.

Emnet forbinder med iOS-udviklingsfællesskabet. Dette inkluderer at vide, hvor man skal lede efter nyheder og interessante ideer, hvor man skal henvende sig for at møde folk og dele tips, og hvor man skal henvende sig for at stille spørgsmål.

Hvem skal jeg følge på Twitter?

Lad os starte med det enkleste, nemlig at bruge Twitter. Twitter er en fantastisk måde at følge ting, der interesserer dig, og der er et par personer, jeg vil varmt anbefale i tilfælde af iOS -udvikling.

Ja, disse mennesker tweeter om deres eget arbejde, men jeg synes, de er gode at følge, fordi de også tweeter meget om andres arbejde - de hjælper dig med at se forskellige perspektiver på et bestemt emne, og de deler alle slags interessante ideer og ting at prøve.

Her er 9 personer, vi anbefaler, at du følger på Twitter:

Sean Allen bruger meget tid på YouTube på at lave Swift- og iOS-udviklingsvideoer, men han arbejder også rigtig hårdt på at sprede budskabet om andres arbejde – han gør virkelig et godt stykke arbejde med at hjælpe alle med at opdage noget nyt hver uge.

Antoine van der Lee driver et iOS-udviklingswebsted på https://www.avanderlee.com, men han deler også nogle gode links til nyttige ressourcer, han finder på GitHub, nyhedsbreve og mere.

Novall Khan arbejder for Apple, men det forhindrer hende ikke i at poste videoer med jævne mellemrum om, hvad hun arbejder med, hvad hun lærer, hvad hun har problemer med og meget mere – hun er virkelig inspirerende.

Steve Troughton-Smith er kendt for sit tidligere arbejde med at arbejde med iOS, men du bør virkelig følge ham for det fantastiske udvalg af links, han deler til imponerende arbejde. Jeg kan godt lide, hvordan han deler udviklingen af ​​sine egne apps, så du kan se dem vokse fra start til slut.

Kaja Thomas er en af ​​vores fællesskabs mest kendte indie-udviklere, og hun er blevet fremhævet af Apple flere gange end jeg kan tælle. Hun tweeter ofte om sit eget arbejde og præsentationer, men hun deler også links til bøger, hun læser, artikler hun har læst og andre ressourcer.

Majid Jabrayilov ikke bare skriver en fantastisk Swift og SwiftUI blog, men han er også et dækless promotor for andre - hvis du følger ham på Twitter, får du idé efter idé sendt din vej fra en lang række forskellige kilder.

Donny Wals skriver en Swift -blog og for nylig bøger om Kombiner og kernedata, men han opfordrer også folk til at dele, hvad de arbejder med på Twitter. Selv bare at læse den tråd en gang om ugen vil inspirere dig til at prøve nye ting, så du bør helt sikkert følge Donny.

Sommer Panage virker på Apple's tilgængelighedsteam, så selvom hun er lidt begrænset i, hvad hun kan sige, tweeter hun en masse førsteklasses tips fra sig selv og andre, som alle kan bruge til at bygge bedre apps.

Natascha Fadeeva skriver en blog om Swift- og iOS -udvikling, herunder artikler om Core Data, interviewspørgsmål og andre emner, men hun tweeter også om ting, hun finder andre steder.

Nyhedsbreve og mere

Nyhedsbreve og mere

Selvfølgelig er Twitter ikke det eneste sted at holde kontakten med samfundet; der er også nyhedsbreve, Slack-grupper, Zoom-møder, fora, konferencer og andre steder.

Jeg vil ikke kede dig for meget, så jeg vil bare liste en af ​​hver her:

Du kan ikke gå galt med iOS Dev Ugentlig til nyhedsbreve.

Hvis du vil skrive på et webforum, https://www.hackingwithswift.com/forums er ret godt. Der er mange kategorier at vælge imellem, og enhver, hensynless af erfaringsniveau, er velkommen til at deltage. Du er mere end velkommen til at sende dine nybegynder -spørgsmål her, tro mig!

Hver måned, iOS Dev Happy Hour holdes på et Zoom-gruppeopkald. Det virkelig sjove er i breakout-rummene, hvor du kan chatte med grupper på 6 til 8 personer ad gangen. Det er meget sjovt, og du vil møde nye mennesker.

Det har været svært at deltage i konferencer på grund af coronavirus-pandemien, men Apple's WWDC var en stor succes sidste år, og det blev ledsaget af en række fællesarrangementer.

En gruppe venner og jeg oprettede en GitHub repository for at hjælpe med at holde styr på alle de andre begivenheder, artikler og andre ting, der er sket - tag et kig!

Endelig, hvis du foretrækker at chatte på Slack, hvor du hurtigere kan få svar, kan du deltage i gratis Hacking med Swift Slack -gruppen og slut dig til en af ​​Swift, SwiftUI og andre kanaler.

Hvor lang tid tager det at lære iOS?

Dette er et ofte stillet spørgsmål, som vi gerne vil besvare lige nu.

Hvor lang tid tager det at gå fra at vide intet om Swift til at være i stand til at opnå en iOS-udviklerposition på entry-level?

Det åbenlyse svar er "det afhænger af", men det ville være en betjent ude i dette tilfælde, så lad os adressere det på et par forskellige måder.

Den gyldne regel er ikke at skynde sig

Først og fremmest kan du ikke tage flere kurser på samme tid. Kan du huske, hvad jeg sagde om "shiny object syndrome"?

Ja, mange mennesker tror, ​​de kan tage to kurser på samme tid, og derefter proppe i fire, fem eller endda flere timer hver dag og stadig have en forståelse af høj kvalitet af de emner, de dækkede.

For at være klar, har jeg set folk prøve dette så mange gange, og det mislykkes altid. Hver gang.

Det virker aldrig, og jeg hører folk sige, at det er fordi tutorials var dårlige, eller fordi Swift var for svært, eller bogstaveligt talt af enhver anden grund end at prøve at haste igennem noget komplekst.

At lære Swift kan til tider være svært, og at lære at bygge apps kræver en masse forsøg og fejl, begå fejl og tage forkerte drejninger.

Og det er fint – det er bedre end fint, det er fantastisk! 

Hver gang du prøver noget, laver en fejl eller tager en forkert drejning, lærer du noget hen ad vejen. Når du endelig når frem til løsningen, forstår du den meget bedre.

Så TL;DR her er, skynd dig ikke – tag dig god tid, vær ikke bange for at udforske tangenter, der opstår.

Vær ikke bange for at eksperimentere med dine projekter, og vær ikke bange for at gå tilbage til noget, du tidligere har lært, og genlære det efter behov.

Hvad er din uddannelsesmæssige baggrund

Hvad er din uddannelsesmæssige baggrund?

For det andet bør du overveje din baggrund, inden du kommer til Swift.

Du kan se, at lære at bygge apps kræver en bred vifte af færdigheder. Hvis du har et væld af forhåndsviden som f.eks version control, datastrukturer, algoritmer og mere, vil du have en betydelig fordel i forhold til dem, der er nye til datalogi generelt.

Så her er et par muligheder for, hvor du måske er lige nu:

Hvis du har en datamatikeruddannelse, vil du allerede være bekendt med mange af de grundlæggende CS-principper, der er nødvendige for at komme i gang med Swift.

Variabler, arrays, loops, arrays, sæt, funktioner, OOP og andre koncepter vil være nyttige i Swift, ligesom alt dit arbejde med datastrukturer og algoritmer vil være nyttige.

Det kan spare dig for 4-6 måneders studietid afhængig af de fag, du har læst, og det vil også give dig en fordel, når du søger job hos mange virksomheder.

Hvis du ikke har en CS-grad, men har deltaget i en kodende bootcamp, har du mange af de grundlæggende elementer, du skal bruge for at komme i gang med Swift.

Dette vil ikke give dig den samme fordel, når du søger job hos disse virksomheder, fordi de ofte forventer en grad blot for at markere et felt på deres liste over vilkårlige krav. Men det vil stadig spare dig for tre eller fire måneder.

Hvis du ikke har en CS-uddannelse og ikke har deltaget i en bootcamp, men du har kodet i din fritid, sparer du noget tid – sandsynligvis to måneder eller deromkring, afhængigt af sproget eller rammerne du brugte .

Hvad hvis du ikke har en CS-uddannelse, ikke har deltaget i en bootcamp og ikke har tidligere erfaring med kodning?

Så ville jeg estimere 9 til 12 måneder til at gå fra ingenting til et begynderjob.

Ja, det kunne være et helt års arbejde oven i hvad dit nuværende fuldtidsjob er, og det er bare for at få dit første job som iOS-udvikler.

Er det altid samme år?

Nej. Hvis du har tidligere erfaring, kan du skære den tid ned til 1 til 6 måneder, som jeg tidligere har nævnt.

Hvis du tager de bedste tal på begge sider - 9 måneder fra ingenting til et start-level job, plus 6 måneder for at have en CS-uddannelse - betyder det, at du kan blive ansat på kun 3 måneder, hvilket er utroligt.

Så du behøver ikke en CS -grad eller en bootcamp, men du skal være villig til at arbejde hårdt.

Giv dig selv et spillerum

Det tredje punkt, jeg gerne vil komme med, før vi går videre, er, at "det tager så lang tid, som det tager." Jeg elsker en tekst af John Lennon, der lyder: "Livet er, hvad der sker, når du har travlt med at lave andre planer."

Vær ikke for hård ved dig selv, hvis du kommer bagud med din læringsplan, eller hvis du oplever, at du mangler et par dage eller endda et par uger, og så videre.

Så længe du er modstandsdygtig, kommer du dertil.

Gør dig klar til at ansøge

Gør dig klar til at ansøge

Endelig, hvis du er lidt længere fremme i din iOS-læringsrejse og tænker på at få dit første startjob, vil jeg gerne henvise dig til en massiv samling af ressourcer til at hjælpe dig.

Jeg vil anbefale Sean Allens Swift interview tips videoer.

Han har en hel playliste til dem, hvor du kan arbejde gennem individuelle diskussioner såsom klasser vs strukturer, funktionel programmering, fejlhåndtering og mere.

Ingen af ​​dem er særlig lange, men de er alle designet til at give dig de færdigheder, du skal bruge for at klare dig godt i et interview.

Hvor nu?

Okay, så jeg har gennemgået de kerne- og udvidelsesfærdigheder, du har brug for, almindelige læringsfejl, kurser, du kan tage, hvordan du forbinder med iOS-fællesskabet.

Jeg dækkede også, hvordan du forbereder dig til din jobsamtale.

Desuden håber jeg, at jeg har demonstreret, hvor meget information der er tilgængelig gratis. 

Ja, fristelsen til at bruge hundrede dollars eller mere på et kursus er stærk. Men slap af – kom i gang først, find noget momentum, og find en, der underviser Swift på en måde, der fungerer for dig.

Når du er et godt sted og føler dig klar, så gå videre og brug nogle penge, hvis du vil.

Held og lykke på din rejse! 

Om forfatteren
David Attard
David har arbejdet i eller omkring online- og digitalindustrien i de sidste 21 år. Han har stor erfaring i software- og webdesignindustrien ved at bruge WordPress, Joomla og nicher omkring dem. Han har arbejdet med softwareudviklingsbureauer, internationale softwarevirksomheder, lokale marketingbureauer og er nu Head of Marketing Operations hos Aphex Media - et SEO-bureau. Som digital konsulent er hans fokus på at hjælpe virksomheder med at få en konkurrencefordel ved at bruge en kombination af deres hjemmeside og digitale platforme, der er tilgængelige i dag. Hans blanding af teknologisk ekspertise kombineret med et stærkt forretningssans giver hans forfatterskab en konkurrencefordel.

En ting mere... Vidste du, at folk, der deler nyttige ting som dette indlæg, også ser FANTASTISKE ud? ;-)
Vær venlig at forlade a nyttigt kommenter med dine tanker, så del dette på din Facebook-gruppe (r), der ville finde det nyttigt, og lad os høste fordelene sammen. Tak fordi du delte og var god!

Afsløring: Denne side kan indeholde links til eksterne websteder for produkter, som vi elsker og helhjertet anbefaler. Hvis du køber produkter, vi foreslår, tjener vi muligvis et henvisningsgebyr. Sådanne gebyrer påvirker ikke vores anbefalinger, og vi accepterer ikke betalinger for positive anmeldelser.

Forfatter (e) Fremhævet den:  Inc Magazine-logo   Sitepoint-logo   CSS Tricks-logo    webdesignerdepot logo   WPMU DEV-logo   og mange flere ...