• No results found

Implementation and design of a hybrid mobile application with a native feeling, for the employment agency Skill

N/A
N/A
Protected

Academic year: 2021

Share "Implementation and design of a hybrid mobile application with a native feeling, for the employment agency Skill"

Copied!
16
0
0

Loading.... (view fulltext now)

Full text

(1)

LiU-ITN-TEK-A--13/063--SE

Implementation och design av en

hybrid mobilapplikation med

native känsla, åt

rekryteringsföretaget Skill

Jens Lund

Per Velander

(2)

LiU-ITN-TEK-A--13/063--SE

Implementation och design av en

hybrid mobilapplikation med

native känsla, åt

rekryteringsföretaget Skill

Examensarbete utfört i Medieteknik

vid Tekniska högskolan vid

Linköpings universitet

Jens Lund

Per Velander

Handledare Erik Berglund

Examinator Camilla Forsell

(3)

Upphovsrätt

Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –

under en längre tid från publiceringsdatum under förutsättning att inga

extra-ordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner,

skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för

ickekommersiell forskning och för undervisning. Överföring av upphovsrätten

vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av

dokumentet kräver upphovsmannens medgivande. För att garantera äktheten,

säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ

art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i

den omfattning som god sed kräver vid användning av dokumentet på ovan

beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan

form eller i sådant sammanhang som är kränkande för upphovsmannens litterära

eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se

förlagets hemsida

http://www.ep.liu.se/

Copyright

The publishers will keep this document online on the Internet - or its possible

replacement - for a considerable time from the date of publication barring

exceptional circumstances.

The online availability of the document implies a permanent permission for

anyone to read, to download, to print out single copies for your own use and to

use it unchanged for any non-commercial research and educational purpose.

Subsequent transfers of copyright cannot revoke this permission. All other uses

of the document are conditional on the consent of the copyright owner. The

publisher has taken technical and administrative measures to assure authenticity,

security and accessibility.

According to intellectual property law the author has the right to be

mentioned when his/her work is accessed as described above and to be protected

against infringement.

For additional information about the Linköping University Electronic Press

and its procedures for publication and for assurance of document integrity,

(4)

Sammanfattning

På senare tid har användadet av smartphones blivit allt vanligare och idag har cirka 60% av svenska befolkningen kopplat upp sig mot internet med en smartphone, samtidigt som försäljningen av mobilapplikationer ökar. I strävan efter att nå ut till en större kundkrets söker företag sätt att sprida information via mobilapplikationer. Men då kunderna använder sig av olika typer av enheter krävs plattformspecifika applikationer för att kunna nå ut till alla. Detta för med sig högre kostnader och längre utvecklingstider. En mer kostnads- och tidseffektiv lösning är att göra en hybridapplikation, vilket är en applikation som man kan ladda ner från marknadsplatserna och är skriven i HTML, JavaScript och CSS.

Examensarbetet utfördes hos rekryteringsföretaget Skill som verkar inom Data/IT och har därför som mål att ligga i teknikens framkant. Skill hade ett behov av en plattformsoberoende mobilapplikation, där jobbkandidater enkelt skulle kunna ansöka om lediga tjänster.

Syftet med denna rapporten är att undersöka möjligheter och brister hos ramverken Pho-negap samt jQuery Mobile vid skapandet av en hybridapplikation. Vi har studerat om man med dessa ramverk kan skapa en plattformsoberoende mobilapplikation som känns native, men även om det finns riktlinjer från marknadsplatserna som gör det svårt att göra just detta. Under projektet fick vi bättre insikt i den problematik som kan uppstå vid utveckling av en plattformsoberoende mobilapplikation. Efter att vi analyserat resultatet kom vi fram till att det är möjligt att skapa en applikation som känns native, dock måste avgränsningar göras utifall applikationen skall vara plattformsoberoende.

(5)

Abstract

The usage of smartphones have recently increased and today approximately 60% of the swedish population have been connected to the internet with a smartphone, while sales of mobile appli-cations is growing. In striving to reach out to a larger clientele companies are searching ways to distribute information through mobile applications. Although, as customers uses different types of devices, plattformspecific applications is required to reach out to everyone. This leads to higher costs and longer development time. A more cost and time efficient solution is to make a hybrid application, which is an application that you can download from the marketplaces and is written in HTML, JavaScript and CSS.

The master thesis was done at the recruitment company Skill, which is working with the Computer and IT industry and therefore aim to be at the forefront of technology. Skill had a need for a crossplatform mobile application, where job candidates easily could apply for vacant positions.

The purpose of this report is to investigate the possibilities and shortcomings of the frame-works Phonegap and jQuery Mobile during the creation of a hybrid application. We studied whether it is possible to create a crossplatform mobile application that feels native with these frameworks, but also if there are guidelines from the marketplaces that makes it hard to develop a plattform independent application. During the project we gained insight in the problematics that might occur when developing a plattform independent application. After analyzing the results our conclusion is that it is possible to create an application that feels native, but sacrifices has to be done in case the application should be plattform independent.

(6)

Innehållsförteckning

1 Inledning 4 1.1 Bakgrund . . . 4 1.2 Syfte . . . 4 1.3 Avgränsningar . . . 4 1.4 Frågeställning . . . 5 1.5 Företaget . . . 5 1.5.1 Skill . . . 5 1.5.2 Noc Webbyrå . . . 5 1.5.3 Millnet . . . 5 1.5.4 Exeo . . . 5 1.5.5 Arbetsförmedlingen . . . 5 1.6 Språkbruk . . . 6 2 Utförande 7 2.1 Arbetsmetod . . . 7 2.2 Målgrupp . . . 7 2.3 Kravspecifikation . . . 7 2.4 Verktyg . . . 8 2.4.1 Ramverk . . . 8

2.4.1.1 Phonegap - Apache Cordova . . . 8

2.4.1.2 jQuery Mobile . . . 8 2.4.1.3 jQuery . . . 8 2.4.2 Plugins . . . 9 2.4.2.1 iScrollView . . . 9 2.4.2.2 PushPlugin . . . 9 2.4.2.3 EmailComposer . . . 9 2.4.2.4 Energize . . . 9 2.4.3 Pushnotistjänster . . . 9

2.4.3.1 Google Cloud Messaging . . . 10

2.4.3.2 Apple Push Notification Service . . . 11

2.5 Design . . . 12 2.5.1 Design av applikationen . . . 12 2.5.1.1 Lediga jobb . . . 12 2.5.1.2 Inställningar . . . 12 2.5.1.3 Om oss . . . 13 2.5.1.4 Tips . . . 13 2.5.1.5 Detaljerad jobb vy . . . 14 2.5.1.6 Ansöka jobb . . . 14 2.5.1.7 Startinställningar . . . 15 2.5.1.8 Sociala medier . . . 15 2.5.2 Design av komponenter . . . 17 2.5.2.1 Navigationsfält . . . 17 2.5.2.2 Expanderbara element . . . 17 2.5.2.3 Checklistor . . . 18 2.5.2.4 Knappar . . . 18 2.5.3 Design av databas . . . 19

(7)

3 Resultat 20 3.1 Nativekänsla . . . 20 3.2 Plattformsoberoende . . . 21 3.2.1 Skärmanpassning . . . 21 3.2.2 CSS-baserade övergångar . . . 22 3.2.3 Bakåtknapp . . . 22 3.2.4 Pushnotiser . . . 23 3.2.5 Email . . . 23 3.3 Marknadsplatsernas krav . . . 23 4 Slutsats 25 5 Diskussion 26 6 Fortsatt arbete 27 Referenser 28

(8)

1

Inledning

Den här rapporten är resultatet av ett examensarbete på Medieteknik vid Linköpings Universitet. Examensarbetet är utfört hos rekryteringsföretaget Skill, vars huvudkontor finns i Linköping, men har även kontor i Norrköping, Jönköping samt Stockholm. Under examensarbetet utveckla-des en mobilapplikation till operativsystemen Android samt iOS.

1.1

Bakgrund

Vid utveckling av en mobilapplikation ställs det hårda krav på applikationen för att få publiceras på marknadsplatser såsom Apples App-store eller Googles Google-play [1]. Förutom att applika-tionen inte får innehålla några tydliga fel så ska den följa de riktlinjer som angivits angående design samt bete sig som en nativeapplikation [2]. Det är inte ovanligt att applikationer blir underkända och därmed måste utvecklaren göra ändringar för att möta kraven [3].

Idag annonserar företaget om sina lediga tjänster på hemsidan www.skill.se och det är via hemsidan kandidater ansöker om tjänster. Då företagets målgrupp har ett högt tekniskt kunnan-de och ständigt söker nya sätt att kommunicera har företaget uttryckt ett behov av att öka sin tillgänglighet. Företaget vill därför erbjuda kandidaterna ett nytt, enkelt och attraktivt sätt att ansöka om lediga tjänster via mobilen.

1.2

Syfte

Syftet med examensarbetet är att genom utveckling av en mobilapplikation åt rekryteringsfö-retaget Skill, förstå de krav som ställs på mobilapplikationer på App-store samt Google-play. Att undersöka om det är möjligt att med ramverken jQuery Mobile och Phonegap skapa en plattformsoberoende mobilapplikation som uppfyller marknadsplatsernas krav skall även vara del av arbetet. Det krävs därför att applikationen utvecklas med åtanken att uppfattas som en nativeapplikation för användaren. Samtidigt skall företagets önskemål göras hörda för att uppnå de förväntningar som ställs på applikationen. Det är dock viktigt att upptäcka och undvika önskemål som kan påverka applikationens användbarhet negativt eller strider mot marknadsplatsernas riktlinjer.

1.3

Avgränsningar

Examensarbetets fokus var att undersöka ramverken Phonegap och jQuery Mobile till enheterna Android samt iOS, liknande ramverk och enheter kommer därför inte att behandlas närmare i rapporten. Något användartest har ej genomförts, utan vår samt företagets uppfattning har legat till grund som utvärdering av applikationen. Mer om dessa avgränsningar samt funktioner som ej implementerats finns att läsa om i kapitlet diskussion (5).

(9)

1.4

Frågeställning

• Kan man med ramverken jQuery Mobile samt Phonegap skapa en mobilapplikation som känns native för användaren?

• Kan man med ramverken jQuery Mobile samt Phonegap skapa en mobilapplikation som är plattformsoberoende?

• Finns det riktlinjer från marknadsplatserna App-store samt Google-play som gör det svårt för mobilapplikationer att vara plattformsoberoende?

1.5

Företaget

Under examensarbetet blev fler företag än just Skill involverade i projektet. I denna sektion finns korta beskrivningar av samtliga involverade företagen.

1.5.1 Skill

Skill är ett rekryteringsföretag som verkar inom IT och teknikområdet. Företaget grundades 1997 och har sin verksamhet främst i Linköping men även i Norrköping, Stockholm och Jönköping. De rekryterar både direkt till fasta tjänster samt hyr ut personal till sina kunder. De arbetar även med marknadsundersökningar, huvudsakligen inom den offentliga sektorn [4].

1.5.2 Noc Webbyrå

Noc är en webbbyrå som skapar webbplatser åt företag och är de som har hand om Skills hemsida. Det kan därför vara viktigt att nämna Noc då delar av applikationen behöver kommunicera med de befintliga tjänster som finns idag [5].

1.5.3 Millnet

Millnet är ett företag anlitat av Skill som har fått i uppgift att sköta deras CV-databas. Millnet startade sin verksamhet år 2000 och har kontor i Mjärdevi i Linköping. Även Millnet har en viktig roll i examensarbetet då applikationen behöver kommunicera med Millnets tjänster[6].

1.5.4 Exeo

Exeo är ett företag med serverhallar i Motala samt Linköping. På Exeos servrar kommer ett fåtal filer behövas exekveras med direkt koppling till applikationen [7].

1.5.5 Arbetsförmedlingen

Sveriges största förmedlare av arbeten är den statliga myndigheten arbetsförmedlingen. Flera av de tjänster som Skill annonserar placeras även på arbetsförmedlingens hemsida genom den CV-databasen Millnet tillhandahåller [8].

(10)

1.6

Språkbruk

Detta stycket innehåller korta förklaringar till ord som används i rapporten.

• Nativeapplikation - En mobilapplikation som är programmerad i ett specifikt språk tillhö-rande enheten, till exempel Objective-C för iOS eller Java för Android.

• Webbapplikation - En webbapplikation är en applikation som ofta är skriven i HTML, JavaScript och CSS samt är tillgänglig på webben.

• Hybridapplikation - En hybridapplikation är en kombination av en nativeapplikation och en webbapplikation, normalt sätt skriven i HTML, JavaScript och CSS samt paketerad som en nativeapplikation.

(11)

2

Utförande

I detta stycket presenterar vi vårt arbetssätt, vilka verktyg som använts samt slutproduktens design.

2.1

Arbetsmetod

Då det krävdes en utförlig förstudie tillsammans med en planeringsrapport samt prototypskapan-de initialt i projektet, startaprototypskapan-de projektet enligt prototypskapan-den sekvensiella arbetsmetoprototypskapan-den vattenfallsmetoprototypskapan-den [9]. Under de första veckorna testades samt studerades funktionaliteten noggrant hos olika ram-verk som kunde lämpa sig väl för projektet. Tidigt i projektet utvecklades stora delar av de funktioner som med största sannolikhet skulle användas senare i projektet, för att tidigt kunna utvärderas och därmed välja de rätta ramverken. Under utförandefasen av projektet övergick metoden till en agil arbetsmetod [10], inspirerat utav Scrum [11]. Under denna fas agerade examensarbetets handledare på Skill som en produktägare och verktyg såsom behovslista för produkt (eng. Product Backlog), uppgiftslista för sprint (eng. Sprint Backlog), sprint-tavla (eng. Task Board) samt demonstrationsmöte av sprint (eng. Sprint Demonstration) användes flitigt.

2.2

Målgrupp

Skill rekryterar främst inom IT/Teknik, en bransch där det råder kompetensbrist [12]. De personer som ofta är intressanta för Skills kunder är civilingenjörer mellan 25 och 35 år gamla med god datorvana. På grund av denna kompetensbrist riktar sig snarare Skill mot studerande än arbetssökande. Statistik från SCB (Statistiska Centralbyrån) visar att personer inom denna målgrupp också är de personer som använder sin mobil eller smartphone för att koppla upp sig mot internet mest [13].

2.3

Kravspecifikation

I samarbete med handledaren från Skill utarbetades en kravspecifikation med funktioner som bör implementeras till applikationen samt önskemål som skulle implementeras i mån av tid. Listan prioriterades sedan av handledaren för att bestämma vilken ordning funktionerna skulle implementeras. Att se en lista med lediga jobb, kunna läsa mer samt ansöka om ett specifikt jobb fick en hög prioritet, eftersom företagets huvudsakliga syfte med applikationen var att informera fler personer om lediga jobb och få in fler ansökningar. Pushnotiser fick likaså en hög prioritering, där önskemålet innefattade att kunna få notiser om nya jobb, men även kunna ställa in sina egna preferenser för att få notiser som faktiskt passar användaren. Detta fick en hög prioritering eftersom det ansågs kunna öka användningen av applikationen, men även öka nativekänslan. Företaget önskade även att man via applikationen skulle kunna sprida nyheten om ett jobb via mail samt sociala medier såsom Facebook och Twitter. Även detta ansågs bidra till en större nyhetsspridning samt öka chansen att nå ut till rätt arbetssökande, då användaren av applikationen skulle kunna tipsa en vän om jobbet. Att kunna läsa mer om företaget Skill och deras medarbetare samt att få tips på hur man hittar rätt jobb var även det något som de gärna

(12)

2.4

Verktyg

Under projektets gång använde vi oss av flera olika ramverk, plugins samt pushnotistjänster för att applikationen skulle fungera som önskat. I detta stycke har förklarar vi kortfattat om de olika verktygen vi har använt.

2.4.1 Ramverk

För att applikationen ska kunna använda sig av nativefunktioner som till exempel pushnotiser, samt att få hjälp med grafiska komponenter och händelser så användes ramverken PhoneGap och jQuery Mobile.

2.4.1.1 Phonegap - Apache Cordova

Phonegap eller Cordova som det också kan kallas är ett utvecklingsramverk med öppen källkod som används för att bygga plattformsoberoende mobilapplikationer med hjälp av HTML, CSS och JavaScript [14]. Ramverket som är skrivet i JavaScript tillåter utvecklaren att använda sig av nativefunktioner i mobilen som t.ex. accelerometer, geografisk positionering och pushnoti-ser. Med hjälp av Phonegap kan man utveckla applikationer till bland annat iPhone, Android, BlackBerry samt webOS enheter [15]. Phonegap är ett relativt nytt ramverk då det skapades i oktober 2011 av företaget Nitobi som senare blev uppköpt av Adobe ett år senare [14]. Eftersom Phonegap är ett relativt nytt ramverk så kommer det ständigt nya uppdateringar med nya egenskaper och funktioner som underlättar för användaren att skapa en nativekänsla.

2.4.1.2 jQuery Mobile

jQuery Mobile är ett ramverk baserat på jQuery och HTML5 [16]. Ramverket skapades i augusti 2011 för att underlätta utveckling av mobila webbapplikationer med hjälp av jQuery [17]. jQuery Mobile är skapat för att fungera på en stor varietet av mobiler och tablets. jQuery Mobiles bibliotek inkluderar flertalet verktyg som har kommit till användning för projektet, till exempel verktygsfält, listor, formulär samt CSS-baserade övergångar.

2.4.1.3 jQuery

jQuery är ett JavaScript-bibliotek som gör det lättare och snabbare att modifiera CSS och HTML. I jQuery kan man t.ex. manipulera HTML-dokumentet eller hantera händelser och animering [18]. En studie med de en miljon främsta sidorna på nätet kunde man se att 91.2% av de som använde sig av ett JavaScript-bibliotek använde jQuery [19].

(13)

2.4.2 Plugins

För att vissa funktioner i applikationen skulle fungera som önskat så var vi tvungna att använda oss av några plugins. Nedan beskriver vi kortfattat om de olika plugins som har använts under projektets gång.

2.4.2.1 iScrollView

För att applikationen skulle få en scroll med nativekänsla så installerades iScrollView. iScrollView är ett jQuery Mobile-plugin som gör det möjligt för användaren att scrolla i olika innehåll i appli-kationen likt den scroll som finns i många nativeapplikationer [20]. Den främsta anledningen att vi använder oss av denna plugin är för att kunna ha fasta titelfält och navigationsfält när man scrollar i applikationen.

2.4.2.2 PushPlugin

För att kunna skicka pushnotiser till applikationen så använde vi oss av pluginen PushPlu-gin. PushPlugin är utvecklat till Phonegap för att med iPhone- och Android-enheter kunna ta emot pushnotiser [21].

2.4.2.3 EmailComposer

När man klickar på en emailadress i applikationen på en iOS-enhet så dirigeras man normalt sätt till mailapplikationen på mobilen. För att detta inte skall hända så installerade vi EmailComposer som är en Phonegap-plugin som gör det möjligt att skicka mail utan att bli dirigerad bort från applikationen [22].

2.4.2.4 Energize

För att iOS- och Android-enheter skall kunna detektera ett dubbelklick på skärmen och då zooma på sidan, förekommer en fördröjning i klickeventet då mobilen väntar på ett andra klick. Då vår applikation ej använder denna zoomfunktion ville vi eliminera fördröjningen eftersom det kan snabba upp klickevent med upp till 300ms [23]. Med hjälp av JavaScript-filen Energize försvinner fördröjningen.

2.4.3 Pushnotistjänster

För att skicka ut pushnotiser till en mobil krävs dels en server men även en integration med en tredjepartstjänst. Till Android används Google Cloud Messaging [24] och till iOS används Apple Push Notification Service [25]. Till examensarbetet användes pushnotiser för att tipsa om nyligen uppladdade jobb som passar användaren.

(14)

2.4.3.1 Google Cloud Messaging

Google Cloud Messaging (GCM) är en tjänst av Google som hanterar pushnotiser till enheter. Figur 1 illustrerar kommunikationen mellan de tre inblandade parterna, Android-enheten, GCM samt den server notisen skall skickas från.

Figur 1:GCM flödesschema.

1. Android-enheten skickar ett sender id som är unikt för enheten samt application id som är det unika id:et för vår applikation, till GCM-servern.

2. GCM-servern svarar då med ett unikt registration id till Android-enheten. 3. Därefter skickas registration id från Android-enheten till vår server. 4. Slutligen sparas registration id i en databas för användning.

(a) När en pushnotis skall skickas, skickar vår server registration id samt ett meddelande till GCM.

(15)

2.4.3.2 Apple Push Notification Service

Apple Push Notification Service (APNS) är Apples motsvarighet till GCM. Kommunikatio-nen sker på ett liknande sätt, vilket illustreras i figur 2.

Figur 2:APNS flödesschema.

1. iOS-enheten skickar ett App-ID samt en Provisioring Profile till APNS för att tillåta push. 2. APNS-servern skickar en device token till enheten.

3. iOS-enheten skickar vidare device token till vår server.

4. När servern mottagit device token från iOS-enheten sparas den i en databas för vidare användning.

(16)

2.5

Design

I detta stycke förklarar vi hur applikationen är uppbyggd när det gäller databasen, applikationens innehåll samt hur de olika komponenterna är designade.

2.5.1 Design av applikationen

Applikationen är uppdelad i fyra olika sidor som användaren kan navigera mellan med hjälp av navigationsfältet. Sidorna som man kan navigera mellan är Lediga jobb, Inställningar, Om oss och Tips. När man klickar på ett jobb på Lediga jobb-sidan så skickas man till en detaljerad vy för det jobbet man har klickat på. Det finns även en vy som enbart syns första gången man besöker applikationen, på denna sidan får användaren göra startinställningar för pushnotiser.

2.5.1.1 Lediga jobb

Lediga jobb-sidan är startsidan för applikationen och där alla jobb listas i en listvy. Varje ele-ment i listan har företagets logotyp samt en beskrivning av jobbet. Beskrivningen av jobbet innehåller en titel på annonsen, datumet annonsen är utlagd, vilken typ av tjänst samt område tjänsten gäller, se figur 3.

Figur 3:Lediga jobb

2.5.1.2 Inställningar

På Inställningar-sidan kan användaren ställa in från vilken placering, område och vilken upp-dragstyp användaren vill ha pushnotiser om. Med hjälp av ett reglage kan man välja om man vill tillåta att pushnotiser ska skickas till mobilen eller ej. Användaren ställer in vilka typer av jobb de vill följa genom att markera respektive checkruta, se figur 4. Genom att klicka på knappen Spara ändringarskickas användarens inställningar till databasen.

References

Related documents

To evaluate the research question “Which design principles lead to a good user experience on mobile devices?” through the question “What is the perceived ease of understanding

For the interactive e-learning system, the design and implementation of interaction model for different 3D scenarios roaming with various input modes to satisfy the

An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves.” [6]

The overall aim of this thesis was to provide better understanding of the underlying factors related to health maintenance in very old people, with a focus on medical conditions,

However, the dominating languages of the country are not under immediate threat, and seri- ous efforts have been made in the last years to build and maintain linguistic resources

Resultatet visar en genomsnittlig positiv effekt i poängskörd i form av målskillnad i 13 av de 16 undersökta säsongerna, där den genomsnittliga ökningen i målskillnad efter

Utöver den yttre motiva- tionen har jag definitivt motiverats av mina känslor och kognitiva drivkraft (inre motivation) att skapa musik och göra färdigt mina verk (Brodin,

Intervjuerna visar att den historia de får förmedlad hemma skiljer sig åt den historia skolan förmedlar och kommer med alternativa förslag för att göra plats för utomeuro-