Hoe word je een iOS-ontwikkelaar - De ultieme gids (2024)

ios ontwikkelaar

In dit artikel gaan we bespreken wat er volgens ons nodig is om een ​​iOS-ontwikkelaar te worden. 

We richten deze gids rechtstreeks op twee groepen mensen:

  • Absolute Swift-beginners (Swift is de taal die wordt gebruikt om iOS-apps te coderen) – mensen die nog nooit iets voor iOS hebben gebouwd.
  • En mensen die al eerder Swift hebben geprobeerd te leren, maar nooit echt hun doel hebben bereikt om een ​​voltijdbaan te krijgen.

Beschouwenless van uw huidige niveau, is het doel hier hetzelfde. Om je in staat te stellen om te solliciteren naar een junior iOS-ontwikkelaarsrol bij een bedrijf.

We zullen kijken naar de vaardigheden die u zou moeten leren, de cursussen die u kunt volgen, hoe u verbinding kunt maken met de gemeenschap, veelvoorkomende fouten die mensen maken en meer. 

Het beste van alles is dat alles wat we bespreken volledig gratis zal zijn.

Serieus, veel te veel mensen geloven dat het uitgeven van veel geld hen op het snelle pad naar hun droombaan zal brengen, terwijl vastberadenheid en wilskracht de belangrijkste factoren zijn.

Dit artikel is verdeeld in zeven secties:

  1. Kernvaardigheden die je nodig hebt om een ​​baan te krijgen.
  2. Vaardigheden die prettig zijn om te hebben en waarmee je je kunt onderscheiden van de massa
  3. Veelgemaakte fouten die mensen maken wanneer ze proberen te leren.
  4. De vele gratis bronnen die beschikbaar zijn om u te helpen Swift te leren.
  5. Hoe u in contact kunt komen met de iOS-ontwikkelgemeenschap.
  6. Een inschatting van hoe lang het duurt om je doel te bereiken.
  7. Klaar om te solliciteren voor je eerste baan.

Lees het hele bericht of ga direct naar de informatie die u zoekt, de keuze is geheel aan u!

De fundamentele vaardigheden die nodig zijn om een ​​iOS-ontwikkelaar te worden

Wat is een iOS-ontwikkelaar?

Een iOS-ontwikkelaar werkt aan apps voor de Apple assortiment telefoons. iOS is specifiek voor de iPhone en je gaat vooral aan de slag met games en apps voor die telefoon.

Mogelijk bent u betrokken bij:

  • Apps ontwerpen en plannen
  • Code schrijven en apps ontwikkelen
  • Het uitvoeren van onderhoud aan apps of app-servers
  • Problemen identificeren en oplossen
  • Het ontwikkelen van updates en verbeteringen
  • Werken met teams gedurende de gehele app-levenscyclus

Ook al ben je gespecialiseerd in één bepaald product, op een gemiddelde dag komt er veel kijken.

Laten we de vijf items opsplitsen in kleinere stukken.

Kernvaardigheden die nodig zijn om iOS-ontwikkelaar te worden

Wat is het absolute absolute minimum aan vaardigheden dat nodig is om een ​​baan in iOS-ontwikkeling te krijgen? 

Er zijn vijf essentiële vaardigheden die je volgens ons nodig hebt als iOS-ontwikkelaar:

  1. Snel programmeren
  2. SwiftUI 
  3. Netwerken
  4. Werken met gegevens
  5. Versiemanagement

Laten we de vijf items opsplitsen in kleinere stukken.

1. Snel leren

Swift staat als eerste op de lijst. Dit is Apple's kern programmeertaal. Het heeft geen idee om informatie op het scherm van een iPhone weer te geven of gegevens van internet te downloaden. 

Het is gewoon een taal zoals JavaScript of Python. Het is gewoon pure code die je gebruikt om variabelen te maken, functies te schrijven, enzovoort.

Swift is nog maar een paar jaar oud en maakt gebruik van vrijwel alle geavanceerde functies die beschikbaar zijn. 

Dit betekent dat u al het oude gedrag kunt vermijden dat gebruikelijk is in oudere talen zoals C++ en Java.

Het betekent ook dat het een hele reeks geavanceerde functies heeft waarvan u kunt profiteren.

2. SwiftUI

De tweede vereiste kernvaardigheid is SwiftUI. Het is een Apple framework waarmee we Swift kunnen gebruiken om apps voor iOS, macOS, tvOS en zelfs watchOS te maken. 

Waar Swift de programmeertaal is, biedt SwiftUI de tools hiervoor ontwikkelaars om apps te maken.

Voor alle duidelijkheid: SwiftUI is geen vervanging voor Swift – het is een raamwerk dat bovenop Swift is gebouwd en waarmee we apps kunnen maken.

Je moet zowel Swift als SwiftUI kennen om te slagen.

SwiftUI is een vrij jong framework, het verscheen voor het eerst in 2014 en werd ontwikkeld om de archaïsche Objective C te vervangen.

Ondanks zijn jonge leeftijd heeft de iOS-gemeenschap het van harte omarmd omdat het zo gemakkelijk te gebruiken is.

Apple heeft ook een ouder raamwerk voor het bouwen van iOS-apps genaamd UIKit. Als je een aantal mensen vraagt ​​of je eerst SwiftUI of UIKit moet leren, krijg je verschillende antwoorden. 

We denken dat je SwiftUI moet leren en hier is de reden waarom je SwiftUI als een kernvaardigheid zou moeten prioriteren.

SwiftUI is aanzienlijk eenvoudiger dan UIKit, en - er is misschien een kwart van de code nodig om dezelfde resultaten te bereiken als UIKit, en er zijn minder dingen om onderweg te leren. 

Dit betekent dat u veel momentum krijgt omdat u dingen sneller kunt bouwen, sneller resultaten kunt zien en die resultaten met meer flexibiliteit kunt herhalen.

Gemaakt voor Swift

Gemaakt voor Swift

SwiftUI is gemaakt voor Swift en gebruikt taalfuncties om problemen te voorkomen en maximale prestaties te bereiken. 

Als u bijvoorbeeld bepaalde gegevens op één scherm van een app wijzigt, zorgt SwiftUI er automatisch voor dat de nieuwe gegevens ergens anders in uw app worden bijgewerkt waar deze worden gebruikt.

Je hoeft zelf geen code te schrijven om alles gesynchroniseerd te houden, wat doorgaans behoorlijk complex is. 

UIKit is geschreven voor Apple's oudere taal, Objective-C. Als gevolg hiervan heeft het allerlei eigenaardigheden die voortvloeien uit zijn leeftijd.

SwiftUI is compatibel met alle Apple's platforms, zodat je wat je op iOS hebt geleerd kunt gebruiken om een ​​macOS- of watchOS-app te maken met bijna identieke code. 

Functies zoals de Digital Crown zijn natuurlijk exclusief voor een enkel apparaat, de Apple Kijk, maar het overgrote deel van wat je leert, werkt op elk apparaat.

Het belangrijkste is dat SwiftUI de richting aangeeft waarin de zaken zich ontwikkelen. 

Als u een paar jaar geleden naar een baan solliciteerde, zou u waarschijnlijk UIKit moeten kennen. Het feit dat u dit leest betekent dat u al een stuk verder in het proces bent. 

Hoewel UIKit vroeger populairder was, is SwiftUI nu het dominante UI-framework.

De grootste bedrijven ter wereld, waaronder Apple zelf gaan nu verder met SwiftUI.

. Apple onlangs widgets in iOS 14 lanceerde, maakten ze het een vereiste dat je SwiftUI gebruikt.

Netwerken en gegevensmanipulatie

De derde en vierde vaardigheid die we noemden, waren netwerken en gegevensmanipulatie. In vergelijking met Swift en SwiftUI zijn deze vrij eenvoudig, of in ieder geval eenvoudig op het niveau dat vereist is om een ​​junior iOS-ontwikkelaarsbaan te krijgen.

Netwerken is de praktijk van het ophalen van gegevens van internet of het verzenden van gegevens van een lokaal apparaat naar een externe server.

Op een mobiele app is dit een fundamentele vaardigheid.

Er zijn talloze methoden om dit te bereiken, maar het belangrijkste om te begrijpen is hoe u JSON van een server kunt ophalen.

En dat is waar de andere essentiële vaardigheid een rol speelt: het werken met data. 

Nogmaals, er zijn talloze manieren om gegevens te laden en op te slaan. Het absolute minimum dat u moet kunnen, is de gegevens die u van een server ontvangt, omzetten in informatie die uw app kan weergeven.

De derde en vierde kernvaardigheid zijn dus onlosmakelijk met elkaar verbonden.

Haal wat gegevens op van een server en converteer deze vervolgens naar informatie die in uw app kan worden weergegeven.

Sommige ontwikkelaars grappen dat het schrijven van dit soort code het halve werk is van een iOS-ontwikkelaar, en het is zeker waar dat we er sterk van afhankelijk zijn.

Version control

De laatste vaardigheid is helemaal niet coderen, het is version control, zoals Git. Nogmaals, je hebt hier niet veel nodig, maar het is belangrijk dat je je code ergens openbaar kunt publiceren, zoals GitHub, zodat recruiters je werk kunnen zien.

Er zijn maar weinig mensen in de wereld die echt begrijpen hoe Git werkt, maar dat is geen probleem – je hoeft alleen maar genoeg basisprincipes te kennen om je gegevens veilig op te slaan en met anderen samen te werken.

Dus als die vijf bij elkaar worden opgeteld, zijn er twee enorme - Swift en SwiftUI - evenals drie kleine maar belangrijke. 

Als je je gewoon op die vijf dingen kunt concentreren zonder afgeleid te worden, ben je goed op weg naar je eerste baan als iOS-ontwikkelaar.

Dat is alles: dat zijn de vijf essentiële vaardigheden die je volgens mij nodig hebt om een ​​iOS-ontwikkelaar te zijn!

Er zijn duizenden mensen die alleen die vaardigheden hebben en fantastische apps kunnen bouwen en verzenden in de App Store.

Wat komt er na de basis?

Wat komt er na de basis?

Zodra je de vijf kernvaardigheden onder de knie hebt, kun je je eigen apps lanceren en aan de slag gaan als indie-ontwikkelaar. Je kunt mogelijk ook solliciteren naar junior iOS-ontwikkelingsfuncties en voor een bedrijf werken als je dat wilt. 

Er zijn geen andere speciale kwalificaties vereist - spijker gewoon die kernvaardigheden bij en het komt goed.

Als je deze vaardigheden echter onder de knie hebt en vooruitgang wilt boeken, zijn er nog vijf vaardigheden die we je aanraden te leren.

Je wordt nog beter inzetbaar en het aanbod aan apps dat je kunt bouwen wordt nog verder uitgebreid.

De capaciteiten zijn als volgt:

  • UIKit 
  • Kerngegevens 
  • Validatie
  • Testen
  • Software architectuur
  • multithreading

Net als voorheen willen we elk van deze in meer detail bespreken, zodat u begrijpt waarom we denken dat ze belangrijk zijn - en waarom we ze beschouwen als aanvullende vaardigheden in plaats van kernvaardigheden.

UIKit

Ten eerste is er UIKit. Dit is Apple's oudere gebruikersinterfaceframework, dat sinds 2008 wordt gebruikt voor app-ontwikkeling – en dat is oud in softwaretermen.

Maar dat betekent niet dat UIKit slecht is. Naarmate u meer gewend raakt aan de manier waarop het werkt, zult u verbaasd zijn hoe elegant het kan zijn.

Er zijn tal van redenen waarom UIKit de moeite waard is om te leren, waaronder:

Er zijn al honderdduizenden apps in UIKit geschreven. Als je lid wordt van een bedrijf dat een grote, gevestigde app heeft, zul je vrijwel zeker UIKit-code moeten schrijven om deze te onderhouden.

UIKit is veel krachtiger dan SwiftUI - er zijn veel dingen die u in UIKit kunt doen die momenteel niet mogelijk zijn in SwiftUI.

Met behulp van Auto Layout-technologie kunt u uiterst nauwkeurige lay-outs maken.

Als u problemen ondervindt met uw code, heeft UIKit meer oplossingen dan SwiftUI, simpelweg omdat het al veel langer bestaat.

Dit alles zorgt ervoor dat UIKit fantastisch klinkt, dus waarom heb ik er een uitbreidingsvaardigheid van gemaakt in plaats van een kernvaardigheid? 

Omdat UIKit ook problemen heeft:

Bijna alles is moeilijker te doen in UIKit dan in SwiftUI, waarbij sommige taken honderd keer, zo niet meer, code vereisen. 

SwiftUI is speciaal ontworpen voor moderne iOS-ontwikkeling, dus het doet veel van het zware werk voor je.

Omdat UIKit niet in Swift is geschreven, heeft het veel functies die SwiftUI niet heeft - veel impliciet uitgepakte opties, code markeren met een speciaal @objc-attribuut om het beschikbaar te maken voor de Objective-C-onderbuik van UIKit, en de noodzaak om protocollen en gedelegeerden te gebruiken om eenvoudige gegevens weer te geven.

Niets aan Auto Layout is automatisch. Als u ooit een complexe lay-out probeert te bouwen, kunt u nachtmerries krijgen over Automatische lay-out.

Het is buitengewoon slim, maar op sommige plaatsen ook extreem moeilijk.

Daarom beschouwen wij UIKit als een uitbreidingsvaardigheid. Het kost aanzienlijk meer tijd en moeite om te leren dan SwiftUI, wat betekent dat het veel meer vastberadenheid vereist.

Je moet het echt willen leren, anders raak je in de war, verveeld, boos, of mogelijk alle drie!

Natuurlijk heeft SwiftUI niet alle functies van UIKit, maar je kunt er snel vooruitgang mee boeken en momentum krijgen voordat je doorgaat naar UIKit.

 

Kerngegevens beheren

Kerngegevens beheren

Kerngegevens, Apple's raamwerk voor het werken met applicatiegegevens, is de tweede uitbreidingsvaardigheid die ik noemde. 

Met Core Data kunt u gegevens manipuleren zodra u deze heeft verkregen, zoals zoeken naar specifieke waarden, de resultaten sorteren en meer, allemaal zeer efficiënt. 

Het kan ook eenvoudig verbinding maken met iCloud, zodat gebruikersgegevens op al hun apparaten worden gesynchroniseerd.

Core Data heeft een hele reeks nadelen. Het ernstigste daarvan is dat het niet altijd prettig is om mee te werken.

Core Data is bijna net zo oud als UIKit, en hoewel het goed werkte in Objective-C, voelt het niet zo natuurlijk aan in Swift. 

Het integreert goed met SwiftUI, waardoor het aanvoelt less vreemd, maar het is nog steeds een verrassend complex onderwerp.

Net als UIKit is Core Data enorm populair: er zijn honderdduizenden apps mee gebouwd en het wordt in veel grote en kleine bedrijven gebruikt. 

Core Data, zoals UIKit, is extreem krachtig, en hoewel je de belangrijkste delen ervan in je eigen code zou kunnen recreëren, waarom zou je dat dan doen?

Uw code testen

De derde vaardigheid op mijn lijst met extensies is testen. Speciale code schrijven om ervoor te zorgen dat uw hoofdapp-code werkt zoals verwacht. 

Met tests kunnen we ervoor zorgen dat onze code correct werkt, en nog belangrijker, dat deze correct blijft werken, zelfs nadat we aanzienlijke wijzigingen hebben aangebracht.

Testen is van cruciaal belang en zal u helpen bij het schrijven van software van hogere kwaliteit. Dus waarom wordt het beschouwd als een uitbreidingsvaardigheid in plaats van als een kernvaardigheid? 

Hiervoor zijn drie redenen:

De iOS-gemeenschap is verschrikkelijk in testen, om welke historische redenen dan ook. Veel grote apps hebben helemaal geen tests, en tragisch genoeg zijn een aantal senior iOS-ontwikkelaars er bijna trots op dat ze nooit tests schrijven. 

Als je bedenkt wat voor geweldige dingen je allemaal kunt creëren Apple's tools en frameworks, lijkt het schrijven van tests niet zo leuk in vergelijking. 

Bij het solliciteren naar een baan, Swift kennen en AppleDe belangrijkste kaders zullen altijd nuttiger zijn dan te weten hoe je tests moet schrijven. 

Bedrijven hebben liever dat je weet hoe je SwiftUI, UIKit of een van de andere grote spelers moet gebruiken, omdat testen een veel kleiner onderwerp is.

Testen is dus belangrijk, testen is belangrijk, en als je een geweldige algehele ontwikkelaar wilt zijn, moet je leren hoe je geweldige tests schrijft.

Maar pas nadat u de grondbeginselen van app-ontwikkeling onder de knie heeft – nadat u enig succes heeft gehad, de kick voelde om uw app live te hebben in de App Store en het testen onder de knie had.

Software architectuur

Software architectuur

De vierde uitbreidingsvaardigheid die we willen bespreken is software-architectuur, die gaat over de manier waarop we code schrijven. 

Je gaat een vreselijke code schrijven als je net begint. 

Dat is oké, want zo leer je. Je begint niet goed - je wordt goed door lange tijd slecht te zijn en door ervaring en blootstelling betere manieren te leren om dingen te doen.

Het punt is dat je bij je slechte code blijft totdat je weet hoe je het beter kunt doen. Dat is waar software-architectuur om de hoek komt kijken.

Kijken naar beproefde technieken voor het structureren van uw code, zodat deze op de lange termijn gemakkelijker te lezen, gebruiken, wijzigen en onderhouden is. 

Deze technieken zijn soms afhankelijk van de manier waarop Swift werkt: taalfuncties die kunnen worden gebruikt om betere code te schrijven. 

Er zijn echter tal van andere technieken die in elke programmeertaal werken en die gewoonlijk ontwerppatronen worden genoemd.

Een belangrijk aspect van deze vaardigheid die u moet leren, is hoe u uw code kunt opsplitsen. 

Als u bijvoorbeeld één scherm in uw app maakt, kan dit een inlogknop, een afbeeldingengalerij en een lijst met vrienden bevatten. 

U moet echter idealiter elk van deze onderdelen scheiden - een component voor een inlogknop, een component voor een afbeeldingsgalerij en een component voor een vriendenlijst - zodat u al deze componenten opnieuw kunt gebruiken in andere delen van uw app.

Software-architectuur is veel subjectiever dan de andere vaardigheden die we tot nu toe hebben besproken. Voor de anderen, zoals SwiftUI, kun je redeneren: "Nou, ik weet hoe ik X, Y en Z moet doen, dus ik ben ervan overtuigd dat ik een goede SwiftUI-ontwikkelaar ben."

Software-architectuur is een zeer breed onderwerp en er bestaat vaak geen voor de hand liggende ‘juiste’ manier om een ​​probleem op te lossen.

De beste maatstaf daarvoor is deze: kijk je terug op je code van een half jaar geleden, een jaar geleden enzovoort.

Het schrijven van slechte code is acceptabel als je hierdoor dichter bij het schrijven van betere code komt. 

Je zult zeker op sommige plaatsen op je hoofd krabben als je terugkijkt op de code die je vijf jaar geleden hebt geschreven, omdat je nu meer weet dan toen.

Dat is de manier waarop het zou moeten zijn.

multithreading

De laatste uitbreidingsvaardigheid die we zullen bespreken is multithreading. Dit is de gewoonte om uw code meer dan één ding tegelijk te laten doen. 

Multithreading kan heel vervelend zijn, omdat het voor onze hersenen moeilijk te begrijpen is.

Als uw code één ding tegelijk doet, kunnen we er lineair over nadenken, maar als twee of drie dingen tegelijkertijd gebeuren en mogelijk overlappen, kan dit uw denken echt in de war sturen.

Dus hoewel multithreading een geweldige vaardigheid is, moet je voorzichtig zijn. Je doel zou moeten zijn om net genoeg van de concepten en code te begrijpen om het goed te laten werken, zonder te ver te gaan. 

Om eerlijk te zijn, geloven veel ontwikkelaars dat multithreading hun code onmiddellijk drie of vier keer sneller zal laten werken. 

Hoewel dit in sommige gevallen waar is, zal uw code in veel andere gevallen langzamer werken en zult u nu te maken krijgen met alle extra complexiteit van de code.

“Mijn specifieke aanbeveling is dat je het schrijven van asynchrone/gelijktijdige code zoveel mogelijk vermijdt. Dit lijkt misschien vreemd in 2018, maar de kosten in complexiteit en prestaties zijn hoog.

Dus leer een beetje over hoe multithreading werkt in Swift om aan te tonen dat je de concepten en implementatie begrijpt, maar ga niet overboord!”

David Smit - Apple SwiftUI-team

Veelvoorkomende fouten die nieuwe iOS-ontwikkelaars maken

Veelvoorkomende fouten die nieuwe iOS-ontwikkelaars maken

Op dit punt hebben we alle kern- en uitbreidingsvaardigheden op een rij gezet die je nodig hebt om als fulltime iOS-ontwikkelaar te werken. 

We willen ook enkele van de meest voorkomende fouten bespreken die mensen maken tijdens het leren.

Fouten Ik zie ze voortdurend en weet hoe ze mensen tegenhouden.

Er zijn zeven grote problemen waarmee mensen worden geconfronteerd. 

  1. Alles onthouden
  2. Glanzend object-syndroom 
  3. Lone wolf leren
  4. Gebruik maken van bètasoftware
  5. Afhankelijk van Appledocumentatie
  6. Verzanden in Objective-C
  7. Gericht op andere talen

Laten we ze allemaal een voor een doornemen.

Stop met proberen alles te onthouden

Stop met proberen alles te onthouden

Het eerste en veruit meest voorkomende probleem waarmee mensen te maken krijgen, is alles proberen te onthouden.

Niemand onthoudt alles. Niemand komt in de buurt om alles te onthouden.

Zelfs als je alleen kijkt naar de API's die zijn gepubliceerd door Apple, het moeten er ruim honderdduizend zijn. 

Zelfs als je het beperkt tot de kerncomponenten van app-ontwikkeling, kijk je nog steeds naar een paar honderd.

Het werkt allemaal op een zeer precieze manier, waarvoor veel leerwerk vereist is.

Leer in plaats daarvan hoe u iets nieuws kunt doen en vergeet dan onmiddellijk hoe u het opnieuw moet doen. 

Dus je zoekt het op, gebruikt het opnieuw en vergeet het dan meteen.

Dus je zoekt het voor de derde keer op en gebruikt het, en deze keer vergeet je het grotendeels – sommige delen blijven bij je. 

Deze cyclus gaat oneindig door, waarbij je elke keer naar een zelfstudie of een andere referentiegids moet verwijzen, totdat de basisprincipes in je geest zijn geworteld tot het punt waarop je het kunt doen zonder iemand anders te raadplegen.

Als je het nog niet wist, is vergeten een belangrijk onderdeel van leren.

Elke keer dat je iets vergeet en het opnieuw leert, dringt het dieper en grondiger door in je hersenen.

Wanneer je iets opnieuw leert, leggen je hersenen nieuwe verbindingen met andere dingen die je hebt geleerd, waardoor je meer inzicht krijgt in de context van wat je probeert te doen. 

Als je alles wilt onthouden, zul je het moeilijk krijgen.

Maak je in plaats daarvan geen zorgen over het vergeten van dingen. Weten waar je ze moet opzoeken, is veel belangrijker dan het onthouden van specifieke Swift-code om iets te bereiken.

Vermijd het glanzende object-syndroom

Het tweede meest voorkomende probleem is het ‘shiny object-syndroom’.

Hier vinden we een tutorial die werkt en beginnen we vooruitgang te boeken. Maar na een week of twee zien we een andere serie tutorials die we willen volgen en gaan daar in plaats daarvan naartoe. 

Het probleem hier is dat veel aspecten van leren oninteressant zijn. Dat is niet noodzakelijkerwijs de schuld van de leraar. 

Het is gewoon een feit van leren coderen - sommige dingen geven je met weinig moeite geweldige resultaten, terwijl andere veel meer tijd vergen om te begrijpen, geen mooie resultaten opleveren of slechts een onderdeel zijn van een groter concept.

Wanneer je deze steile leercurves doormaakt, treedt het glanzende object-syndroom op.

Omdat er zoveel gratis tutorials beschikbaar zijn, kun je naar een van de tutorials springen en opnieuw beginnen, waarna je weer in het ondiepe gedeelte van het zwembad terechtkomt, waar je de gemakkelijkere delen behandelt die je al hebt geleerd. 

Maar, nietless de oorspronkelijke cursus heeft een ongewoon onderwerp gekozen om te behandelen, je zult het waarschijnlijk uiteindelijk moeten leren, en je stelt alleen maar het onvermijdelijke uit.

Houd rekening met het glanzende objectsyndroom.

Wanneer u een probleem tegenkomt, probeer dan iemand anders om hulp te vragen en vol te houden in plaats van over te stappen.

Doe het niet alleen

Doe het niet alleen

Over iemand anders vragen gesproken: het derde probleem waar we mensen tegenaan zien lopen, is wanneer ze helemaal alleen zijn met hun kennis.

Ze denken dat ze volledig zelf in staat zijn iOS-apps te leren bouwen met Swift en dat ze daar geen hulp voor nodig hebben.

Deze methode werkt voor een zeer klein aantal mensen, meestal degenen met uitgebreide ervaring met andere programmeertalen of platforms. 

Voor de meeste mensen is leren op deze manier echter een vreselijke ervaring.

Het duurt vijf keer zo lang om elke fout of misverstand op te merken en vervolgens op te lossen. Het is heel gemakkelijk om de motivatie te verliezen, en je loopt veel inspiratie mis als je anderen ziet slagen.

Als je een natuurlijke 'eenzame wolf'-leerling bent, raden we je aan om je manier van doen te veranderen. 

Deel wat je leert, maak contact met anderen die leren en ontwikkel de gewoonte om vragen te stellen. 

Je zult een fantastische gemeenschap van leerlingen ontdekken die je zullen ondersteunen en aanmoedigen. Ook jij zult geïnspireerd worden door hun werk en hen op hun beurt weer inspireren met dat van jou.

Het is volledig transformatief!

Gebruik geen bètaversies

Het vierde grote probleem is wanneer mensen aandringen op het gebruik van bètaversies van Apple's ontwikkeltools. 

Elk jaar, Apple brengt een nieuw iOS, een nieuw macOS en andere producten uit, die altijd spannende nieuwe dingen opleveren die we kunnen proberen.

Het is normaal dat mensen het nieuwste en beste willen leren, vooral als ze weten dat Swift een lange geschiedenis van verandering heeft.

Wanneer mensen echter proberen te leren met bètasoftware, lopen ze tegen een aantal problemen aan:

Omdat tutorials niet zijn bijgewerkt voor de bètaversie, is het niet altijd mogelijk om hun instructies te volgen of mislukken.

Bugs komen vaak voor in bèta's, vooral die welke zijn vrijgegeven voor grote iOS-updates.

Apple's bètaframeworks hebben tijd nodig om te stabiliseren, wat betekent dat code die in bèta 1 werkte, mogelijk niet werkt in bèta 3.

Dus hoewel het spannend is om nieuwe dingen te leren, en je misschien denkt dat je voorop loopt met nieuwe functies, is het meestal niet de moeite waard. 

Gebruik altijd de meest recente openbare releases van Apple's ontwikkelaarstools totdat u er vertrouwd mee bent.

Vertrouwen op officiële documentatie

Vertrouwen op officiële documentatie

Het vijfde grote probleem waarmee mensen worden geconfronteerd wanneer ze proberen te leren, is vertrouwen op Apple's documentatie. 

AppleHet team voor ontwikkelaarspublicaties werkt er hard aan om zoveel mogelijk te documenteren uit het enorme scala aan raamwerken van het bedrijf

Maar hun belangrijkste taak is het schrijven van referentiemateriaal (dingen die je leest als je een specifiek onderdeel van hun tools probeert te gebruiken) in plaats van een gestructureerde cursus te creëren om je te helpen iOS-apps te leren bouwen.

We zijn de tel kwijtgeraakt van het aantal keren dat mensen hebben gevraagd: "Hoe kan ik Swift leren?" alleen om te horen: "Lees Apple's Swift-referentiegids." 

Deze aanpak werkt voor sommige mensen. 

Voor de meeste mensen is het echter hetzelfde als proberen een menselijke taal te leren door een woordenboek te lezen.

De documenten zijn bedoeld om alles in de taal te behandelen, in plaats van u de belangrijkste onderdelen te leren en hoe u deze kunt toepassen.

Dus, als je uitgebreide ervaring hebt met andere talen, lees dan Apple's referentiehandleidingen kunnen nuttig zijn. Maar als u net begint, wilt u ze misschien na een paar maanden opnieuw bekijken.

Verzanden in Objective-C

Het zesde grote probleem waarmee mensen worden geconfronteerd, is het proberen om Objective-C te leren.

Dit was Apple's primaire ontwikkeltaal vóór de introductie van Swift. Hoewel er overblijfselen zijn in sommige oude codebases, is de overgrote meerderheid van de bestaande code nu Swift, en bijna alle nieuwe code is ook Swift.

Sommige mensen besteden jaren aan het schrijven van Objective-C vóór Swift en gaan er echt van houden. Maar het heeft een extreem steile leercurve en mist de meeste belangrijke functies van Swift. 

. Apple voor het eerst de iPhone SDK aankondigde, waren veel mensen geschokt door Objective-C omdat het anders was dan al het andere dat tot nu toe was gezien.

Objective-C en Swift hebben bijna niets gemeen voor een beginner. 

Ja, ze delen hetzelfde Apple kaders, maar nietless je bent van plan om te werken bij Apple – het enige bedrijf ter wereld dat nog steeds grote hoeveelheden Objective-C produceert – je moet Objective-C met rust laten en je volledig op Swift concentreren.

Andere talen negeren

Andere talen negeren

De laatste grote fout die mensen maken bij het leren van Swift is andere talen afdoen als inferieur aan Swift. 

Het meest voorkomende doel is JavaScript. Je zult ook zien dat mensen zich richten op Python, Java, Ruby, Go en andere talen, en waarvoor?

Het is geen race: deze talen hoeven niet te verliezen voordat Swift kan winnen. Swift en SwiftUI zijn zelfs vaak geïnspireerd door andere talen en frameworks.

Telkens wanneer nieuwe taalfuncties worden overwogen, kijkt de gemeenschap naar vergelijkbare implementaties in Rust, Python, Haskell en andere talen, en SwiftUI wordt sterk beïnvloed door JavaScript React kader.

Bronnen en cursussen voor iOS-ontwikkeling

Bronnen en cursussen voor iOS-ontwikkeling

Nu het deel waarin de meeste mensen geïnteresseerd zijn. Welke bronnen moet je gebruiken om Swift, SwiftUI en meer te leren, om je doel te bereiken: een iOS-ontwikkelaar worden?

Er zijn er veel en de Swift-gemeenschap heeft zo'n diverse groep mensen die hun kennis delen. 

In dit artikel gaan we ons echter concentreren op gratis bronnen - plaatsen waar je kunt leren om fantastische apps te bouwen zonder een cent uit te geven.

Dit komt door twee factoren:

  1. Sommige mensen zijn van mening dat hoe hoger de prijs van een Swift-cursus, hoe beter deze moet zijn.
  2. Veel sites, zoals Udemy, vertrouwen op de verkoop van een groot aantal goedkope cursussen, in het vertrouwen dat als je de ene niet leuk vindt, je gewoon een andere zult kopen. Ze hebben ook een bedrijfsmodel zoals dat van Steam, in die zin dat er constante verkopen zijn, waardoor mensen worden aangemoedigd een groot aantal cursussen te verzamelen om 'op een dag' te studeren.

Dus hier vermelden we alleen gratis bronnen, zodat u geen honderd dollar of meer uitgeeft aan uw eerste cursus, en geen dozijn goedkope cursussen koopt met de gedachte dat u een ontwikkelaar wordt.

Zelfstudies

Beginnen, Apple heeft twee belangrijke bronnen die u kunnen helpen. De eerste is zijn Onderwijscode website.

Het bevat hulpmiddelen voor studenten en docenten om Swift vanaf de basis te leren, tot en met professionele certificeringen. 

Hun curriculum is uitgebreid, dus het kan even duren om het beste startpunt voor jou te vinden, maar eenmaal daar zul je genoeg te ontdekken hebben.

Tweede Apple heeft een reeks van SwiftUI-tutorials die u door het proces leiden van het maken van echte apps. Deze onderwijzen echter geen Swift, dus je moet eerst hun Swift-gerichte curriculum voltooien.

YouTube en andere sites

Er zijn enkele uitstekende YouTube-video's die u door de basisbeginselen van SwiftUI leiden.

Er zijn andere sites met hoogwaardige Swift- en SwiftUI-tutorials, waaronder BLCKBIRDS, Ray Wenderlich, Donny Wals, Antoine van der Lee en meer. We moedigen mensen echt aan om verschillende bronnen te bezoeken en te ontdekken wat voor hen werkt.

App-gebaseerd onderwijs

Als je liever via apps leert, raad ik er een aan die helemaal gratis is. Apple's Swift Speeltuinen app.

Hiermee kunt u Swift rechtstreeks vanaf uw iPad of Mac leren. 

Er zijn veel interactieve lessons gericht op kinderen, maar er zijn ook enkele meer geavanceerde lessdie u zullen helpen uw vaardigheden te verbeteren.

Oplossingen vinden

Ten slotte moet u leren hoe u online antwoorden kunt vinden. Dit zou kunnen betekenen dat ik naar Stack Overflow ga, maar ik hoop van niet, want het is geen bijzonder aangename plek.

Stel in plaats daarvan vragen op de Hacking with Swift-forums, je favoriete Slack-groep, de iOS Dev Happy Hour-sessies, Twitter/X en elders. We zijn een oprecht warme, gastvrije community met veel mensen die je graag willen helpen bij het bereiken van je doelen.

Betrokken raken bij de gemeenschap

Betrokken raken bij de gemeenschap

Over gemeenschap gesproken, ik wil graag een heel belangrijk onderwerp bespreken dat je zal helpen mensen in vergelijkbare posities als jij te ontmoeten, effectiever te leren en vacatures te vinden.

Het is overal een win-winsituatie.

Het onderwerp is verbinding maken met de iOS-ontwikkelgemeenschap. Dit houdt in dat u weet waar u nieuws en interessante ideeën kunt vinden, waar u mensen kunt ontmoeten en tips kunt delen en waar u terecht kunt voor vragen.

Wie moet ik volgen op Twitter?

Laten we beginnen met de eenvoudigste, namelijk het gebruik van Twitter. Twitter is een fantastische manier om dingen te volgen die je interesseren, en er zijn een paar mensen die ik ten zeerste zou aanbevelen in het geval van iOS-ontwikkeling.

Ja, deze mensen twitteren over hun eigen werk, maar ik denk dat ze geweldig zijn om te volgen omdat ze ook veel tweeten over andermans werk – ze helpen je verschillende perspectieven te zien op een bepaald onderwerp, en ze delen allerlei interessante ideeën en dingen om uit te proberen.

Hier zijn 9 mensen die we je aanraden te volgen op Twitter:

Sean Allen besteedt veel tijd aan YouTube om Swift- en iOS-ontwikkelingsvideo's te maken, maar hij werkt ook heel hard om het werk van andere mensen te verspreiden - hij doet echt geweldig werk door iedereen elke week iets nieuws te laten ontdekken.

Antoine van der Lee beheert een iOS-ontwikkelingswebsite op https://www.avanderlee.com, maar hij deelt ook enkele geweldige links naar nuttige bronnen die hij op GitHub vindt, nieuwsbrieven en meer.

Novall Khan werkt voor Apple, maar dat weerhoudt haar er niet van om regelmatig video's te plaatsen over waar ze mee bezig is, wat ze leert, waar ze moeite mee heeft en meer - ze is echt inspirerend.

Steve Troughton-Smith staat bekend om zijn eerdere werk dat aan iOS sleutelde, maar je moet hem echt volgen vanwege de fantastische reeks links die hij deelt naar indrukwekkend werk. Ik vind het leuk hoe hij de ontwikkelingsvoortgang van zijn eigen apps deelt, zodat je ze van begin tot eind kunt zien groeien.

Kaja Thomas is een van de bekendste indie-ontwikkelaars van onze community, en ze is uitgelicht door Apple vaker dan ik kan tellen. Ze tweet vaak over haar eigen werk en presentaties, maar ze deelt ook links naar boeken die ze leest, artikelen die ze heeft gelezen en andere bronnen.

Majid Jabrayilov schrijft niet alleen een fantastisch Swift- en SwiftUI-blog, maar hij is ook een bandless promotor van anderen - als je hem volgt op Twitter, krijg je idee na idee opgestuurd vanuit een grote verscheidenheid aan bronnen.

Donny Wals schrijft een Swift-blog en, meer recentelijk, boeken over Combineren en Core Data, maar hij moedigt mensen ook aan om op Twitter te delen waar ze mee bezig zijn. Zelfs als je dat draadje maar één keer per week leest, word je geïnspireerd om nieuwe dingen te proberen, dus je moet Donny zeker volgen.

Zomer Panage werkt Apple's toegankelijkheidsteam, dus hoewel ze enigszins beperkt is in wat ze kan zeggen, tweet ze wel veel eersteklas tips van zichzelf en anderen die iedereen kan gebruiken om betere apps te bouwen.

Natascha Fadeeva schrijft een blog over Swift- en iOS-ontwikkeling, inclusief artikelen over Core Data, interviewvragen en andere onderwerpen, maar ze twittert ook over dingen die ze elders vindt.

Nieuwsbrieven en meer

Nieuwsbrieven en meer

Natuurlijk is Twitter niet de enige plek om in contact te blijven met de gemeenschap; er zijn ook nieuwsbrieven, Slack-groepen, Zoom-bijeenkomsten, forums, conferenties en andere locaties.

Ik wil je niet te veel vervelen, dus ik zal er hier een van elk noemen:

Je kunt niet fout gaan met iOS Dev wekelijks voor nieuwsbrieven.

Als u op een webforum wilt posten, https://www.hackingwithswift.com/forums is best goed. Er zijn veel categorieën om uit te kiezen, en iedereen, let opless van ervaringsniveau, is welkom om deel te nemen. Je bent meer dan welkom om je beginnersvragen hier te plaatsen, geloof me!

Elke maand is de iOS-ontwikkelaar Happy Hour wordt vastgehouden tijdens een Zoom-groepsgesprek. Het echte plezier zit in de breakout rooms, waar je kunt chatten met groepen van 6 tot 8 personen tegelijk. Het is erg leuk en je ontmoet nieuwe mensen.

Het bijwonen van conferenties was moeilijk vanwege de pandemie van het coronavirus, maar Apple's WWDC was vorig jaar een groot succes en ging gepaard met een hele reeks gemeenschapsevenementen.

Een groep vrienden en ik creëerden een GitHub-repository om alle andere evenementen, artikelen en andere dingen die zijn gebeurd bij te houden - neem een ​​kijkje!

Tot slot, als je liever chat op Slack waar je sneller antwoorden kunt krijgen, kun je gratis deelnemen Hacken met Swift Slack-groep en word lid van een van de Swift, SwiftUI en andere kanalen.

Hoeveel tijd kost het om iOS te leren?

Dit is een veelgestelde vraag en een vraag die we nu willen beantwoorden.

Hoe lang duurt het om van niets over Swift te weten te komen naar het kunnen verwerven van een iOS-ontwikkelaarspositie op instapniveau?

Het voor de hand liggende antwoord is: 'Dat hangt ervan af', maar dat zou in dit geval een smoesje zijn, dus laten we het op een paar verschillende manieren aanpakken.

De gouden regel is om niet te haasten

Allereerst kun je niet meerdere cursussen tegelijk volgen. Weet je nog wat ik zei over het ‘shiny object-syndroom’?

Ja, veel mensen denken dat ze twee cursussen tegelijk kunnen volgen en vervolgens vier, vijf of zelfs meer uur per dag kunnen studeren en toch een kwalitatief hoogstaand inzicht hebben in de onderwerpen die ze behandelen.

Voor alle duidelijkheid: ik heb mensen dit zo vaak zien proberen, maar het mislukt altijd. Elke keer.

Het werkt nooit, en ik hoor mensen zeggen dat het komt omdat de tutorials slecht waren, of omdat Swift te moeilijk was, of om letterlijk elke andere reden dan proberen door iets ingewikkelds heen te haasten.

Het leren van Swift kan soms moeilijk zijn, en het leren bouwen van apps vereist veel vallen en opstaan, fouten maken en verkeerde afslagen nemen.

En dat is prima – het is beter dan prima, het is fantastisch! 

Elke keer dat je iets probeert, een fout maakt of een verkeerde afslag neemt, leer je gaandeweg iets. Als je uiteindelijk tot de oplossing komt, zul je het veel beter begrijpen.

Dus de TL;DR hier is: haast je niet – neem de tijd, wees niet bang om de raaklijnen die zich voordoen te verkennen.

Wees niet bang om met je projecten te experimenteren, en wees niet bang om terug te gaan naar iets dat je eerder hebt geleerd en het indien nodig opnieuw te leren.

Wat is jouw opleidingsachtergrond

Wat is jouw opleidingsachtergrond?

Ten tweede moet u rekening houden met uw achtergrond voordat u naar Swift komt.

Zie je, het leren bouwen van apps vereist een breed scala aan vaardigheden. Als je over een schat aan voorkennis beschikt, zoals version control, datastructuren, algoritmen en meer, heb je een aanzienlijk voordeel ten opzichte van degenen die nieuw zijn in de informatica in het algemeen.

Dus, hier zijn een paar mogelijkheden voor waar je nu zou kunnen zijn:

Als u een diploma computerwetenschappen heeft, bent u al bekend met veel van de CS-fundamenten die nodig zijn om aan de slag te gaan met Swift.

Variabelen, arrays, loops, arrays, sets, functies, OOP en andere concepten zullen nuttig zijn in Swift, net als al uw werk met datastructuren en algoritmen.

Dit kan je, afhankelijk van de vakken die je hebt gestudeerd, 4 tot 6 maanden studietijd besparen, en het geeft je ook een voordeel bij het solliciteren naar banen bij veel bedrijven.

Als je geen CS-diploma hebt maar een codeerbootcamp hebt bijgewoond, heb je veel van de basisbeginselen die je nodig hebt om aan de slag te gaan met Swift.

Dit geeft je niet hetzelfde voordeel als je bij die bedrijven solliciteert, omdat ze vaak een diploma verwachten alleen maar om een ​​vakje aan te vinken op hun lijst met willekeurige vereisten. Maar het bespaart je nog steeds drie of vier maanden.

Als je geen CS-diploma hebt en geen bootcamp hebt gevolgd, maar je hebt in je vrije tijd gecodeerd, bespaar je wat tijd - waarschijnlijk twee maanden of zo, afhankelijk van de taal of frameworks die je gebruikte .

Wat als je geen CS-diploma hebt, geen bootcamp hebt bijgewoond en geen eerdere codeerervaring hebt?

Dan schat ik dat het 9 tot 12 maanden duurt om van niets naar een baan op instapniveau te gaan.

Ja, dat kan een heel jaar werk zijn, bovenop wat je huidige fulltime baan ook is, en dat is alleen maar om je eerste baan als iOS-ontwikkelaar te krijgen.

Is het altijd hetzelfde jaar?

Nee. Als u al ervaring heeft, kunt u die tijd terugbrengen tot 1 tot 6 maanden, zoals ik eerder al zei.

Als je de beste cijfers van beide kanten neemt – 9 maanden van niets naar een baan op instapniveau, plus 6 maanden voor het behalen van een CS-diploma – betekent dit dat je binnen slechts 3 maanden aangenomen kunt worden, wat ongelooflijk is.

Je hebt dus geen CS-diploma of bootcamp nodig, maar je moet wel bereid zijn om hard te werken.

Gun jezelf wat speelruimte

Het derde punt dat ik wil maken voordat we verder gaan, is dat "het zo lang duurt als het duurt". Ik hou van een tekst van John Lennon die zegt: "Het leven is wat er gebeurt als je bezig bent andere plannen te maken."

Wees niet te streng voor jezelf als je achterloopt met je leerschema, of als je merkt dat je een paar dagen of zelfs een paar weken mist, enzovoort.

Zolang je veerkrachtig bent, kom je er wel.

Klaar om te solliciteren

Klaar om te solliciteren

Tot slot, als je wat verder bent in je iOS-leertraject en erover nadenkt om je eerste baan op instapniveau te bemachtigen, wil ik je graag wijzen op een enorme verzameling hulpmiddelen om je te helpen.

Ik zou aanraden Sean Allen's Swift-interviewtipsvideo's.

Hij heeft een hele afspeellijst voor ze waar je individuele discussies kunt doornemen, zoals klassen versus structuren, functioneel programmeren, foutafhandeling en meer.

Geen ervan is bijzonder lang, maar ze zijn allemaal bedoeld om u de vaardigheden te bieden die u nodig heeft om goed te presteren in een sollicitatiegesprek.

Waar nu?

Oké, dus ik heb de kern- en uitbreidingsvaardigheden besproken die je nodig hebt, veelvoorkomende leerfouten, cursussen die je kunt volgen en hoe je verbinding kunt maken met de iOS-gemeenschap.

Ook heb ik besproken hoe je je kunt voorbereiden op je sollicitatiegesprek.

Verder hoop ik dat ik heb aangetoond hoeveel informatie gratis beschikbaar is. 

Ja, de verleiding om honderd dollar of meer uit te geven aan een cursus is groot. Maar ontspan: ga eerst aan de slag, vind wat momentum en zoek iemand die Swift lesgeeft op een manier die voor u werkt.

Als je op een goede plek bent en je er klaar voor voelt, ga je gang en geef wat geld uit als je wilt.

Veel succes op je reis! 

Over de auteur
David Attard
David heeft de afgelopen 21 jaar in of rond de online en digitale industrie gewerkt. Hij heeft ruime ervaring in de software- en webontwerpindustrie met behulp van WordPress, Joomla en de niches eromheen. Hij heeft gewerkt met softwareontwikkelingsbureaus, internationale softwarebedrijven, lokale marketingbureaus en is nu hoofd Marketing Operations bij Aphex Media - een SEO-bureau. Als digitale consultant ligt zijn focus op het helpen van bedrijven om een ​​concurrentievoordeel te behalen door gebruik te maken van een combinatie van hun website en digitale platforms die vandaag de dag beschikbaar zijn. Zijn mix van technologische expertise gecombineerd met een sterk zakelijk inzicht geeft zijn geschriften een concurrentievoordeel.

Nog een ding... Wist je dat mensen die nuttige dingen zoals dit bericht delen er ook GEWELDIG uitzien? ​
Alstublieft laat een nuttig geef commentaar met je mening, deel dit dan op je Facebook-groep (en) die dit nuttig zouden vinden en laten we samen de vruchten plukken. Bedankt voor het delen en aardig zijn!

Disclosure: Deze pagina kan links bevatten naar externe sites voor producten die we geweldig vinden en die we van harte aanbevelen. Als u producten koopt die we aanbevelen, kunnen we een verwijzingsvergoeding verdienen. Dergelijke vergoedingen hebben geen invloed op onze aanbevelingen en we accepteren geen betalingen voor positieve beoordelingen.

Auteur (s) Uitgelicht op:  Inc Magazine-logo   Sitepoint-logo   CSS Tricks-logo    webdesignerdepot-logo   WPMU DEV-logo   en nog veel meer ...