Hvordan bli en iOS-utvikler - The Ultimate Guide (2023)

I denne artikkelen skal vi gå gjennom hva vi tror det tar å bli en iOS-utvikler i løpet av de neste månedene. 

Vi sikter denne veiledningen direkte til to grupper mennesker, absolutte Swift-nybegynnere (Swift er språket som brukes til å kode iOS-apper) – folk som aldri har bygget noe for iOS før – og såkalte falske nybegynnere – folk som har prøvde å lære Swift før, men nådde egentlig aldri målet om å få en fulltidsjobb.

Regardless av ditt nåværende nivå, er målet det samme. For å sette deg i stand til å søke om en junior iOS -utviklerrolle i et selskap.

Vi skal se på ferdighetene du bør lære, kursene du kan ta, hvordan du kan koble deg til fellesskapet, vanlige feil folk gjør og mer. 

Det beste av alt er at alt vi diskuterer vil være helt gratis, så du trenger ikke å betale noe for å følge med.

Seriøst, altfor mange tror at å bruke mye penger vil sette dem på sporet til drømmejobben, når de viktigste faktorene er besluttsomhet og viljestyrke. 

Denne artikkelen er delt inn i syv seksjoner:

  1. Kjerneferdigheter du må ha for å få jobb.
  2. Utvidelsesferdigheter som er fine å ha – de som vil skille deg ut fra mengden hvis du anstrenger deg for å lære dem
  3. Vanlige feil folk gjør når de prøver å lære.
  4. De mange gratis ressursene som er tilgjengelige for å hjelpe deg med å lære Swift.
  5. Hvordan komme i kontakt med iOS -utviklingssamfunnet.
  6. Et estimat på hvor lang tid det vil ta å nå målet ditt.
  7. Gjør deg klar til å søke på din første jobb.

De grunnleggende ferdighetene som kreves for å bli en iOS-utviklerGrunnleggende ferdigheter kreves for å bli iOS-utvikler

Hva er det absolutte minimum av ferdigheter som kreves for å få en jobb i iOS -utvikling? 

Det er fem viktige ferdigheter totalt:

  1. Rask programmering
  2. SwiftUI 
  3. nettverk
  4. Arbeider med data
  5. Versjonshåndtering

Denne listen holdes bevisst kort av en rekke årsaker:

Jo mer du lærer, jo mer innser du at det er å lære, så det er lett å bruke så mye tid på å studere og øve at du mister hovedmålet av syne.

Du vil jobbe som en iOS -utvikler, ikke bare sitte og lære nye ting!

Det er nesten sikkert at du blir med i et team som allerede har en app de vil at du skal være med på å utvikle, så unless Hvis du er ekstremt heldig, må de lære deg en hel masse tingless.

Hvis du prøver å stappe inn en hel haug med ekstra emner på forhånd, kaster du sannsynligvis bort tiden din.

To av disse fem tingene er enorme og kompliserte, og du kan bruke måneder på å prøve å vikle hodet rundt dem uten å begi deg noe annet sted.

Viktigst av alt, hvis du får de fem tingene riktig, kan du lage et stort utvalg av apper. Visst, koden din vil ikke være perfekt, men det er greit fordi den eneste måten å skrive god kode er å først skrive mye dårlig kode.

La oss dele de fem elementene ned i mindre biter.

1. Å lære Swift

Swift er først på listen. Dette er Appleer kjerneprogrammeringsspråket. Den har ingen idé om å vise informasjon på en iPhone-skjerm eller laste ned data fra internett. 

Det er ganske enkelt et språk som ligner JavaScript eller Python. Det er bare ren kode du bruker til å lage variabler, skrivefunksjoner og så videre.

Swift er bare noen få år gammel, så den bruker nesten alle banebrytende språkfunksjoner som er tilgjengelige. 

På den ene siden betyr dette at du kan unngå all den gamle atferden som er vanlig i eldre språk som C++ og Java. Det betyr også at den har en rekke avanserte funksjoner som du kan dra nytte av.

Og det er greit. Mange deler av Swift er relativt enkle, mens andre vil ta deg lengre tid å forstå, erfaring og øvelse gjør mester.

2. SwiftUI

Den andre kjerneferdigheten som kreves er SwiftUI, som er en Apple rammeverk som lar oss bruke Swift til å lage apper for iOS, macOS, tvOS og til og med watchOS. 

Så, mens Swift er programmeringsspråket, gir SwiftUI verktøyene for utviklere for å lage apper, for eksempel hvordan du viser bilder, tekst, knapper, tekstbokser, datatabeller og mer. 

For å være klar, SwiftUI er ikke en erstatning for Swift – det er et rammeverk bygget på toppen av Swift som lar oss lage apper. Du må kjenne både Swift og SwiftUI for å lykkes.

Hvis du trodde Swift var ny, har du ikke sett noe ennå! 

SwiftUI er et ganske ungt rammeverk, det dukket først opp i 2014, og det ble utviklet for å erstatte det arkaiske Objective C.

Til tross for sin unge alder, har iOS-fellesskapet omfavnet det helhjertet fordi det er så enkelt å bruke.

Apple har også et eldre rammeverk for å bygge iOS-apper kalt UIKit. Hvis du spør en haug med folk om du bør lære SwiftUI eller UIKit først, vil du få en rekke svar. 

Vi synes du bør lære SwiftUI, og her er begrunnelsen for hvorfor du bør prioritere SwiftUI som en kjerneferdighet.

SwiftUI er betydelig enklere enn UIKit, og – det krever kanskje en fjerdedel av koden for å oppnå de samme resultatene som UIKit, og det er færre ting å lære underveis. 

Dette betyr at du får mye fart fordi du kan bygge ting raskere, se resultater raskere og gjenta disse resultatene med mer smidighet, noe som er ekstremt motiverende mens du lærer.

Laget for Swift

Laget for Swift

SwiftUI ble laget for Swift, og bruker språkfunksjoner for å hjelpe til med å unngå problemer og oppnå maksimal ytelse. 

For eksempel, hvis du endrer noen data på én skjerm i en app, vil SwiftUI automatisk sørge for at de nye dataene oppdateres andre steder i appen din som bruker den – du trenger ikke å skrive kode for å holde alt synkronisert selv, som vanligvis er ganske komplisert. 

UIKit, derimot, ble skrevet for Appleer eldre språk, Objective-C, og har som et resultat alle slags finesser som skyldes alderen.

SwiftUI er kompatibel med alle Appleplattformer, slik at du kan bruke det du lærte på iOS til å lage en macOS- eller watchOS -app med nesten identisk kode. 

Selvfølgelig er funksjoner som Digital Crown eksklusive for en enkelt enhet, den Apple Se, men det store flertallet av det du lærer vil fungere på alle enheter.

Men viktigst av alt, SwiftUI er retningen ting går i. 

Hvis du søkte på en jobb for noen år tilbake, ville du sannsynligvis trenge å kunne UIKit, men det faktum at du leser dette betyr at du er mye lenger i prosessen. 

Mens UIKit pleide å være mer populært, er SwiftUI nå det dominerende UI-rammeverket.

Verdens største selskaper, inkludert Apple selv går nå videre med SwiftUI.

Når Apple nylig lanserte widgets i iOS 14, gjorde de det til et krav at du bruker SwiftUI.

Nettverk og datamanipulering

Den tredje og fjerde ferdigheten vi nevnte var nettverksbygging og datamanipulering. Sammenlignet med Swift og SwiftUI er disse ganske enkle, eller i det minste enkle på nivået som kreves for å få en junior iOS-utviklerjobb.

Nettverk er praksisen med å hente data fra internett eller sende data fra en lokal enhet til en ekstern server. På en mobilapp er dette selvfølgelig en grunnleggende ferdighet.

Det er mange metoder for å oppnå dette, men det viktigste å forstå er hvordan du henter JSON fra en server.

Og det er her den andre essensielle ferdigheten kommer inn i bildet, å jobbe med data. 

Igjen, det er mange måter å laste og lagre data på, men det absolutte minimum du må kunne gjøre er å konvertere dataene du mottok fra en server ved å bruke nettverkskoden din til informasjon som appen din kan vise.

Så den tredje og fjerde kjerneferdigheten er uløselig knyttet til hverandre. Hent noen data fra en server, og konverter dem deretter til informasjon som kan vises i appen din. Noen utviklere spøker med at å skrive denne typen kode er halve jobben til en iOS -utvikler, og det er absolutt sant at vi stoler sterkt på det.

Version control

Den siste ferdigheten er ikke koding i det hele tatt version control, for eksempel Git. Igjen, du trenger ikke mye her, men det er viktig at du kan publisere koden din et sted offentlig, for eksempel GitHub, slik at rekrutterere kan se arbeidet ditt.

Ingen i verden forstår virkelig hvordan Git fungerer, men det er greit – du trenger bare å vite nok av det grunnleggende for å lagre dataene dine trygt og samarbeide med andre.

Så når de fem legges sammen, er det to massive - Swift og SwiftUI - samt tre mindre, men viktige. 

Hvis du bare kan fokusere på de fem tingene uten å bli distrahert, er du godt i gang med din første iOS -utviklerjobb.

Det er det: det er de fem essensielle ferdighetene jeg tror du trenger for å være en iOS-utvikler. 

Det er tusenvis av mennesker som bare har disse ferdighetene og kan bygge og sende fantastiske apper på App Store.

Hva kommer etter det grunnleggende

Hva kommer etter det grunnleggende?

Når du har mestret de fem kjerneferdighetene, kan du sende dine egne apper og jobbe som en indieutvikler, samt søke om yngre iOS -utviklingsstillinger og jobbe for et selskap hvis det er det du vil gjøre. 

Det er ingen andre spesielle kvalifikasjoner som kreves - bare spik disse kjerneferdighetene, så går det bra.

Men hvis du har mestret disse ferdighetene og ønsker å avansere, er det fem flere ferdigheter vi vil anbefale deg å lære. Dette er ferdighetene som vil drive deg fra en god til en fantastisk stilling – du vil bli enda mer ansettbar, og utvalget av apper du kan bygge vil utvide seg ytterligere.

Evnene er som følger:

  • UIKit 
  • Kjernedata 
  • Validering
  • Testing
  • Programvarearkitektur
  • multithreading

Som før vil vi gjerne gå gjennom hver av disse mer detaljert, slik at du forstår hvorfor vi synes de er viktige – og hvorfor vi tenker på dem som utvidelsesferdigheter i stedet for kjerneferdigheter.

UIKit

Først er det UIKit. Dette er Applesitt eldre rammeverk for brukergrensesnitt, som har blitt brukt til apputvikling siden 2008 – det er 14 år gammelt når jeg skriver dette, som er gammelt i programvaretermer. Men det betyr ikke at UIKit er dårlig. Faktisk, når du blir vant til hvordan det fungerer, vil du bli overrasket over hvor elegant det kan være.

Det er mange grunner til at UIKit er verdt å lære, inkludert:

Hundretusenvis av apper har allerede blitt skrevet i UIKit, så hvis du blir med i et selskap som har en stor, veletablert app, vil du nesten helt sikkert bli pålagt å skrive UIKit-kode for å vedlikeholde den appen.

UIKit er langt kraftigere enn SwiftUI - det er mange ting du kan gjøre i UIKit som for øyeblikket ikke er mulig i SwiftUI.

Ved å bruke Auto Layout -teknologien kan du lage ekstremt presise oppsett.

Hvis du får problemer med koden din, har UIKit flere løsninger enn SwiftUI ganske enkelt fordi den har eksistert i mye lengre tid.

Alt dette får UIKit til å høres fantastisk ut, så hvorfor gjorde jeg det til en utvidelsesferdighet i stedet for en kjerneferdighet? 

Fordi UIKit har problemer også:

Nesten alt er vanskeligere å gjøre i UIKit enn i SwiftUI, med noen oppgaver som krever hundre ganger, om ikke mer, kode. 

SwiftUI ble designet spesielt for moderne iOS-utvikling, så det gjør mye av det tunge løftet for deg.

Fordi UIKit ikke ble skrevet i Swift, har den mange funksjoner som SwiftUI ikke har-mange implisitt upakket tilleggsutstyr, som markerer kode med et spesielt @objc-attributt for å gjøre den tilgjengelig for UIKits Objective-C underbelly, og behovet for å bruke protokoller og delegater for å vise enkle data.

Ingenting om Auto Layout er "automatisk" - faktisk, hvis du noen gang prøver å bygge et komplekst layout, kan du ha mareritt om Auto Layout. Det er ekstremt smart, men det er også ekstremt vanskelig noen steder.

Og dette er grunnen til at vi anser UIKit for å være en utvidelsesferdighet: det tar betydelig mer tid og krefter å lære enn SwiftUI, noe som betyr at det krever mye mer besluttsomhet – du må virkelig ønske å lære det, ellers blir du forvirret , lei, sint eller potensielt alle tre. 

Visst, SwiftUI har ikke alle funksjonene i UIKit, men det lar deg gjøre raske fremskritt og få fart før du går videre til UIKit.

Håndtering av kjernedata

Håndtering av kjernedata

Kjernedata, Applerammeverket for å jobbe med applikasjonsdata, er den andre utvidelsesferdigheten jeg nevnte. 

Vi nevnte nettverksbygging og arbeid med data i kjernekompetanse-delen, og det er sant. Med disse ferdighetene på plass, kan du hente hva du vil fra en server og vise det i appen din. 

Kjernedata tar det et skritt videre ved å la deg manipulere disse dataene når du har fått dem, for eksempel å søke etter spesifikke verdier, sortere resultatene og mer, alt veldig effektivt. 

Den kan også enkelt koble til iCloud, og sikre at brukernes data er synkronisert på tvers av alle enhetene deres.

Core Data har en rekke ulemper, hvorav den alvorligste er at det ikke alltid er hyggelig å jobbe med. Core Data er nesten like gammel som UIKit, og selv om det fungerte bra i Objective-C, føles det ikke så naturlig i Swift. 

Den integreres godt med SwiftUI, noe som får den til å føles less merkelig, men det er fortsatt et overraskende komplekst tema.

I likhet med UIKit er Core Data ekstremt populær – hundretusenvis av apper har blitt bygget med den, og den brukes i mange store og små bedrifter. 

Kjernedata, som UIKit, er ekstremt kraftig, og mens du kunne gjenskape de viktigste delene av det i din egen kode, hvorfor skulle du det?

Tester koden din

Den tredje ferdigheten på listen min over utvidelser er testing. Skrive spesialkode for å sikre at hovedappkoden din fungerer som forventet. 

Tester lar oss sikre at koden vår fungerer riktig, og enda viktigere, at den fortsetter å fungere riktig selv etter at vi har gjort betydelige endringer i den.

For eksempel, hvis du endrer 500 linjer med kode for å implementere en ny funksjon og alle testene dine består, er du klar.

Som et resultat er testing kritisk og vil hjelpe deg med å skrive programvare av høyere kvalitet. 

Så hvorfor betraktes det som en utvidelsesferdighet i stedet for en kjerneferdighet? 

Det er tre grunner til dette:

iOS-fellesskapet som helhet er forferdelig til å teste, uansett historiske grunner. Mange store apper har ingen tester i det hele tatt, og tragisk nok er en rekke senior iOS-utviklere nesten stolte over at de aldri skriver tester. 

Når du tenker på alle de fantastiske tingene du kan lage med Applesine verktøy og rammeverk, virker det ikke som mye moro å skrive tester i sammenligning. 

Når du søker jobb, kjenne Swift og AppleDe viktigste rammene vil alltid være mer nyttige enn å vite hvordan man skriver tester. 

Selskaper foretrekker at du vet hvordan du bruker SwiftUI, UIKit eller en av de andre store hitters, fordi testing er et mye mindre tema - det er ikke på langt nær så mange ting å lære.

Så testing er viktig, testing er viktig, og hvis du vil være en god totalutvikler, må du lære å skrive gode tester. Men først etter at du har mestret det grunnleggende innen apputvikling – etter at du har hatt en viss suksess, følt hastverket med å ha appen din live på App Store og mestret testing.

Programvarearkitektur

Programvarearkitektur

Den fjerde utvidelsesferdigheten vi ønsker å diskutere er programvarearkitektur, som egentlig handler om hvordan vi skriver kode. 

Du kommer til å skrive en forferdelig kode når du først starter. 

Det er greit fordi det er slik du lærer. Du starter ikke bra – du blir god ved å være dårlig over lang tid og lære bedre måter å gjøre ting på med erfaring og eksponering.

Poenget er at du holder deg til den dårlige koden din til du finner ut hvordan du kan gjøre det bedre. Det er der programvarearkitektur kommer inn. Ser på velprøvde teknikker for å strukturere koden din for å gjøre det lettere å lese, bruke, endre og vedlikeholde i det lange løp. 

Disse teknikkene er noen ganger avhengige av måten Swift fungerer på - språkfunksjoner som kan brukes til å skrive bedre kode. 

Imidlertid er det mange andre teknikker som fungerer i et hvilket som helst programmeringsspråk, og som ofte refereres til som designmønstre.

Et viktig aspekt ved denne ferdigheten du bør begynne å lære er hvordan du bryter koden din. 

For eksempel, hvis du oppretter en enkelt skjerm i appen din, kan den inneholde en påloggingsknapp, et bildegalleri og en venneliste. 

Imidlertid bør du helst skille hver av disse delene - en påloggingsknappkomponent, en bildegallerikomponent og en vennelistekomponent - slik at du kan gjenbruke noen av disse komponentene i andre deler av appen din.

Programvarearkitektur er langt mer subjektiv enn de andre ferdighetene vi har diskutert så langt. For de andre, for eksempel SwiftUI, kan du resonnere: "Vel, jeg vet hvordan jeg gjør X, Y og Z, så jeg er sikker på at jeg er en god SwiftUI-utvikler."

 Programvarearkitektur er et veldig bredt emne, og det er ofte ingen åpenbar "riktig" måte å løse et problem på, så det beste referansepunktet for det er dette: ser du tilbake på koden for seks måneder siden, for et år siden og så videre .

Å skrive dårlig kode er akseptabelt så lenge det kommer deg nærmere å skrive bedre kode. 

Du vil garantert klø deg i hodet noen steder når du ser tilbake på kode du skrev for fem år siden, fordi du vil vite mer nå enn du gjorde da – og det er slik det skal være.

multithreading

Den siste utvidelsesferdigheten vi vil diskutere er multithreading, som er praksisen med å få koden din til å gjøre mer enn én ting om gangen. 

Multithreading kan være en virkelig smerte fordi det er vanskelig for hjernen vår å forstå. Når koden din gjør én ting om gangen, kan vi tenke gjennom det lineært, men når to eller tre ting skjer samtidig, potensielt overlappende, kan det virkelig rote med tankegangen din.

Så selv om multithreading er en stor ferdighet å ha som en forlengelsesferdighet, bør du være forsiktig. Målet ditt bør være å forstå akkurat nok av konseptene og koden for å få det til å fungere bra uten å gå for langt. 

For å være ærlig, tror mange utviklere at multithreading umiddelbart vil få koden til å kjøre tre eller fire ganger raskere. 

Selv om dette er sant i noen tilfeller, i mange andre tilfeller, vil koden din faktisk kjøre langsommere, og du må nå håndtere all den ekstra kodekompleksiteten.

"Min spesifikke anbefaling er at du unngår å skrive asynkron/samtidig kode så mye som mulig. Dette kan virke rart i 2018, men kostnaden i kompleksitet og ytelse er høy.

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

David Smith - Apple SwiftUI-teamet

Vanlige feil nye iOS -utviklere gjør

Vanlige feil nye iOS -utviklere gjør

På dette tidspunktet har vi listet opp alle kjerne- og utvidelsesferdighetene du trenger for å jobbe som iOS-utvikler på heltid. 

Vi ønsker også å diskutere noen av de vanligste feilene folk gjør mens de lærer, fordi jeg ser dem hele tiden og vet hvordan de setter folk tilbake.

Det er syv store problemer som folk står overfor. 

  1. Husker alt
  2. skinnende objekt syndrom 
  3. Ensom ulv læring
  4. Gjør bruk av beta -programvare
  5. Avhengig Applesin dokumentasjon
  6. Blir fast i Objective-C
  7. Siktet mot andre språk

La oss gå over hver av dem en etter en.

Slutt å prøve å huske alt

Slutt å prøve å huske alt

Det første, og desidert vanligste problemet folk møter, er å prøve å huske alt – å lese gjennom en opplæring og tro at de må huske alt i den utenat. 

Ingen husker alt. Ingen kommer i nærheten av å huske alt. Selv om du bare vurderer API -ene publisert av Apple, som er kodebitene vi kan bruke til å bygge appene våre, må det være godt over hundre tusen tilgjengelig. 

Selv om du begrenser det til kjernekomponentene i apputvikling, ser du fortsatt på flere hundre – alle fungerer på en veldig presis måte som krever mye læring å bruke.

I stedet lærer du hvordan du gjør noe nytt, og deretter glemmer du raskt hvordan du gjør det igjen. 

Så du slår det opp, bruker det igjen og glemmer det umiddelbart. Så du slår det opp en tredje gang og bruker det, og denne gangen glemmer du det stort sett – noen deler blir med deg. 

Denne syklusen fortsetter i det uendelige, med du må referere til en opplæring eller annen referanseveiledning hver gang, inntil det grunnleggende er inngrodd i tankene dine til det punktet hvor du kan gjøre det uten å konsultere noen andre.

Hvis du ikke allerede visste det, er det å glemme en viktig del av læringen. 

Hver gang du glemmer noe og lærer det på nytt, synker det dypere og grundigere ned i hjernen din. Når du lærer noe på nytt, får hjernen din nye forbindelser med andre ting du har lært, noe som hjelper deg å forstå mer om konteksten for det du prøver å gjøre. 

Og hver gang du lærer på nytt, signaliserer du til hjernen din at dette emnet er viktig nok til å lagre i langtidshukommelsen.

Men hvis du legger ut for å huske alt utenat, kommer du til å slite. 

Ikke vær bekymret for å glemme ting i stedet. Å vite hvor du skal slå dem opp er langt viktigere enn å huske spesifikk Swift -kode for å oppnå noe. 

Når du glemmer noe og må lære det på nytt, anser det som en god ting - at informasjonen vil synke dypere andre, tredje og tiende gangen du lærer det, så du hjelper hjernen din.

Unngå skinnende objektsyndrom

Det nest vanligste problemet er "shiny object syndrome", der de finner en opplæringsserie som fungerer bra for dem og begynner å gjøre fremskritt, men etter en uke eller to legger de merke til en annen opplæringsserie som de ønsker å følge og hoppe til. det i stedet. 

Problemet her er at mange aspekter ved å lære noe er uinteressante. Det er ikke nødvendigvis lærerens skyld. 

Det er bare et faktum å lære å kode – noen ting gir deg gode resultater med liten innsats, mens andre tar mye mer tid å forstå, ikke gir fancy resultater, eller bare er en del av et større konsept.

Når du treffer disse bratte læringskurvene, starter shiny object syndrome – med så mange gratis veiledninger tilgjengelig, kan du hoppe til en av dem og starte på nytt, og du vil være tilbake i den grunne enden av bassenget og dekke lettere deler du har allerede lært. 

Men, unless det originale kurset valgte et uvanlig emne å dekke, du må sannsynligvis lære det til slutt, og du utsetter bare det uunngåelige.

Vær oppmerksom på skinnende objekt-syndrom - når du støter på et problem, prøv å be noen andre om hjelp og holde ut i stedet for å bytte.

Ikke gå alene

Ikke gå alene

Når vi snakker om å spørre noen andre, det tredje problemet vi ser folk støter på er når de går ensom ulv med læringen - de tror de er fullt i stand til å lære å bygge iOS-apper ved hjelp av Swift helt alene og trenger ikke hjelp fra andre .

Denne metoden fungerer for et veldig lite antall mennesker, vanligvis de med lang erfaring med andre programmeringsspråk eller plattformer. 

Men for de aller fleste mennesker er det å lære på denne måten en forferdelig opplevelse – hver feil eller misforståelse tar fem ganger så lang tid å løse, det er ekstremt lett å miste motivasjonen, og du går glipp av mye inspirasjon fra å se andre lykkes.

Hvis du er en naturlig "ensom ulv"-lærer, oppfordrer vi deg til å endre måtene dine. 

Del det du lærer, ta kontakt med andre som lærer, og skap en vane med å stille spørsmål. 

Ikke bare vil du oppdage et fantastisk fellesskap av elever som vil støtte og oppmuntre deg, men du vil også bli inspirert av arbeidet deres og på sin side inspirere dem med ditt. Det er fullstendig transformerende.

Ikke bruk betaversjoner

Det fjerde store problemet er når folk insisterer på å bruke betaversjoner av Appleutviklingsverktøy. 

Hvert år, Apple lanserer en ny iOS, en ny macOS og andre produkter, og leverer alltid spennende nye ting som vi kan prøve. Det er naturlig at folk vil lære det siste og det beste, spesielt hvis de vet at Swift har en lang historie med endringer.

Men når folk prøver å lære med betaprogramvare, får de en rekke problemer:

Fordi opplæringen ikke har blitt oppdatert for betaversjonen, vil det ikke alltid være mulig å følge instruksjonene eller mislykkes.

Bugs er vanlige i betaversjoner, spesielt de som er utgitt for store iOS-oppdateringer.

AppleDet tar tid å stabilisere beta -rammeverkene, noe som betyr at kode som fungerte i beta 1 kanskje ikke fungerer i beta 3.

Så selv om det er spennende å lære nye ting, og du kanskje tror du kommer i forkant av spillet med nye funksjoner, stol på meg: det er ikke verdt det. 

Bruk alltid de siste offentlige utgivelsene av Appleutviklerverktøyene til du er komfortabel med dem.

Stol på offisiell dokumentasjon

Stol på offisiell dokumentasjon

Det femte store problemet som folk står overfor når de prøver å lære er å stole på Apple's dokumentasjon. 

AppleUtviklerpublikasjonsteamet jobber hardt med å dokumentere så mye som mulig fra selskapets store utvalg av rammer, men deres viktigste jobb er å skrive referansemateriale - ting du leser når du prøver å bruke en bestemt del av verktøyene deres - i stedet for lage et strukturert kurs for å lære deg å bygge iOS -apper.

Vi har mistet tellingen på antall ganger folk har spurt meg: "Hvordan kan jeg lære meg Swift?" bare for å bli fortalt: "Les Apple's Swift referanseguide. " 

Denne tilnærmingen fungerer for noen mennesker. 

Men for de fleste ligner det på å prøve å lære et menneskespråk ved å lese en ordbok. Den er ment å dekke alt på språket i stedet for å lære deg de viktigste delene og hvordan du bruker dem.

Så hvis du har lang erfaring med andre språk, lesing AppleReferanseveiledningene til kan være nyttige, men hvis du nettopp har begynt, kan det være lurt å se dem på nytt etter noen måneder.

Blir fast i Objective-C

Det sjette store problemet som folk står overfor er å prøve å lære Objective-C. Dette var AppleDet viktigste utviklingsspråket før Swift ble introdusert, og mens det er rester i noen gamle kodebaser, er de aller fleste eksisterende koder nå Swift, og nesten all ny kode er også Swift.

Noen bruker år på å skrive Objective-C før Swift og blir virkelig glad i det, men det har en ekstremt bratt læringskurve og mangler de fleste av Swifts viktige funksjoner. 

Når Apple først annonserte iPhone SDK mange mennesker ble forferdet over Objective-C fordi det var ulikt noe annet som hadde sett så langt.

Objective-C og Swift har nesten ingenting til felles for en nybegynner. 

Ja, de deler det samme Apple rammer, men unless du planlegger å jobbe hos Apple – det eneste selskapet i verden som fortsatt produserer store mengder Objective-C – du bør la Objective-C være i fred og konsentrere deg helt om Swift.

Ignorerer andre språk

Ignorerer andre språk

Den siste store feilen folk gjør når de lærer Swift, er å avfeie andre språk som dårligere enn Swift. 

Det vanligste målet er JavaScript, men du vil også se folk ta sikte på Python, Java, Ruby, Go og andre språk, og for hva? Det er ikke et løp, folkens – disse språkene trenger ikke å tape for at Swift skal vinne.

Faktisk er Swift og SwiftUI ofte inspirert av andre språk og rammeverk – hver gang nye språkfunksjoner vurderes, ser fellesskapet på lignende implementeringer i Rust, Python, Haskell og andre språk, og SwiftUI er sterkt påvirket av JavaScript. React rammeverk. 

Så folk i samfunnet hevder at SwiftUI er JavaScript-fri eller noe lignende - ingenting kan være lenger fra sannheten.

iOS -utviklingsressurser og -kurser

iOS -utviklingsressurser og -kurser

Nå til den delen som folk flest er interessert i: hva er de faktiske ressursene du bør bruke for å lære Swift, SwiftUI og mer – for å nå målet ditt om å bli en iOS-utvikler?

Det er mange der ute, og Swift-samfunnet har en så mangfoldig gruppe mennesker som deler kunnskapen sin. 

I denne artikkelen skal vi imidlertid fokusere på gratisressurser – steder hvor du kan lære å bygge fantastiske apper uten å bruke en krone.

Dette skyldes to faktorer:

  1. Noen mennesker tror at jo høyere pris på et Swift -kurs, jo bedre må det være, så de ender med å betale ublu priser uten å få tilstrekkelig fordel.
  2. Mange nettsteder, som Udemy, er avhengige av å selge et stort antall rimelige kurs, og er sikre på at hvis du ikke liker ett, vil du bare kjøpe et annet. De har også en forretningsmodell som ligner på Steams ved at det er konstant salg, og oppmuntrer folk til å samle et stort antall kurs for å studere «en dag».

Så, her viser vi bare gratis ressurser, slik at du ikke bruker hundre dollar eller mer på det første kurset ditt, og ikke kjøper et dusin billige kurs med tanke på at det vil gjøre deg til en utvikler.

Guider

Å begynne, Apple har to store ressurser som kan hjelpe deg. Den første er nettstedet Teaching Code, som inneholder student- og lærerressurser for å lære Swift fra grunnen av, helt opp til profesjonelle sertifiseringer. 

Læreplanen deres er omfattende, så det kan ta litt tid å finne det beste inngangspunktet for deg, men når du er der, finner du mye å utforske.

For det andre, Apple har en serie SwiftUI-veiledninger som leder deg gjennom prosessen med å lage apper fra den virkelige verden. Disse lærer imidlertid ikke Swift, så du må først fullføre deres Swift-fokuserte læreplan.

Apple publiserer også en veiledning spesifikt for programmeringsspråket Swift, men det er en god sjanse for at det ikke vil fungere for deg – det er ment som en referanse i stedet for en strukturert opplæring, så det er ganske tett lesing.

Hva Appleopplæringen ikke gjør er å prøve å tilby en strukturert metode for læring. 

YouTube og andre nettsteder

Det er noen utmerkede YouTube-videoer som leder deg gjennom det grunnleggende ved SwiftUI, for eksempel:

, der han leder deg gjennom prosessen med å lage et spilleautomater fra bunnen av.

forklarer fem SwiftUI -konsepter som alle bør lære når de begynner å programmere.

som har både Swift og SwiftUI mens du tar spørsmål fra publikum.

Det finnes andre nettsteder med Swift- og SwiftUI-opplæringer av høy kvalitet, inkludert BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee og flere – vi oppfordrer virkelig folk til å besøke en rekke ressurser og finne det som fungerer for dem.

App-basert utdanning

Hvis du foretrekker å lære gjennom apper, anbefaler jeg to som begge er helt gratis. Den første er Apple's Swift Playgrounds -app, som lar deg lære Swift direkte fra iPad eller Mac. 

Det er mange interaktive lessrettet mot barn, men det er også noen mer avanserte lesssom hjelper deg med å fremme dine ferdigheter.

Den andre appen heter Unwrap, og den ble laget av meg. Unwrap er kompatibel med alle iPhones og iPads og lar deg lære, gjennomgå og øve på Swift grunnleggende gjennom videoer, tester og andre verktøy. Den dekker alt det grunnleggende i Swift og kompletterer 100 Days of SwiftUI-pensumet perfekt.

Å skaffe løsninger

Til slutt må du lære hvordan du finner svar på nettet. Dette kan bety å gå til Stack Overflow, men jeg håper det ikke fordi det ikke er et spesielt hyggelig sted.

Still i stedet spørsmål om forumene for hacking med Swift, din favoritt Slack -gruppe, iOS Dev Happy Hour -økter, Twitter og andre steder - vi er et virkelig varmt og innbydende fellesskap med mange mennesker som er ivrige etter å hjelpe deg med å nå dine mål.

Engasjere seg i samfunnet

Engasjere seg i samfunnet

Når vi snakker om samfunnet vårt, vil jeg gjerne diskutere et veldig viktig emne som vil hjelpe deg å møte mennesker i lignende stillinger som deg, lære mer effektivt og finne ledige stillinger – det er en vinn-vinn-situasjon.

Emnet er i kontakt med iOS -utviklingssamfunnet. Dette inkluderer å vite hvor du skal lete etter nyheter og interessante ideer, hvor du skal dra for å møte mennesker og dele tips, og hvor du kan gå for å stille spørsmål.

Hvem skal jeg følge på Twitter?

La oss starte med det enkleste, det vil si å bruke Twitter. Twitter er en fantastisk måte å følge ting som interesserer deg, og det er noen få mennesker jeg vil anbefale på det sterkeste når det gjelder iOS -utvikling.

Ja, disse menneskene twitrer om sitt eget arbeid, men jeg synes de er flotte å følge fordi de også twitrer mye om andres arbeid - de vil hjelpe deg med å se en rekke perspektiver på et bestemt emne, og de deler alle slags interessante ideer og ting å prøve.

Her er 9 personer vi anbefaler deg å følge på Twitter:

Sean Allen bruker mye tid på YouTube til å lage Swift- og iOS -utviklingsvideoer, men han jobber også veldig hardt med å spre ordet om andres arbeid - han gjør virkelig en god jobb med å hjelpe alle med å oppdage noe nytt hver uke.

Antoine van der Lee driver et utviklingsnettsted for iOS på https://www.avanderlee.com, men han deler også noen gode lenker til nyttige ressurser han finner på GitHub, nyhetsbrev og mer.

Novall Khan jobber for Apple, men det hindrer henne ikke i å legge ut videoer med jevne mellomrom om hva hun jobber med, hva hun lærer, hva hun har problemer med og mer - hun er virkelig inspirerende.

Steve Troughton-Smith er kjent for sitt tidligere arbeid med iOS, men du bør virkelig følge ham for det fantastiske utvalget av lenker han deler til imponerende arbeid. Jeg liker hvordan han deler utviklingsfremgangen til sine egne apper, slik at du kan se dem vokse fra begynnelse til slutt.

Kaya Thomas er en av samfunnets mest kjente indieutviklere, og hun har blitt omtalt av Apple flere ganger enn jeg kan telle. Hun tweeter ofte om sitt eget arbeid og presentasjoner, men hun deler også lenker til bøker hun leser, artikler hun har lest og andre ressurser.

Majid Jabrayilov ikke bare skriver en fantastisk Swift og SwiftUI blogg, men han er også et dekkless promoter for andre - hvis du følger ham på Twitter, får du idé etter idé sendt fra mange forskjellige kilder.

Donny Wals skriver en Swift -blogg og nylig bøker om Kombiner og kjernedata, men han oppfordrer også folk til å dele det de jobber med på Twitter. Selv å bare lese den tråden en gang i uken vil inspirere deg til å prøve nye ting, så du bør definitivt følge Donny.

Sommer Panage fungerer på Appleer tilgjengelighetsteamet, så selv om hun er litt begrenset i det hun kan si, tweeter hun ut mange førsteklasses tips fra seg selv og andre som alle kan bruke til å bygge bedre apper.

Natascha Fadeeva skriver en blogg om Swift og iOS -utvikling, inkludert artikler om kjernedata, intervjuspørsmål og andre emner, men hun tweeter også om ting hun finner andre steder.

Nyhetsbrev og mer

Nyhetsbrev og mer

Selvfølgelig er Twitter ikke det eneste stedet å holde kontakten med samfunnet; Det er også nyhetsbrev, Slack -grupper, Zoom -møter, fora, konferanser og andre arenaer. Jeg vil ikke kjede deg for mye, så jeg vil bare liste en av hver her:

Du kan ikke gå galt med iOS Dev Ukentlig for nyhetsbrev. Mens jeg skriver dette, har det nettopp passert 500 nummer, en hver uke, som jeg tror forteller deg alt du trenger å vite om hvor viktig det er.

Hvis du vil legge ut på et webforum, https://www.hackingwithswift.com/forums er ganske bra. Det er mange kategorier å velge mellom, og alle, ta hensynless av erfaringsnivå, er velkommen til å delta. Du er mer enn velkommen til å legge ut nybegynnerspørsmålene dine her, tro meg!

Hver måned, iOS Dev Happy Hour holdes på en Zoom-gruppesamtale med over 300 personer, men den virkelige moroa er i grupperom, hvor du kan chatte med grupper på 6 til 8 personer om gangen. Det er veldig gøy, og du vil møte nye mennesker.

Det har vært vanskelig å delta på konferanser på grunn av koronaviruspandemien, men Apple's WWDC var en stor suksess i fjor, og det ble ledsaget av en rekke samfunnsarrangementer. En gruppe venner og jeg opprettet en GitHub repository for å holde styr på alle andre hendelser, artikler og andre ting som har skjedd – ta en titt!

Til slutt, hvis du foretrekker å chatte på Slack hvor du kan få svar raskere, kan du bli med gratis Hacking med Swift Slack -gruppen og bli med i en av Swift, SwiftUI og andre kanaler.

Hvor lang tid tar det å lære iOS?

Dette er mitt vanlige spørsmål: Hvor lang tid tar det å gå fra jeg ikke vet noe om Swift til å kunne få en iOS-utviklerposisjon på inngangsnivå?

Det åpenbare svaret er "det avhenger", men det ville være en politimann i denne saken, så la meg ta det opp på noen forskjellige måter.

Den gylne regelen er å ikke skynde seg

Først og fremst kan du ikke ta flere kurs samtidig. Husker du hva jeg sa om "skinnende objektsyndrom"? Ja, mange tror at de kan ta to kurs samtidig, for deretter å stappe i fire, fem eller enda flere timer hver dag, og fortsatt ha en høy kvalitet på temaene de dekker.

For å være tydelig har jeg sett folk prøve dette så mange ganger, og det mislykkes alltid. Hver gang - det fungerer aldri, og jeg hører folk si at det er fordi opplæringen var dårlig, eller fordi Swift var for vanskelig, eller av bokstavelig talt en annen grunn enn å prøve å skynde seg gjennom noe komplekst.

Det kan til tider være vanskelig å lære Swift, og å lære å bygge apper krever mye prøving og feiling, feil og ta feil svinger. Og det er greit – det er bedre enn greit, det er fantastisk! 

For hver gang du prøver noe, gjør en feil eller tar feil, lærer du noe underveis, og når du endelig kommer frem til løsningen, vil du forstå det mye bedre.

Så, TL; DR her er ikke rush - ta deg tid, ikke vær redd for å utforske tangenter som oppstår, ikke vær redd for å eksperimentere med prosjektene dine, og ikke vær redd for å gå tilbake til noe du har lært tidligere og lærer det på nytt etter behov.

Hva er din utdanningsbakgrunn

Hva er din utdanningsbakgrunn?

For det andre bør du vurdere bakgrunnen din før du kommer til Swift. Du skjønner, å lære å bygge apper krever et bredt spekter av ferdigheter, og hvis du kommer til bordet med et vell av forkunnskaper som f.eks. version control, datastrukturer, algoritmer og mer, vil du ha en betydelig fordel i forhold til de som er nye innen informatikk generelt, så vel som Swift og andre Apple rammer.

Så, her er noen muligheter for hvor du kan være akkurat nå:

Hvis du har en informatikk -grad, vil du allerede være kjent med mange av de grunnleggende CS -elementene som trengs for å komme i gang med Swift. Variabler, matriser, sløyfer, matriser, sett, funksjoner, OOP og andre konsepter vil være nyttige i Swift, det samme vil alt arbeidet ditt med datastrukturer og algoritmer. Dette kan spare deg for 4-6 måneders studietid, avhengig av fagene du studerte, og det vil også gi deg en fordel når du søker på jobber i mange selskaper.

Hvis du ikke har en CS-grad, men har deltatt på en koding-bootcamp, vil du ha mange av det grunnleggende du trenger for å komme i gang med Swift. Dette vil ikke gi deg den samme fordelen når du søker på jobber hos disse selskapene fordi de ofte forventer en grad bare for å merke av i en boks på listen over vilkårlige krav, men det vil fortsatt spare deg for tre eller fire måneder.

Hvis du ikke har en CS -grad og ikke deltok på en bootcamp, men du har kodet på fritiden, sparer du litt tid - sannsynligvis to måneder eller så, avhengig av språket eller rammene du brukte .

Hva om du ikke har en CS-grad, ikke har deltatt på en bootcamp og ikke har noen tidligere erfaring med koding? Da anslår jeg 9 til 12 måneder å gå fra ingenting til en nybegynnerjobb. Ja, det kan være et helt års arbeid på toppen av hva din nåværende heltidsjobb er, og det er bare for å få din første jobb som iOS-utvikler.

Er det alltid samme år? Nei. Hvis du har tidligere erfaring, kan du kutte den tiden ned til 1 til 6 måneder, som jeg tidligere sa. Hvis du tar de beste tallene på begge sider – 9 måneder fra ingenting til en nybegynnerjobb, pluss 6 måneder for å ha en CS-grad – betyr det at du kan ansettes på bare 3 måneder, noe som er utrolig.

Du tror kanskje at det er umulig å finne din første jobb på tre måneder, men det er det ikke. Pokker, jeg møtte noen som tok 100 Days of Swift-kurset mitt og fikk jobb før dag 50 – de hadde allerede lært nok om apputvikling i less enn to måneder fordi de anstrenger seg for å få hver dag til å telle.

Så du trenger ikke en CS-grad eller en bootcamp, men du må være villig til å jobbe hardt.

Gi deg selv litt spillerom

Det tredje poenget jeg vil komme med før vi går videre er at «det tar så lang tid det tar». Jeg elsker en tekst av John Lennon som sier: "Livet er det som skjer når du er opptatt med å lage andre planer."

Det er fantastisk hvis du har store læringsplaner og store drømmer for jobben du vil ha, men noen ganger er du sliten, noen ganger er du stresset, noen ganger lekker taket ditt eller hunden din trenger å gå til veterinæren eller barna dine trenger ekstra hjelpe med leksene sine, eller hva som helst, og det er bare livet. 

Så ikke vær for hard mot deg selv hvis du faller etter med læringsplanen din, eller hvis du mangler noen dager eller noen få uker, og så videre - så lenge du er motstandsdyktig, får du der.

Det er fantastisk hvis du jobber hardt og får jobb etter 50 dager – godt gjort! Hvis det tar deg 500 dager, er det også fantastisk, og du bør være like stolt av deg selv. Pokker, hvis det tar deg fem år, er jeg sikker på at det ikke er det du ønsket, men sluttresultatet er det samme, og det er alt som betyr noe.

Gjør deg klar til å søke

Gjør deg klar til å søke

Sist, men ikke minst, hvis du er litt lengre på din iOS-læringsreise og tenker på å lande din første jobb på inngangsnivå, vil jeg peke deg på en massiv samling av ressurser jeg har satt sammen for å hjelpe deg.

Jeg vil anbefale Sean Allens Swift-intervjutipsvideoer - han har en hel spilleliste for dem der du kan jobbe gjennom individuelle diskusjoner som klasser vs strukturer, funksjonell programmering, feilhåndtering og mer. Ingen av videoene er spesielt lange, men de er alle laget for å gi deg ferdighetene du trenger for å prestere godt i en intervjusituasjon.

Hvor nå?

Ok, så jeg har gått gjennom kjerne- og utvidelsesferdighetene du trenger, vanlige læringsfeil, kurs du kan ta, hvordan du kobler deg til iOS-fellesskapet og hvordan du forbereder deg til jobbintervjuet ditt – det er mye å dekke, og jeg håper det har vært nyttig.

Videre håper jeg at jeg har demonstrert hvor mye informasjon som er tilgjengelig gratis. 

Ja, fristelsen til å bruke hundre dollar eller mer på et kurs er sterk, men slapp av – kom i gang først, finn litt fart, og finn også noen som underviser Swift på en måte som fungerer for deg. Når du er på et bra sted og føler deg klar, fortsett og bruk litt penger hvis du vil.

Beste ønsker på reisen!

om forfatteren
David Attard
David har jobbet i eller rundt den elektroniske / digitale industrien de siste 18 årene. Han har lang erfaring innen programvare- og webdesignindustrien ved å bruke WordPress, Joomla og nisjer rundt dem. Som digital konsulent er hans fokus på å hjelpe bedrifter med å få et konkurransefortrinn ved å bruke en kombinasjon av deres nettside og digitale plattformer som er tilgjengelige i dag.

En ting til... Visste du at folk som deler nyttige ting som dette innlegget også ser FANTASTISK ut? ;-)
Vær så snill forlate en nyttig kommenter med tankene dine, så del dette på Facebook-gruppen din (e) som synes dette er nyttig, og la oss høste fordelene sammen. Takk for at du delte og var hyggelig!

Avsløring: Denne siden kan inneholde lenker til eksterne nettsteder for produkter som vi elsker og anbefaler helhjertet. Hvis du kjøper produkter vi foreslår, kan vi tjene et henvisningsgebyr. Slike avgifter påvirker ikke våre anbefalinger, og vi godtar ikke betaling for positive anmeldelser.

Forfatter (e) Fremvist på:  Inc Magazine-logoen   Sitepoint-logo   CSS Tricks-logo    webdesignerdepot-logo   WPMU DEV-logo   og mange flere ...