Hur du granskar React Native-utvecklarens färdigheter

Publicerad: Senast uppdaterad:
Kunskaper som React-utvecklare

React får all uppmärksamhet, men React Native har stadigt blivit en viktig del av JavaScript-universumet. Det gör det möjligt för mobilutvecklare att skriva mobilapplikationer som kan anpassas till både iOS och Android. Fördelen med detta är att i stället för att behöva utveckla separata iOS-kunskaper (Objective-C och Swift) och Android-kunskaper (Java och Kotlin) kan utvecklare av mobilapplikationer dra nytta av JavaScript, det mest använda språket för tillfället. Men som i alla tekniska staplar räcker det inte med att bara kunna JavaScript. Du måste ha en djupgående förståelse för React Native. Så hur kan arbetsgivare se om en React Native-utvecklare har de färdigheter de behöver?

En guide för att granska React Native-utvecklarens färdigheter

Den här guiden ger tekniska rekryterare all den information de behöver för att granska kandidater som är React Native-utvecklare. I guiden hittar du följande:

Vad är en React Native-utvecklare?

1. Vad är React Native?

React Native är ett ramverk som utformats och underhålls av Facebook i syfte att förenkla utvecklingen av plattformsoberoende mobilapplikationer, främst när det gäller användargränssnittet. Det bygger på ett annat JavaScript-bibliotek React som snabbt har nått status som det mest populära och igenkännbara verktyget bland frontutvecklare. Men dess uppgång har lockat till sig en del kontroverser.

React Native släpptes 2015 som ett projekt med öppen källkod och delade snabbt upp mobilutvecklare. Innan React Native kom hade det funnits ett antal verktyg som visade webbsidor skrivna i HTML, CSS och JavaScript i en fristående webbläsare som imiterade den inhemska appen. Om det låter klumpigt har du rätt. De har visat sig vara besvärliga att använda och har inte varit särskilt populära.

React Native undviker däremot att ta samma genvägar som sina föregångare. Den visningshierarki som visas av programmet är helt och hållet inhemsk i det system som det körs på. Med andra ord ser appen ut som om den är en inhemsk app snarare än en webbsida. Detta gör att React Native-applikationer inte går att skilja från vanliga applikationer som är skrivna i Swift, Objective-C, Kotlin eller Java. För att se hur det fungerar i praktiken kan du kolla in populära appar som Facebook, Messenger, Instagram eller Discord. Till och med en expert skulle ha svårt att se vilka delar av dessa appar som är skrivna i React Native och vilka som är skrivna med hjälp av en annan teknisk stack.

1.1 Skillnaden mellan React vs React Native

React och React Native är båda open source-projekt som skapats av Facebook, men de är inte samma sak. React React Native är ett ramverk som tillhandahåller en enhetlig uppsättning verktyg för att bygga mobilapplikationer för både iOS och Android. Detta leder till grundläggande skillnader som det faktum att React återges i HTML medan React Native inte gör det. React Native ger också React Native-utvecklare möjlighet att konvertera eller överbrygga native views som skrivits i plattformsspecifika språk som Swift eller Kotlin till något som kan användas av React Native.

Men trots skillnaderna är React och React Native väldigt lika varandra, och React Native använder många av Reacts grundprinciper. För att arbeta med React Native krävs att man använder 70-80% av Reacts komponenter och metoder. På grund av detta är inlärningskurvan för en React-utvecklare att lära sig React Native inte särskilt brant. Det är ändå två separata tekniker som inte bör förväxlas med varandra.

2. Vad används React Native till?

Den största fördelen med React Native är att React Native-utvecklaren kan skapa applikationer för olika plattformar utan att behöva lära sig och använda flera olika teknikstackar. Facebook kallar detta tillvägagångssätt för "lär dig en gång, skriv var som helst". Deras mål med att utveckla React Native är att förenhetliga den kunskap som krävs för att bygga mobilapplikationer.

React Native ger utvecklare ett deklarativt sätt att bygga användargränssnitt. I lekmannatermer kan man säga att detta ger en mycket lättare inlärningskurva jämfört med det ursprungliga UIKit för iOS eller Android SDK. Detta har inneburit att många apputvecklare använder det som ett sätt att komma in i utvecklingen av mobilappar. Det har också lett till ett antal konkurrerande verktyg som Googles Flutter eller Apples nyligen tillkännagivna SwiftUI som har utvecklats enligt liknande principer.

Men även om React Native är ett enkelt sätt att börja utveckla appar är det grunden för en del kraftfulla appar. Bloomberg, Airbnb och UberEats är alla bra exempel på appar som byggts med React Native.

Vad bör en IT-rekryterare veta om en React Native-utvecklare?

3. Vad är viktigt för en IT-rekryterare att veta om React Native?

React Native är fortfarande ett ganska ungt ramverk och är föremål för flera förändringar som antingen har en liten eller stor inverkan på utvecklarens arbete. För det mesta är dessa ändringar frivilliga och det finns få eller inga hårda depreceringar som kan få en React Native-utvecklare att migrera sin kodbas.

På grund av dess öppna karaktär är färdplanen med alla planerade ändringar och förbättringar tillgänglig för gemenskapen. Med det senaste tillägget av hooks och ännu fler ändringar som är planerade för den närmaste framtiden kommer processen att skapa en mobilapplikation att bli ännu snabbare och bekvämare än någonsin.

En obestridlig fördel med React Native är dess breda och hjälpsamma community. Många frågor på alla nivåer har redan besvarats i antingen en bloggartikel, ett inlägg på Stack Overflow eller ett mikrobibliotek som lagts ut som ett NPM-paket. Det finns många resurser för nybörjare som vill lära sig och för avancerade utvecklare som vill utöka sina kunskaper.

En viktig sak att komma ihåg är dock att inte blanda ihop Facebooks strategi "lär dig en gång, skriv var som helst" med "skriv en gång, skriv var som helst". Det är fortfarande svårt att i React Native skriva en app som fungerar i iOS och Android. Detta beror på att det fortfarande finns många systemberoende funktioner som kräver att delar av din kod delas upp i separata iOS- och Android-versioner. Ändå är målet med React Native att förenhetliga färdigheterna för att bygga appar, inte att skapa en app som fungerar på båda plattformarna.

3.1 Vilken erfarenhet bör en React Native-utvecklare ha?

När du bedömer ett CV för en React Native-utvecklare handlar det i själva verket om vilken typ av tjänst kandidaten rekryteras till. Att vara involverad i kommersiella projekt är ett måste när man talar om ledande befattningar, eftersom affärsrelaterade kunskaper förväntas för dessa roller. För andra nivåer spelar det inte så stor roll. En fördel med bidrag till öppen källkod är att de kan ge rekryteraren ytterligare insikter om kodstilen eller hur kandidaten interagerar med gemenskapen. Sammanfattningsvis är det verkligen viktigt att förstå teamets behov och rollens ansvarsområden innan man påbörjar urvalsprocessen.

Hur verifierar man React Native-kompetens i screeningfasen?

4. Teknisk screening av en React Native-utvecklares färdigheter baserat på ett CV.

React Native är ganska unikt när det gäller hur folk kommer in i det och vilken bakgrund de har. Vissa webbutvecklare som är bekanta med JavaScript och kanske även med React i sig kanske vill utöka sina färdigheter till att även omfatta mobilutveckling. Omvänt kan vissa mobila utvecklare som arbetar med nativeutveckling känna igen styrkorna i React Natives tillvägagångssätt och verktyg och vill utnyttja dem i sitt dagliga arbete. Båda kan ge ett betydande bidrag till teamet, den förstnämnda med JS- eller React-specifika mönster och bästa praxis, den sistnämnda med kunskap om vissa funktioner och begränsningar i en mobilspecifik miljö. Det skulle vara bra för rekryteraren att veta exakt vilken roll kandidaten kommer att ha och vilka färdigheter som efterfrågas av teamet.

React Native-utvecklarordlista

5. React Native-ordlista för tekniska rekryterare

Aktuella JavaScript-standarder ECMAScript2015 (även kallad ES6), ECMAScript2019 (även kallad ES10)
JavaScript superset som lägger till stark typning TypeScript
React Native-bibliotek React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL

Pakethanterare

NMP, Garn
JavaScript-tillägg JSX
Verktyg som hjälper till att upprätthålla kodstilen ESLint, TSLint, Prettier
Testlöpare Jest, Mocha

5.1 Vilka tekniker du ska leta efter i ett CV som React Native-utvecklare

En viktig sak att titta på är vilken JavaScript-standard kandidaten känner till. Från och med 2015 med ECMAScript2015 (även kallad ES6) släpps en ny JavaScript-standard varje år. Den nuvarande iterationen från och med 2019 kallas ECMAScript2019 (ES10). Dessa olika standarder kan påverka det React Native API som kandidaten hittills har använt.

Den största förändringen skedde mellan standarderna ES5 (2009) och ES6 (2015). Men kod som är skriven i de nyare standarderna kan alltid överföras till de äldre standarderna med hjälp av verktyg som Babel.

5.2 Andra saker att tänka på i ett CV som React Native-utvecklare

En färdighet som också kan vara användbar för en React Native-utvecklare är TypeScript. Detta är en överordnad version av JavaScript som använder statisk typning. Statisk typning hjälper i allmänhet till att identifiera vissa fel i koden mycket tidigare (den ersätter dock inte enhetstester i den frågan) och gör det möjligt för utvecklarna att uttrycka sina intentioner om de offentliga API:er som de exponerar för allmänheten på ett tydligare och bättre strukturerat sätt.

Det finns också många React Native-bibliotek som är inriktade på att lösa särskilda problem, t.ex. navigering eller tillståndshantering. Kännedomen med dessa är starkt korrelerad med de typer av projekt som kandidaten har arbetat med. Om en kandidat listar ett bibliotek som React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL eller många andra kan detta vara en intressant ingångspunkt för diskussionen om kandidatens tidigare erfarenhet.

Intervjufrågor för React Native-utvecklare

6. Intervjufrågor om React Native

I ett CV kan du se hur en kandidat presenterar sina kunskaper. Men det räcker inte för att avgöra om de har de färdigheter du behöver. När allt kommer omkring kan vem som helst skriva vad som helst i ett CV. De måste sedan tillfrågas om sina färdigheter i en telefonundersökning eller intervjuas efter att ha klarat bedömningen av kodningsfärdigheter.

6.1 Frågor om React Native-utvecklarens erfarenhet

Fråga 1: Kan du beskriva de tillämpningar som du har arbetat med tidigare? Hur använde du React Native i dessa applikationer?

Skäl: Den här frågan ska främst fungera som en uppvärmning för att kandidaten ska öppna sig och ta initiativ till att berätta om sina allmänna erfarenheter. Det är viktigt att fråga hur React Native användes av deras team som en uppföljning. Detta gör det möjligt för rekryteraren att bedöma vilka områden av React Native som kandidaten kan vara bekant med - t.ex. om RN användes i hela appen eller bara i vissa av skärmarna, överbryggades den med inhemska delar skrivna i Objective-C/Java osv.

Q2: Varför valde du och ditt team att använda React Native? Vad var det största försäljningsargumentet för er? Hur hjälpte det i de tillämpningar du har arbetat med?

R: Svaret på den här frågan kan berätta flera saker för rekryteraren. Det visar delvis vilken position eller vilket ansvar kandidaten hade i sitt team - var han eller hon delaktig i beslutsprocessen? Och även om inte, är de medvetna om de viktigaste React Native-ändamålen som kan ha sålt idén till sina kollegor? Det visar också om kandidaten kan fatta ett tekniskt beslut baserat på affärskraven i de applikationer han eller hon arbetat med eller om han eller hon bara följer trenden.

Q3: Hur hanterade du staten i dessa ansökningar? Hur fungerade det?

R: Detta är en något mer teknisk fråga. Eftersom React Native i sin kärna bara är ett användargränssnittslager är det viktigt att veta vad kandidaten använde för att fylla de återstående tomrummen, varav en är tillståndshantering. Detta har potential att öppna upp diskussionen om enkelriktat dataflöde (redux, flux) eller hantering av tillstånd från externa tjänster (REST, GraphQL). Det ger också en uppfattning om kandidatens förmåga att bedöma för- och nackdelar med det valda tillvägagångssättet, vilket är en viktig färdighet i självutveckling.

6.2 Frågor om en React Native-utvecklares kunskaper och åsikter

Q1: Vilken typ av komponenter kan man använda i React Native? Hur skiljer de sig åt? När ska man använda vilka?

R: Den här frågan kan tolkas på olika sätt av kandidaten. Komponenterna kan delas upp antingen i container/presentation eller i stateful/pure/functional. Det spelar ingen roll vilket sätt att tänka kandidaten visar här, denna fråga handlar mer om att kandidaten ska kunna tala om syftet eller gränserna för varje komponent helst i samband med sin egen erfarenhet.

Q2: Hur återanvänder du kod i din applikation? Vilka tekniker känner du till för att dela gemensam logik och vad tycker du om dem?

R: Det finns flera sätt att återanvända kod, varav de mest populära är Higher Order Components, Render Props, Hooks och Context. Användningen av dessa är vanligtvis baserad på lagets preferenser, så huvudpoängen här är att kandidaten ska förklara varför han eller hon skulle använda en av dem i stället för en annan. Det bör ge rekryteraren en känsla av hur djup kandidatens kunskap är, en förståelse för React Native-interna och hur mycket kandidaten bryr sig om ren och underhållbar kod.

Q3: Hur felsöker du programmet? Vilka verktyg använder du och hur hjälpsamma är de?

R: Den största delen av React Native-utvecklarens tid går åt till att läsa, analysera och felsöka den befintliga kodbasen. Därför är det avgörande med den skicklighet och kunskap som krävs för att felsöka appen på ett korrekt och effektivt sätt. Kandidaten kan nämna olika tillvägagångssätt som varierar från att använda vanliga loggar till att koppla in en debugger för att använda brytpunkter eller inspektera vyhierarkin via React Dev Tools. Var och en av dessa metoder har vissa specifika fall där den är bäst, så kandidaten bör också nämna en exempelsituation där den användes. Bonuspoäng för att nämna ett enhetstest som reproducerar felet och får det att passera som ett sätt att fastställa att felet har rättats och kommer att förbli rättat i framtiden.

Q4: Har du någonsin stött på prestandaproblem med din app? Vad använde du för att diagnostisera dem? Hur löste du dem?

R: React Natives prestanda tas ofta upp av skeptiker när det gäller användbarheten. Även om det är sant att det är lätt att falla i vissa fällor som gör att bildfrekvensen sjunker i processen, räcker det att förstå React och React Native internt för att minska dessa problem. Kandidaterna kan nämna tekniker som memorering, förbättringar som rena komponenter eller fallgropar som inline-funktioner. Dessa täcker en betydande del av de orsaker som gör att gränssnittet blir mindre responsivt. När kandidaterna talar om verktyg som profiler och begrepp som blending och offscreen rendering blir det tydligt att de har ställts inför verkligt komplexa problem (förmodligen med animationer). Det ideala svaret bör också nämna att för att förbättra prestandan måste man ha en uppsättning mätvärden att minimera eller maximera (som FPS, minnes- eller CPU-förbrukning etc.) eftersom det utan dem är svårt att bedöma om React Native-utvecklaren går i rätt riktning.

Q5: Hur är det med tester? Har ni använt dem? Hur har de hjälpt ditt team? Vilka typer av tester använde ni?

R: Testning är fortfarande ett förvånansvärt kontroversiellt ämne. Vare sig man gillar det eller inte måste ett program testas på åtminstone något sätt innan det skickas till produktion för att se till att nya funktioner fungerar enligt specifikationerna och, ännu viktigare, att den gamla inte gick sönder. Att ha ett starkt och dedikerat QA-team hjälper definitivt till med detta, men att ha enhetstester eller snapshot-tester ger React Native-utvecklaren omedelbar feedback som de kan använda för att rätta till koden. Tester är ett verktyg för utvecklare som avsevärt ökar deras förtroende för de förändringar som införs i kodbasen. Ett test fångar ögonblicket då applikationen fungerar korrekt och upprätthåller denna korrekthet från den punkten och framåt. Det finns flera JavaScript-testrunners, Jest är det mest rekommenderade i samband med React Native, särskilt eftersom det kommer från React Natives författare. Dessutom kan man använda en react-test-renderer för att antingen testa beteendet hos en viss komponent eller snapshot av en hel visningshierarki för att skydda den från oväntade ändringar.

Q6: Hur upprätthåller du kodstilen i ditt team? Hur hanterar ni kodbasen tillsammans?

R: Det här är en lättare fråga för att avslöja kandidatens kunskaper om olika verktyg som används i utvecklingsprocessen. Svaren här kan vara mycket breda. De kan sträcka sig från Prettier och ESLint, som på motsvarande sätt automatiserar kodformatering och kontrollerar om den skrivna koden stämmer överens med de regler som teamet fastställt, till begrepp som kontinuerlig integration eller till och med versionskontrollsystem som Git. Kandidaten kanske till och med nämner metoder som kodgranskning. Huvudsyftet med frågan är att visa hur och på vilket sätt kandidaterna samarbetade med sina team och hur mycket av det upprepningsbara arbetet de kunde automatisera.

6.3 Beteendefrågor att ställa till en React Native-utvecklare

Q1: Vad var den största prestationen under din karriär? Vad var det största misstaget? Vilka åtgärder skulle du vidta för att upprepa framgången eller undvika att upprepa misslyckandet?

R: Det är en ganska allmän fråga, men den visar på kandidatens självkännedom och förmåga till självkritik. Båda behövs i inlärningsprocessen, som är en ständig del av att vara en bra mjukvaruutvecklare.

Q2: Hur skulle du hantera en situation där ditt projekt har en deadline i morgon, men där det fortfarande finns några funktioner kvar att implementera?

R: Det är inte alls så svårt att tänka sig, och det finns en stor chans att kandidaten har ställts inför en sådan situation tidigare. Kanske har kandidaten försökt förhandla och få mer tid för att slutföra jobbet. Kanske satte de sig ner med produktägaren eller chefen för att prioritera funktionerna och hålla sig till någon form av MVP. Kanske har de implementerat vissa funktioner på ett sätt som var snabbt men inte särskilt lätt att underhålla för att vinna tid och ställa in en påminnelse om att göra en upprensning senare. Det finns olika tillvägagångssätt och syftet med denna fråga är att visa rekryteraren om kandidaterna förstår vikten av affärsmålen och om de kan göra vissa avvägningar på teknisk nivå för att uppfylla dem.

Q3: Vilka resurser skulle du rekommendera för en junior/regelbunden utvecklare för att förbättra sina färdigheter? Skulle du vilja vara mentor för en sådan utvecklare? Har du gjort det tidigare?

R: Svaret på denna fråga är ett indirekt sätt att kontrollera vilka av dessa resurser som kandidaten har använt tidigare och varför. Detta ger rekryteraren ytterligare information om bakgrunden. Mentorskapsdelen kan indikera om React Native-utvecklaren gillar att dela med sig av kunskap, vilket också kan påverka teamet positivt.

Q4: Vilka områden inom mobilutveckling eller mjukvaruutveckling vill du utforska eller bekanta dig mer med? Varför?

R: Den här frågan ger rekryteraren en fingervisning om vilka ämnen som kan vara intressanta för kandidaten och i vilken riktning kandidaten vill utveckla sin karriär. Den gör det möjligt för rekryteraren att bedöma om det projekt som kandidaten rekryteras till skulle passa bra.

React Native Developer Kodningstester

7. Teknisk screening av React Native-utvecklarens färdigheter med hjälp av ett kodningstest online.

Ett CV för React Native-utvecklare innehåller de färdigheter som dina kandidater säger att de har, och telefonundersökningen ger dig en möjlighet att kontrollera om de har teoretisk kunskap om begrepp relaterade till React Native-utveckling. Men bara för att en kandidat har teoretiska kunskaper är det inte säkert att han eller hon kan tillämpa dem i den praktiska mjukvaruutvecklingen. Ett kodningstest online kan ge dig en glimt av hur väl en kandidat kan utveckla en applikation med React Native.

7.1 Vilket programmeringstest för React Native ska du välja?

Det finns några alternativ, men det är viktigt att välja ett test som specifikt använder React Native, inte JavaScript eller React. Här är några riktlinjer:

  • Testet speglar det arbete som ditt företag utför
  • Den är av rimlig längd, en till två timmar (eller ännu mindre).
  • Avsändningen är automatiserad.
  • Testet kan göras i kandidatens hem.
  • Den kontrollerar kodkvaliteten och kantfall samt lösningar.
  • Kandidaten har tillgång till alla normala resurser som de använder för att utveckla programvara.
  • Det är ett projekt som inte bara ger kandidaten tillgång till React Native-ramverket utan även till de olika bibliotek som används med React Native.
  • Den är kalibrerad för att matcha nivån på positionen.

7.2 DevSkiller redo att använda online-tester för kodning av React Native-utvecklare

Devskillers react Native-tester bygger på vår RealLifeTesting™-metodik för att säkerställa en helt korrekt bild av kandidatens färdigheter. Testet kan göras på den plats och vid den tidpunkt där kandidaten känner sig mest bekväm och redo. De har tillgång till alla resurser de behöver som GitHub, Stack Overflow, Google och andra React Native-bibliotek. Detta är en funktion, inte ett fel, eftersom det visar vilka beslut kandidaten fattar i en naturlig programmeringsmiljö. Du kan se hur väl kandidaten utför uppgiften, men också vilka beslut de fattar, vilken affärslogik de tillämpar, hur effektiv och ren koden är och hur väl de känner till den tekniska stapeln.

Du kan bygga ditt eget test eller använda ett av DevSkillers egna test som byggs av erfarna React Native-experter.

React Native
MIDDLE
Testade färdigheter
Varaktighet
107 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om React Native

Luckor i koden

bedömning av kunskaper om JavaScript, React Native

Programmeringsuppgift - Nivå:

React Native | Cheeper - en ny app för sociala medier - Slutför implementeringen så att grundläggande sociala kontakter blir möjliga.

React Native
SENIOR
Testade färdigheter
Varaktighet
108 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om ES6, JavaScript

Programmeringsuppgift - Nivå: Svårt

React Native | Movie Store - Implementera en applikation som gör det möjligt för användare att köpa alla filmer de kan tänka sig.

React Native
MIDDLE
Testade färdigheter
Varaktighet
101 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om ES6, JavaScript

Programmeringsuppgift - Nivå:

React Native | HR Companion App - Implementera en applikation för att hjälpa HR-avdelningen med att upprätthålla listan över kandidater som ska utvärderas.

React Native
JUNIOR
Testade färdigheter
Varaktighet
70 minuter max.
Utvärdering
Automatisk
Översikt över testet

Frågor om valmöjligheter

bedömning av kunskaper om ES6, JavaScript

Programmeringsuppgift - Nivå:

React Native | Ultimate BugTracker - Implementera saknade funktioner och åtgärda buggar i programmet som används som en intern bugtracker i ett programvaruhus.

Dela inlägg

Läs mer om rekrytering av tekniker

Prenumerera på vår Learning Hub för att få nyttiga insikter direkt i din inkorg.

Kontrollera och utveckla kodningsfärdigheter utan problem.

Se DevSkillers produkter i praktiken.

Säkerhetscertifieringar och efterlevnad. Vi ser till att dina data är säkra och skyddade.

DevSkillers logotyp TalentBoost logotyp TalentScore-logotyp