Skærm iOS-udviklerfærdigheder

Udgivet: Sidst opdateret:
iOS: spørgsmål til interview med softwareingeniør

Det er svært at få fat i udviklere af mobilapps, især hvis du forsøger at udvikle en app til iOS. Det er op til dig at gå ud og finde de bedste iOS-udviklere til at bygge din mobilapp. Men det kan være en skræmmende opgave. De iOS-udviklerkompetencer, som en mobiludvikler har brug for, er ikke de samme som dem, du kender din almindelige Java-udvikler.

Dette skaber et problem for de fleste tekniske rekrutteringsfolk. De fleste af dem har simpelthen ikke den fornødne erfaring til at kunne se, om den iOS-udvikler, de rekrutterer, har de rette iOS-udviklerkompetencer eller ej. Jeg mener, du ønsker ikke at ende op med en stor gruppe af kandidater, som du skal interviewe. Det ville føre til timevis af tekniske interviews, som dit it-team ganske enkelt ikke har tid til lige nu.

Hvad skal jeg vide for at screene iOS-udviklerkompetencer?

Heldigvis har vi forberedt alle de oplysninger, du har brug for til effektivt at screene iOS-udvikleres færdigheder. Når guiden er færdig, burde du være i stand til at gå til hånde og tale sandt, når det kommer til at interviewe og screene iOS-udviklere. Du vil være i stand til at stille de rigtige spørgsmål, forstå jargonen og tyde CV'et for en god iOS-udvikler. Vigtigst af alt vil du finde ud af, hvilke tests du kan bruge til at screene dine iOS-kandidater, så du kun inviterer de bedste til samtaler. Men før alt dette er det vigtigt at lære det grundlæggende.

1. Hvad er iOS?

iOS er det styresystem, som Apple har udviklet til at drive sin allestedsnærværende iPhone. Apple er ikke tilfreds med kun at dominere telefonmarkedet, men har også brugt sit styresystem til at drive en række andre enheder, herunder iPad, Apple Watch og Apple TV. Så hvis du ansætter en iOS-udvikler, skal han eller hun så kode i iOS? Ikke helt.

Når man taler om en iOS-udvikler, er der faktisk tale om en udvikler, der bruger et eller begge de sprog, som er proprietære for iOS. Fra 2008 frigav Apple sit eget proprietære programmeringssprog, Objective-C, til brug for iOS. Det blev for fire år siden suppleret af Swift. Selv om det er de eneste to sprog, der er tilgængelige til iOS, kan du også bruge disse sprog til at udvikle software til macOS. Men selv om de kan bruges til begge styresystemer, er de lidt forskellige på nogle vigtige punkter.

  • Objective-C er reflekterende, klassebaseret og objektorienteret
  • Swift er multiparadigmatisk, protokolorienteret, objektorienteret, funktionel, imperativ og blokstruktureret

Swift har lånt sine generelle sprogidéer i høj grad fra Objective-C sammen med JavaScript, Ruby og Python. Det er også meget mere praktisk end Objective-C, især fordi det er type-sikkert. Det har betydet, at det er blevet nemmere at komme i gang med at lære iOS-programmering og forbedre sikkerheden og stabiliteten i programmerne.

Du vil opdage, at selv om der er en række gamle systemer, der bruger Objective-C, har Swift for det meste overtaget pladsen som det foretrukne programmeringssprog til iOS. Indlæringskurven for at skrive sikker, fejlfri kode er en smule stejlere med Swift end med Objective-C. Når først udviklerne mestrer Swift, er det faktisk nemmere at skrive sikker, fejlfri kode, end det var med Objective-C. Swift bruger det samme køretidsmiljø og SDK som Objective-C. Det betyder, at det er fuldt ud bagudkompatibelt med hele iOS-teknologistakken samt nye Swift only-værktøjer.

2. Hvad er vigtigt for en rekrutteringsansvarlig at vide om iOS

Du vil opdage, at iOS-miljøet ændrer sig regelmæssigt. Der er normalt en større opdatering en gang om året, som påvirker de sprog, der anvendes, og retningen for udviklingen. De annonceres normalt på WWDC eller World Wide Developers Conference. Dette er verdens største begivenhed for iOS-udviklere, hvor alle nye iOS-teknologier annonceres på keynoten. Enhver rekrutteringsansvarlig, der leder efter iOS-udviklere, bør være opmærksom på, hvad der annonceres her for at holde sig på forkant med de nyeste iOS-teknologier.

De to vigtigste biblioteker, som alle iOS-udviklere skal kende, er UIKit og Foundation. En iOS-udvikler kan simpelthen ikke bygge nogen apps uden disse, så det er obligatorisk, at udvikleren kan bruge disse værktøjer. Ud over de Apple-understøttede værktøjer er der et stort antal open source-biblioteker og -rammer, som iOS-udviklere kan trække på til at bygge deres software.

3. Sådan kontrollerer du iOS-udviklerens færdigheder i screeningsfasen

3.1. Teknisk screening af iOS-udviklerens færdigheder på grundlag af et CV

Det mest værdifulde, som en iOS-udviklers CV kan fortælle dig om, er nok de typer projekter, som kandidaten deltager i. Disse kan omfatte vigtige funktioner som Bluetooth, lokale databaser og arbejde med lokaliseringstjenester. Det er naturligvis et stort plus, hvis de har udviklet en app. Enhver app kan kontrolleres ved at gå ind i iOS app store.

At bygge apps er ikke den eneste nyttige erfaring, du skal kigge efter på kandidatens CV. Erfaring med andre sprog, især C++, er også en god ting at se. Det er også godt at se, at kandidaten har arbejdet med en specifik platform såsom Apple Watch eller Apple TV. På grund af platformens karakter ønsker du at se kendskab til enhedstest og processen for indsendelse til App Store. Endelig vil du gerne se erfaring med opsætningen af den kontinuerlige integration.

Selvom det er ret ligetil at screene et CV, kan det nogle gange være forvirrende med det ordforråd, som en rekrutteringsspecialist har brug for for at forstå, hvad der står på en iOS-udviklers CV. For at hjælpe dig har vi udarbejdet en ordliste, som du kan bruge til at forstå de vigtigste iOS-udviklerkompetencer.

3.2 Ordliste over iOS-udviklerkompetencer for tekniske rekrutteringsfolk

Sprog Swift, Objective-C
Generelt GCD, operationel kø, push-meddelelser, kendskab til kodesignering,
Database Sqlite, CoreData, Realm
UI UIKit, Core Animation, Autolayout, størrelsesklasser, SnapKit
Specifikke rammer (alle fungerer både i Objective-C og Swift) Kerneplacering, MapKit, AVFoundation, StoreKit, udvidelser, adressebog, EventKit, CAllKit, SiriKit, Core Bluetooth

3.3 Flere oplysninger om iOS, som det ville være nyttigt for en rekrutteringsansvarlig at vide

Der er blevet tilføjet nye funktioner til hver ny version af iOS. Og efterhånden som der tilføjes nye funktioner, udvikles der nye rammer til at interagere med dem (SiriKit, CallKit, WatchKit og MapKit).

Derudover er de forskellige versioner af styresystemet grundlæggende ens med kun tilføjelsen af nye udvidelser.

De mest almindelige iOS-teknologinavne, der bruges i flæng

CoreData og SQLite kan bruges i flæng

Hvor tæt de respektive versioner af iOS-teknologier er på hinanden:

Alle de versioner af Swift, der findes, ligner hinanden. Sproget har naturligvis gennemgået flere iterationer fra 1.0 til 4.2. Og hver af disse har indført deres egne specifikke ændringer. Men hvis nogen har erfaring med tre, bør de ikke have nogen problemer med at bruge den nyeste version.

4. iOS-udviklerfærdigheder: interviewspørgsmål

Samtalen er et vigtigt tidspunkt til at få kendskab til de problemer, som din kandidat har stået over for, og deres tilgang til at løse problemer. Det kan ikke erstatte en teknisk screening, men det kan være med til at træffe din beslutning.

4.1 Spørgsmål om platformserfaring for en iOS-udvikler

Q1: Vælg nogle teknologier fra kandidatens CV og bed kandidaten om at forklare, hvad de er, og hvordan de anvendes.

Hvorfor du skal spørge Q1: Bare for at kontrollere deres kendskab til de teknologier, de nævnte.

Q2: Bed kandidaten om at beskrive det mest interessante projekt, han/hun har deltaget i, og hvilken rolle han/hun spillede i projektet.

Hvorfor du bør spørge Q2: At undersøge, hvor komplekse og varierede de projekter, som udvikleren har oplevet, har været, og hvilken rolle han/hun har haft (udvikler, ledende udvikler, arkitekt).

4.2 En iOS-udviklers færdigheder: viden og holdninger

Q3: Bed kandidaten om at sammenligne Swift og Objective-C.

Hvorfor du skal spørge Q3: Det giver en forståelse af, hvor erfaren udvikleren er, og om han/hun har arbejdet med Objective-C eller ej. I de fleste tilfælde er det ikke nok at kende Swift. Selv på juniorniveau skal en iOS-kandidat være i stand til at forstå og bruge både Objective-C og Swift.

Q4: Hvilke iOS-teknologier er meget udbredte i dag, og hvilke teknologier kan blive populære i fremtiden?

Hvorfor du skal spørge Q4: Det fortæller dig, om kandidaten har evnen til at analysere og forudsige tendenser på it-markedet og i branchen, baseret på iOS-udviklerkompetencer.

Q5: Hvordan kan du undgå hukommelseslækager?

Hvorfor du bør spørge Q5: Du vil se, om kandidaten er bevidst om potentielle problemer, når han/hun bruger stærke/svage referencer. Husk på, at blokke og closures kan bevare en stærk forbindelse til et objekt.

4.3 Adfærdsmæssige spørgsmål til en iOS-udvikler

Q6: Har du erfaring med at undervise og vejlede nogen i Swift?

Hvorfor du skal spørge Q6: Tjek, om udvikleren er i stand til at være en god mentor for nybegyndere.

Q7: Spørg, hvilke af kandidatens løsninger og projekter de er mest stolte af?

Hvorfor du bør spørge Q7: Dette vil hjælpe dig med at kontrollere kompleksitetsniveauet for opgaverne i tidligere projekter

5. Teknisk screening af iOS-færdigheder med en online kodningstest

CV-screening og interviews kan være nyttige for at ansætte iOS-udviklere, men de kan ikke fortælle dig, om din kandidat har de rette iOS-færdigheder. Det, du virkelig har brug for dem til at lave, er noget egentlig softwareudvikling. Dette kan være et problem, hvis det gøres på den forkerte måde, fordi kandidaterne har begrænset tid og tålmodighed til at lave et kodningsprojekt. En online kodningstest kan være en god løsning. Men hvordan ved du, hvilken en du skal vælge? Den rigtige skal have nogle få nøglefunktioner.

  1. Det drejer sig om de typer opgaver, som kandidaten rent faktisk skal udføre, når han/hun er ansat (og de reelle iOS-udviklerfærdigheder, som han/hun skal bruge for at gøre det)
  2. Den skal dække både den teknologi og den teknologiske stak, som de skal arbejde i
  3. Den skal være så tæt på den naturlige udviklingsproces så vidt muligt - Det betyder:
    1. Kandidaten skal have adgang til sin egen IDE
    2. De skal kunne bruge alle de ressourcer, som de normalt ville bruge på arbejdet, herunder biblioteker, frameworks, Stack Overflow og endda Google.
  4. Den skal teste kodningsevner, men også forretningslogik
  5. Den skal belyse den type kodningsbeslutninger, som kandidaten træffer
  6. Den skal være let at tage med overalt for at undgå unødigt besvær for kandidaten

Desværre opfylder de fleste online kodningsprøver ikke disse krav. Algoritmetests kan fortælle dig, om kandidaten kan kode, men de kan ikke fortælle dig, hvor godt kandidaten kender miljøet, de beslutninger, han/hun træffer, og den forretningslogik, han/hun bruger. I det væsentlige yder de ikke iOS-udviklerens færdigheder retfærdighed. De er også en temmelig unaturlig måde at skrive kode på. Resultatet er, at de afviser mange udviklere, som ikke føler, at de ikke kan repræsentere deres færdigheder korrekt på denne måde. Disse udviklere risikerer at falde ud af din rekrutteringsrørledning.

Arbejdsprøvetestene på DevSkiller løser disse problemer. På DevSkiller vil dine iOS-udviklere blive bedt om at bygge en rigtig funktion eller en lille applikation til iOS. Prøverne kan tages fra et hvilket som helst sted i verden og repræsenterer et naturligt programmeringsmiljø. Du kan tjekke de forskellige iOS-tests i både Objective-C og Swift fra vores katalog over kodningstest.

6. DevSkiller online vurdering af færdigheder for iOS-udviklere, der er klar til brug

Hurtig
SENIOR
Testede færdigheder
Varighed
77 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Hurtig, iOS

Programmeringsopgave - Niveau: svær

iOS | Swift | NSA Cipher Tool - Løs de 3 kryptografiske gåder for at få drømmestillingen som programmør i NSA.

Hurtig
MIDDLE
Testede færdigheder
Varighed
48 minutter max.
Evaluering
Manuel
Testoversigt

Spørgsmål efter valg

vurdering af viden om Hurtig, iOS

Huller i koden

vurdering af viden om Hurtig, Unicode, iOS

Opgave med gennemgang af kode - Niveau:

iOS | Swift | BookDataAnalyst - Gennemfør venligst en kodegennemgang af denne kode. Vær opmærksom på kvaliteten og overholdelsen af bedste praksis.

Hurtig
MIDDLE
Testede færdigheder
Varighed
126 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om iOS, Hurtig

Programmeringsopgave - Niveau: Medium

iOS | Swift | Book Keeper App - Initialiser Core Data Stack, herunder lagring og generisk hentning af elementer, og implementer yderligere funktionalitet ved at udfylde de manglende metoder og rette UI-funktionaliteten.

Hurtig
SENIOR
Testede færdigheder
Varighed
165 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om Hurtig, iOS

Programmeringsopgave - Niveau: svær

iOS | Swift | Book Keeper App - Initialiser Core Data Stack til at arbejde samtidig, herunder lagring på en baggrundstråd og generisk hentning af elementer på hovedtråden; implementer yderligere funktionalitet ved at udfylde de manglende metoder og rette brugergrænsefladen, så en bruger kan tilføje eller redigere virksomhedselementer og fakturaer; implementer søgefunktionaliteten i begge visninger. Endelig skal han begrænse textField-indtastningen på passende vis for at bestå testene.

Hurtig
JUNIOR
Testede færdigheder
Varighed
55 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om iOS, Hurtig

Programmeringsopgave - Niveau:

IOS | Swift | Vejr-app - Byg en app, der analyserer vejrdata, som modtages fra en vejrtjeneste backend. Kandidaten skal læse den medfølgende JSON-fil, oprette en datamodel, analysere den og udfylde de manglende funktioner for at hente de ønskede vejrforhold fra modellen.

Hurtig
MIDDLE
Testede færdigheder
Varighed
80 minutter max.
Evaluering
Automatisk
Testoversigt

Spørgsmål efter valg

vurdering af viden om iOS, Hurtig

Programmeringsopgave - Niveau: Medium

iOS | Swift | CoffeHouse Analyst App - Implementer funktionaliteten til at analysere de givne data for ledelsen ved at udfylde de manglende funktioner.

Del indlæg

Få mere at vide om ansættelse af teknologiske medarbejdere

Tilmeld dig vores Learning Hub for at få nyttig viden direkte i din indbakke.

Kontroller og udvikl kodningsevner uden problemer.

Se DevSkiller-produkterne i aktion.

Sikkerhedscertificeringer og overholdelse. Vi sørger for, at dine data er sikre og beskyttede.

DevSkiller-logo TalentBoost-logo TalentScore-logo