Att hitta en mobilapputvecklare som gör sitt jobb bra kan vara utmanande om du inte har ett systematiskt tillvägagångssätt och en plan. Här är vad du bör göra i varje steg av rekryteringsprocessen, förklarat genom användbara tips och checklistor för att hjälpa dig att övervaka processen enklare.
Om utveckling av mobilappar
Utveckling av mobilappar innebär att skapa programvara för operativsystemen Android och iOS samt för trådlösa och små enheter, t.ex. surfplattor och smartphones.
Mobilappsutveckling och webbappsutveckling liknar varandra i den meningen att båda är traditionella (mainstream) utvecklingsmetoder, med en stor skillnad - när utvecklare skapar mobilappar skrivs apparna specifikt för enhetens unika funktioner, som kamera, Bluetooth, GPS, mikrofon och andra.
Utvecklarna skriver koden för den specifika programvaran genom att välja bland flera ramverk för apputveckling och sedan gå vidare till att utforma en app.
Vad behöver du utveckla?
Innan du påbörjar något uppdrag måste du veta vilken typ av app du behöver utveckla. Låt oss se vilka typer av appar det finns.
Appar är indelade i:
-
Inhemska mobilappar - Appar som kan laddas ner och installeras på den mobila enheten. Om till exempel en native mobilapp är för Android, kommer appens kodbas att vara lämplig för publicering i Google Play-butiken, bland andra butiker, naturligtvis.
-
Progressive web apps (PWAs) - PWAs är appar som levereras via webben, och de använder vanligtvis "vanliga" webbtekniker (HTML + CSS + JavaScript eller Ruby) och baseras ofta på ett antal olika frontend-ramverk. Användarna kan komma åt dessa appar från webbläsaren i en mobiltelefon, och dessa appar har en responsiv design som fungerar bra på alla mobilsystem.
-
Hybrid mobilapp - Hybridapparna är webbappar som har ett inbyggt skal, så de ser ut som en inbyggd app men körs i en webbläsarliknande miljö (eller kallas WebView), och alla mobila webbläsare fungerar på detta sätt.
Vilken kategori av app behöver du?
Det här är de vanligaste kategorierna av mobilappar för företag:
-
Spel & interaktiva - Ett bra val när du behöver skapa en dynamisk upplevelse för kunderna och få dem att engagera sig i varandra. Dessa inkluderar spel eller vissa appar för onlineshopping.
-
Loyalty - Dessa appar är bäst för att ge vissa användarfördelar, till exempel att samla belöningar, kuponger, rabatter, specialerbjudanden och liknande.
-
Innehåll - De här apparna är perfekta för att tillhandahålla innehåll för verksamheten, till exempel blogga, vlogga eller publicera användbart innehåll för specifika målgrupper.
-
Schedule and reservation - Den perfekta lösningen för dig som arbetar inom rese- och hotellbranschen.
-
Kundtjänst - Dessa appar är särskilt anpassade för att tillgodose kundernas frågor och förfrågningar, tillhandahålla vanliga frågor och svar och hjälp.
-
Shopping - Detta är perfekt för dem som arbetar inom detaljhandeln och passar alla företagsstorlekar.
-
FinTech - Denna bransch växer snabbt och fokuserar på teknik och finansiella tjänster (betalningshantering, valutor etc.).
Varför behöver du anlita en mobilapputvecklare?
Du måste anställa en mobilapputvecklare om du behöver:
-
Ledre driftskostnader och driva mer betydande vinst
-
Ett innovativt tillvägagångssätt för att skapa fantastiska appar
-
Nöjda kunder med en meningsfull appupplevelse
-
Få tillgång till mer djupgående användarinsikter
-
Förbättrad varumärkesmedvetenhet
-
Omedelbar kundtjänst
-
Få feedback i realtid
-
Skala upp ditt företag och behålla konkurrenskraften
Intervju med en mobilapputvecklare
För en relevant bedömning av alla kandidater, förbered dig med en checklista för tekniska färdigheter och en lista med intervjufrågor (och svar). Även om kommunikationsfärdigheter också hör hemma i bedömningssegmenten, lägger du nästan allt fokus på tekniska färdigheter.
Checklista för tekniska färdigheter
-
Expertis inom backend-databehandling - Kunskap om backend-teknik är inte obligatorisk, och det är vanligast hos dem med fullstack-erfarenhet. För det mesta bör en utvecklare veta hur man enkelt får tillgång till data som tillhandahålls av backend-utvecklaren. Helst ska de ha kunskaper i en (högst två) av följande plattformsoberoende tekniker: Flutter, React Native, Ionic, Xamarin, NativeScript, eller Apache Cordova. Det är viktigt att notera att mobilappsutvecklaren måste känna till antingen någon av dessa plattformsoberoende tekniker ovan eller native applikationsutveckling (Java/Kotlin för Android och Swift/Objective-C för iOS).
-
Goda kunskaper i specifika programmeringsspråk - Det är viktigt att notera att om utvecklaren har specialiserat sig på att arbeta med inbyggda funktioner (t.ex. Android-utvecklare som arbetar med lågnivåuppgifter inklusive C++), kommer de förmodligen att behöva kunna Java/Kotlin och C++ väl. Utöver detta kanske vissa utvecklare till och med kan Swift eller Dart, men detta är helt valfritt.
-
Utmärkta kunskaper om frontend-utveckling - Mobilapputvecklaren måste veta hur frontend kommer att se ut, dvs. de måste planera placeringen av element och skriva kod för specifika appfunktioner. Några nödvändiga frontend-färdigheter för mobilapputvecklare är HTML, CSS, TypeScript, biblioteket jQuery och kompatibilitet mellan webbläsare.
-
God kunskap om Agile-utveckling - Agile-metoden hjälper mobilapputvecklare att arbeta bra i en teammiljö och vara anpassningsbara.
-
Utmärkt expertis inom UI-design - UI avgör hur mobilappen fungerar.
-
Väsentlig kunskap om cybersäkerhet - Cybersäkerhet är en annan viktig del av utvecklingen av mobilappar som handlar om att använda appen på ett säkert sätt och ge säker tillgång till information.
-
Erfarenhet av plattformsoberoende utveckling - Om den lediga tjänsten uteslutande avser plattformsoberoende. Idealiskt sett behöver mobilapputvecklaren veta hur man utvecklar på olika plattformar, inte bara en.
Arthur Pasqualon, en Mobile App Developer på Proxify, sammanfattar de förutsättningar som måste finnas för Mobile App Developers:
"Utvecklaren av mobilappar bör behärska kunskapen om miljöerna och veta mycket om hybrid- och native-utveckling. När det gäller Hybrid (React Native och Flutter) bör de ha goda kunskaper i JavaScript och TypeScript, och när det gäller Flutter bör de känna till Dart på en tillfredsställande nivå. För inbyggd utveckling bör de känna till Swift och Objective-C för iOS, sedan Kotlin och Java för Android."
Intervjufrågor (och svar) för bedömning av mobilapputvecklare
Nedan finns en lista över vanliga frågor som du kan använda under intervjun och deras exempelsvar.
1. Kan du berätta för oss om appar som du utvecklar/har utvecklat?
Exempel på svar: I den här delen finns det inte en enda "mall" för svaret, men kom ihåg att kandidaterna ska tala kortfattat när de beskriver sin favoritapplikation.
De kan visa dig sina telefonappar och till och med länka dig till deras Play Store eller App Store. Men inte bara prata om det - de kan också försöka slå samman användningen av dessa appar med dina affärsbehov.
2. När och hur börjar man designa en app?
Exempel på svar: Först måste jag noggrant gå igenom uppgiften och dess krav. Jag fokuserar på målgruppen för appen, vad de behöver och vad som skulle förenkla deras vardag och förbättra den tack vare den här appen. Sedan med denna tydliga idé börjar jag skissa några idéer för användargränssnittet.
Efter idékartläggningen för användargränssnittet följer wireframing och sedan app-prototyping. Jag ser till att varje funktion är korrekt placerad, vilket gör apptestningen mycket enklare innan jag går vidare till utveckling.
När min kund godkänner prototypen använder jag ramverk och tekniker för att utveckla och göra appen funktionell på fler enheter. Till sist kommer testning och felsökning för ett sömlöst och funktionellt slutresultat.
3. Kan du jämföra och utveckla manuella och automatiserade tester?
Exempelsvar: Manuella tester är en vanlig metod när man genomför många testrundor för en app. Låt oss säga att vi måste testa en ny funktion i en app. I det här fallet är manuell testning det bästa valet.
I jämförelse är ett automatiserat test en metod för att genomföra många regressionstester (testning för att säkerställa att en ändring inte förändrar eller bryter funktionaliteten) för mobilappen. Dessa tester är tidsbesparande och det bästa alternativet för brådskande situationer.
4. Vad är hybridappar?
Exempelsvar: Hybridappar skapas med en blandning av inbyggd kod (Java eller Objective-C) och webbteknik (JavaScript, HTML och CSS). När utvecklare skapar hybridappar gör de dem webbpublicerbara och även i båda typerna av appbutiker (iOS och Android).
5. Vad är ANR?
Exempelsvar: ANR betyder "app svarar inte", vilket ibland händer med Android-appar. Det är i form av en dialogruta, som kommer att visas direkt efter att appen utan framgång har försökt att ladda i 10 sekunder. Det betyder att appen inte är responsiv och kraschar. Den här situationen är ogynnsam, men vi kan förhindra den genom att minska antalet aktiviteter som den primära UI-tråden utför.
Orsaken till ANR är en lång svarstid för en app som bearbetar ett broadcast-meddelande. Med andra ord är sändningsmottagaren inte klar med onReceive()-exekveringsmetoden inom en betydande tidsram. Detta gör att sändningsmottagaren anropar goAsync() men inte framgångsrikt anropar finish() för objektet PendingResult.
6. Kan du utveckla mer om Android-appkomponenterna?
Exempel på svar: För det första beror det på vilket arkitektoniskt mönster du är intresserad av. I en Android-app är komponenterna de avgörande byggstenarna. Det finns totalt fyra komponenttyper. Var och en av dem är en ingångspunkt och systemet, eller användaren, förlitar sig på denna ingångspunkt för att komma in i appen:
-
Tjänster - Tjänsten har ett allmänt syfte med kontinuerlig bakgrundskörning av appen. Det används för fjärrprocesser i arbete och långvariga operationer.
-
Activities - Aktiviteten är bara en skärm med dess användargränssnitt, som representerar ingångspunkten för interaktionen med användaren.
-
Innehållsleverantörer - Innehållsleverantörens roll är att hantera en komplett appdatauppsättning, som kan lagras i SQLite-databasen, filsystemet, på webben eller någon annan lagringsplats med enkel åtkomst.
-
Broadcastmottagare - Denna komponent gör det möjligt för systemet att leverera händelser direkt till appen men utanför användarflödet. Sändningsmottagare gör det möjligt för appen att svara på alla sändningsmeddelanden som är systemomfattande, aktuella och korrekta.
Aktiviteter, fragment, bakgrunds- och förgrundstjänster och sändningsmottagare är bara några vanliga begrepp som alla infödda Android-utvecklare bör känna till, och det finns andra liknande.
7. Kan du utveckla vanliga problem under testning av mobilappar?
Exempel på svar: Det vanligaste problemet är långsam laddning och allmänt långsam prestanda som påverkar appens användbarhet och funktion. I det här fallet måste vi alltid vara uppmärksamma på den tid som krävs för att appen ska starta; sedan fokuserar vi på laddningstiden för olika skärmar.
Allt över två sekunder är mycket tid för en uppgift i appen. Vi måste arbeta med teamet för utveckling av mobilappar och sträva efter att förbättra laddningshastigheten.
8. Kan du definiera "användbarhetstestning"?
Exempel på svar: I de sista testfaserna av en app genomför vi användbarhetstester. Det här är en process där vi samlar en liten grupp slutanvändare och ber dem testa appen för att ge oss feedback.
Med detta kan vi snabbt hitta eventuella förbisedda problem och se till att appen enkelt kan komma åt flera enheter. Denna process gör appen mer användbar, praktisk, flexibel och lättillgänglig.
9. Kan du kortfattat förklara vad sandboxning av appar är?
Exempel på svar: Sandboxing är en cybersäkerhetsmetod där en viss programvara isoleras och bara har tillgång till specifika program, resurser och filer, allt för att undvika skadlig kod eller fel som kan påverka hela systemet. Vi har till exempel Googles Privacy Sandbox-initiativ för integritetsförbättrande annonslösningar och skyddad integritet för användare och företag. Detta initiativ föreslår också två viktiga lösningar: de integritetsskyddande API:erna och SDK Runtime.
10. Kan du förklara mer om de data som lagras i iOS och Android och lämpliga lösningar och databaser för lagring av data?
Exempel på svar: Termen för inbyggd datalagring i Android-enheter är SharedPreferences. Det används för att lagra data i små mängder, t.ex. inställningar eller användarinställningar, och dessa data sparas alltid i ett XML-filformat.
För iOS-enheter är det ganska likartat, och det kallas UserDefaults. Tidigare kallades dessa UserDefaults för NSUserDefaults, och formatet är alltid .plist
Vi kan använda SQLite med båda. Med Android har vi dessutom Room persistence library för åtkomst till SQLite-databaser och mindre boilerplate-kod. Med iOS har vi Core Data för hantering av objektgrafer.
11. Vad är emulatorer och simulatorer?
Exempel på svar: Emulatorn representerar ett program som inte är beroende av en telefon, men som effektivt testar mobilappar.
Simulatorn är ett verktyg som används för testning av mobilappar, men som simulerar ett elektroniskt nätverk. Det här verktyget används ofta för att hjälpa användare med deras hemnätverk (latching) som inte är beroende av roamingtjänster.
Både emulatorer och simulatorer är kostnadseffektiva, så vi behöver inte köpa dessa enheter för apptestning.
12. Kan du beskriva felsökning när appen har släppts och är redo att användas?
Exempel på svar: När vi behöver få information om appkraschen och korrigera den kan vi använda Firebase Crashlytics, en tredjeparts programvara för kraschanalys för både Android och iOS. Det ger oss information om enhetens tillverkare, användarens språk, operativsystemets version och mycket mer. Några verktyg som liknar FC inkluderar Appsee, Instabug, Raygun och Sentry (lämplig för JavaScript-skrivna appar som React Native).
13. Kan du utveckla livscykelaktiviteten?
Exempel på svar: Användare navigerar i en app på olika sätt, genom, ut ur eller tillbaka till den. När dessa saker händer kommer instanserna av appaktiviteten också att övergå under sin livscykel i olika tillstånd.
För navigering av övergångarna över dessa stadier i aktivitetslivscykeln har klassen Activity en uppsättning med sex återkallelser:
- onCreate()
- onResume()
- onStart()
- onDestroy()
- onPause()
- onStop()
14. Kan du utveckla Android-byggprocessen?
Exempelsvar: Byggprocessen omfattar tre viktiga steg.
-
Först måste vi kompilera resursmappen (/res); vi använder verktyget aapt (android asset packaging tool). Allt kompileras till bara en klassfil med namnet R.java, och den här klassen innehåller bara konstanter.
-
Sedan kompilerar vi Java-källkoden direkt till .class-filer (med språkkompilatorn javac). Därefter konverterar vi klassfilerna till Dalvik-bytekod med verktyget dx. Det här verktyget ingår i SDK-verktygen, och slutligen är utdata classes.dex
-
Slutligen använder vi Android apkbuilder som samlar in all input för att bygga apk-filen (android packaging key).
15. Kan du jämföra och utveckla onCreateView(), onCreate() och onActivityCreated() i samband med Fragment och deras användningsområden?
Exempelsvar: Vi måste kalla dessa när i Fragment, men vid olika tidpunkter. Först anropar vi onCreate(), och vi använder detta för alla initialiseringar som inte är grafiska. För det andra tilldelar och deklarerar vi de View-variabler vi behöver i onCreateView(). Slutligen använder vi onActivity för eventuella sista återstående initialiseringar efter att allt annat är gjort.
Att känna igen och välja den bästa mobilapputvecklaren
En bra mobilapputvecklare sätter användarupplevelsen främst och strävar efter att skapa en app så kreativt och unikt som möjligt. Viktigast av allt är att de också kommer att göra ett utmärkt jobb på de tekniska testerna och ge tydlig och korrekt kod och svar.
Pasqualon lägger här till:
"De kommer att ha en beprövad och stark portfölj och alltid fokusera på användarupplevelsen och eventuella användarproblem. Den ideala kandidaten gillar att uppgradera sina färdigheter, dvs. de fortsätter alltid att lära sig ny teknik och implementera uppgraderingar. Ett öga för detaljer är en annan stark egenskap att leta efter. Dessutom vet de mycket väl hur användare interagerar med olika gränssnitt och de kommer att vara välinformerade om allt som finns att veta om programvara, hårdvara, juridiska aspekter och begränsningar i Android- och iOS-miljöer. Sist men inte minst kan de visa upp en app som de skapat och som visat sig vara extremt användbar för företag och enskilda användare."
Hur ska en framgångsrik app se ut i slutändan?
Det här är de egenskaper som du ska leta efter, både i tidigare appar som Mobile App Developer har gjort och i aktuella appar (för att visa om utvecklaren är på rätt spår):
-
Enkelt att använda - Appen måste ha ett bra användargränssnitt och smidig lokal navigering som kommer att visa sig genom förenklad surfning och sökning.
-
Multi-applicerbar - Om inget annat anges ska appen helst fungera på både iOS- och Android-system.
-
Tillgänglig offline - När internetanslutningen inte fungerar kan bra appar fortfarande ge användaren värdefulla funktioner.
-
Välfungerande - Den fantastiska appen måste ha en snabb laddningstid på upp till en sekund. Detta innebär att om appen snabbt är performant på det här sättet kommer dess uppdateringar också att introduceras regelbundet.
-
Anpassningsbar - Det är alltid trevligt för användare att bestämma och anpassa hur deras app ska se ut.
-
Integrering med sociala medier - det är lätt att behålla användare när du integrerar sociala medier med appen. Användarna kan fortsätta att använda de roliga funktionerna i appen som samtidigt är synkroniserade med media och olika plattformar. Detta inkluderar att dela och dela om, lägga till saker i listor och ansluta fler profiler på sociala medier.
-
Åtkomst för analys - Appadministratören måste snabbt få information om användarnas beteende, allt i enlighet med lokala och regionala sekretesslagar.
Möjliga utmaningar under anställningen av en mobilapputvecklare
Det här är de vanligaste utmaningarna när det gäller att anställa en mobilapputvecklare:
-
Budgetutmaningar - Se till att du har tillräckligt med budget för att genomföra hela processen. Kom ihåg att kandidater på slutlistan kan begära högre ersättning än den summa du är beredd att avsätta.
-
Brist på kvalificerade kandidater - Om en kompetens är mycket efterfrågad och populär kan dessa utvecklare vara i hög efterfrågan och ha gott om alternativ. Detta är en vanlig utmaning om du startar hela rekryteringsprocessen ensam, utan tjänster som tillhandahåller kontrollerade utvecklare åt dig.
-
Starta utan en färdplan - Oavsett om du gör det själv eller får hjälp måste anställningsprocessen börja med en välplanerad färdplan. Detta inkluderar vilken typ av jobbannons du ska skapa, var du ska leta efter utvecklare av mobilappar, vilka intervjufrågor du ska använda och mycket mer.