WANNEER DOE JE HET BEST AAN HYBRID OF NATIVE DEVELOPMENT? Promotor: Mh Frederik Duchi Onderzoeksvraag uitgevoerd door
KEVIN VAN LANCKER Voor het behalen van de graad van Bachelor in de
NEW MEDIA AND COMMUNICATION TECHNOLOGY Howest | 2015-2016
WANNEER DOE JE HET BEST AAN HYBRID OF NATIVE DEVELOPMENT? Promotor: Mh Frederik Duchi Onderzoeksvraag uitgevoerd door
KEVIN VAN LANCKER Voor het behalen van de graad van Bachelor in de
NEW MEDIA AND COMMUNICATION TECHNOLOGY Howest | 2015-2016
Woord vooraf Mijn naam is Kevin Van Lancker en ik ben student New Media and Communication Technology ( NMCT) aan de Howest Kortrijk. Ik ben altijd al geïnteresseerd geweest in gaming en IT. Ondanks mijn grote liefde voor gaming heb ik gekozen voor NMCT voor een zo breed mogelijke IT opleiding te hebben. Al snel viel mijn interesse binnenin NMCT voor development in zijn geheel. In het 5de semester heb ik gekozen voor app development voor de diverse mobiele platformen. Deze zijn Android, Universal Windows Platform en IOS. Mijn laatste keuzevak was .NET Programmer Solutions, waar Xamarin aan bod kwam. Door het grote mobiele aspect van mijn keuzes en het werken met Xamarin, wou ik iets doen omtrent deze technologieën voor mijn bachelorproef. Bij het maken van een app voor elk platform was het duidelijk dat hier veel tijd inkruipt. Met Xamarin kan je veel code delen voor ieder platform, maar ik had geen idee van de prestaties van een Xamarin app. Tevens hadden we in de voorbije semesters al eens gebruik gemaakt van Phonegap om een webapp op een mobiel apparaat te laten werken. Ten slotte wil ik nog enkele personen bedanken. Ten eerste wil ik alle lectoren bedanken die mij de voorbije drie jaar mijn IT vaardigheden hebben opgekrikt. Ik wil ook Frederik Duchi bedanken voor zijn raad en feedback over deze bachelorproef. Ook wil ik mijn vrienden en in het bijzonder Laura-Jane Deplorez, zonder wie ik geen Android toestel had om op te testen. Tevens heeft ze mij geholpen met de layout en steun gegeven op momenten waar ik het moeilijk had. Tevens zijn er mijn ouders, die mij de kans hebben gegeven om NMCT te volgen nadat ik al twee mislukte pogingen in andere richtingen heb geprobeert. Tot slot wil ik Indy Browaeys bedanken om altijd in mij te geloven.
1
Abstract Smartphones en apps zijn niet meer weg te denken uit ons leven. De diversiteit aan smartphones houdt voor developers in dat elke app voor elk platform opnieuw moeten worden geschreven. Dit is tijdsrovend en brengt een grote kost met zich mee. Een alternatief is het ‘write once, run everywhere’ principe. Volgens dit principe wordt een app éénmaal geschreven en werkt die op alle platformen. Een nadeel is echter dat deze apps niet alle functionaliteit van de smartphone kunnen gebruiken en niet altijd even performant zijn Voor deze bachelorproef worden drie technologieën getest: Java Xamarin HTML5 Voor elke technologie worden er ook 3 types van app gemaakt: Een app die de hardware van het toestel gebruikt Een app die veel beweging op het scherm heeft. Een app die data ophaalt en deze weergeeft. De resultaten van elke app zal per type en per technologie besproken worden. Na een uitgebreide vergelijking is het duidelijk dat Java de beste prestaties heeft en development ervoor vlot gaat. Java is daardoor geschikt voor elk type app. Xamarin is de technologie met de minste prestaties, ondanks dat development vlot gaat. Xamarin is geschikt voor een app met veel beweging op het scherm. HTML5 leunt dicht bij Java op prestaties, maar development gaat stroef. Apps die de hardware van het toestel gebruiken en apps die data ophalen en weergeven zijn geschikt om te maken met HTML5.
2
Figuren en tabellenlijst Figuur 1: GPS app gemaakt met Xamarin ............................................................................................................. 9 Figuur 2: Game gemaakt met HTML5 ................................................................................................................. 11 Figuur 3: Overzichtl locaties gemaakt in Android............................................................................................. 13 Figuur 4: Detail locatie gemaakt in Android ...................................................................................................... 13 Tabel 1: Resultaten GPS app ................................................................................................................................ 11 Tabel 2: Resultaten game app .............................................................................................................................. 13 Tabel 3: Resultaten locatie app............................................................................................................................ 15 Tabel 4: Resultaten .Apk grootte ........................................................................................................................ 16 Tabel 5: Resultaten opstarttijd ............................................................................................................................ 17 Tabel 6: Resultaten CPU frequentie.................................................................................................................... 18 Tabel 7: Resultaten batterijverbruik ................................................................................................................... 19 Tabel 8: Resultaten ophalen van de locatie ....................................................................................................... 20 Tabel 9: Resultaten haperingen ........................................................................................................................... 20 Tabel 10: Resultaten wachttijden ........................................................................................................................ 21
Lijst met afkortingen
Apk: Android package bestand API: Application programming interface CPU: Central processing unit GPS: Global positioning system SDK: Software development kit
Verklarende woordenlijst
API: Een application programming interface. Dit is een verzameling definities op basis waarvan een computerprogramma kan communiceren met een ander programma of onderdeel. Apk bestand: Een Android package bestand. Dit bestandsformaat wordt gebruikt om software voor het Android-platform te distribueren en te installeren. Besturingssysteem: Dit is een geheel van samenwerkende programma’s. Het fungeert als een medium tussen de hardware en de computergebruiker met de bedoeling dat de gebruiker programma’s makkelijk en efficiënt kan uitvoeren. Expansie bestand: Een Android applicatie mag maximaal 100 MB groot zijn. Om grotere applicaties te ondersteunen wordt er gebruikt gemaakt van expansie bestanden. Men kan twee bestanden van elk 2GB gaan toevoegen aan een applicatie. Interface: Multithreaded: Het vermogen om verschillende threads van een programma gelijktijdig uit te voeren. SDK: Een software development kit. Dit is een verzameling hulpmiddelen die handig zijn bij het ontwikkelen van programma’s voor een bepaald besturingssysteem, type hardware of desktopomgeving. Zip bestand: Een zip bestand is een data container. Deze slaan één of meerdere bestanden in een gecomprimeerde vorm op.
3
Inhoudsopgave Woord vooraf ............................................................................................................................................................ 1 Abstract...................................................................................................................................................................... 2 Figuren en tabellenlijst ........................................................................................................................................... 3 Lijst met afkortingen ............................................................................................................................................... 3 Verklarende woordenlijst ....................................................................................................................................... 3 1
Inleiding ............................................................................................................................................................. 6
2
Platformen......................................................................................................................................................... 7
2.1
Java ................................................................................................................................................................. 7
2.2
Xamarin .......................................................................................................................................................... 8
2.3
HTML5 ............................................................................................................................................................ 8
3
Test cases ........................................................................................................................................................... 9
3.1.2
Java ............................................................................................................................................................. 9
3.1.3
Xamarin .................................................................................................................................................... 10
3.1.4
HTML5 ...................................................................................................................................................... 10
3.1.5
resultaat ................................................................................................................................................... 11
3.2
Game ............................................................................................................................................................. 11
3.2.2
Java ........................................................................................................................................................... 12
3.2.3
Xamarin .................................................................................................................................................... 12
3.2.4
HTML5 ...................................................................................................................................................... 12
3.2.5
resultaat ................................................................................................................................................... 13
3.3
locatie app ................................................................................................................................................... 13
3.3.2
Java ........................................................................................................................................................... 14
3.3.3
Xamarin .................................................................................................................................................... 14
3.3.4
HTML5 ...................................................................................................................................................... 14
3.3.5
resultaat ................................................................................................................................................... 15
4
Resultaten test cases ..................................................................................................................................... 16
4.1
.Apk Grootte ................................................................................................................................................ 16
4.2
Opstarttijd ................................................................................................................................................... 17
4.3
CPU frequentie ........................................................................................................................................... 18
4.4
Batterijverbruik .......................................................................................................................................... 19
4.5
Ophalen van de locatie .............................................................................................................................. 20
4.6
Haperingen .................................................................................................................................................. 20
4.7
Wachttijden ................................................................................................................................................. 21
4.8
Development .............................................................................................................................................. 21
4.8.1
Java ........................................................................................................................................................... 21
4.8.2
Xamarin .................................................................................................................................................... 21
4.8.3
HTML5 ...................................................................................................................................................... 22 4
5
Besluit............................................................................................................................................................... 23
6
Persoonlijk besluit .......................................................................................................................................... 24
Referentielijst ......................................................................................................................................................... 25
5
1 Inleiding Smartphones en apps zijn niet meer weg te denken uit ons leven. De diversiteit aan smartphones houdt voor developers in dat elke app voor elk platform opnieuw moeten worden geschreven. Dit is tijdsrovend en brengt een grote kost met zich mee. Een alternatief is het ‘write once, run everywhere’ principe. Volgens dit principe wordt een app éénmaal geschreven en werkt die op alle platformen. Een nadeel is echter dat deze apps niet alle functionaliteit van de smartphone kunnen gebruiken en niet altijd even performant zijn Het onderwerp van deze bachelorproef linkt de voor- en nadelen van native en hybrid development aan elkaar. Snelheid en functionaliteit vormen een klassiek probleem in hybrid development. Daarom is het interessant om te onderzoeken of er bepaalde type apps zijn die niet lijden onder het kwaliteitsverlies van hybrid development. Tevens zijn er verschillende manieren om een hybrid app te maken. De verschillen tussen deze manieren worden ook besproken. Deze bachelorproef gaat voornamelijk de praktische ervaring met zowel native als hybrid development uitleggen. Wat zijn de verschillen in kwaliteit bij diverse soorten apps? Hoelang duurt het development proces van een app met native of hybrid development? Welke manier van hybrid development krijgt de voorkeur op de ander? Om dit te bepalen worden er drie verschillende apps gemaakt. Alle apps gaat men maken in Java, Xamarin en HTML5. Deze gaan allemaal op hetzelfde device getest worden om de onderlinge verschillen te meten. De prestaties van de app worden per technologie uitgebreid besproken. Om af te ronden komt er een algemeen besluit die alle technologieën met elkaar vergelijkt en antwoord geeft op de centrale vraag.
6
2 Platformen Recente statistieken (Dogtiev, 2015) tonen aan dat Android het meest verkochte besturingssysteem is op smartphones. Daarom valt de keuze voor een native technologie op Java. Native apps zijn apps die gemaakt zijn in een specifieke taal zoals Java voor Android of Objective c en Swift voor IOS. Deze mobiele platformen ( Android, IOS, …) komen met hun eigen development tools, interface elementen en een gestandardiseerde SDK. Native apps hebben in het algemeen volgende voordelen: De snelste, betrouwbaarste en meest responsieve ervaring voor gebruikers. Ze hebben toegang tot meer functionaliteit van het toestel zoals de camera, accelerometer en swipe gebaren. Er wordt van native apps verwacht dat ze de design patronen en standaarden van elk platform respecteren. Het grootste nadeel van native app development is dat de apps enkel werken voor het besturingssysteem waarvoor het ontwikkeld is. als je toch dezelfde app wil hebben voor een ander besturingssysteem, moet je deze volledig hermaken voor het andere besturingssysteem ( Saccomani, 2012) . Bij hybrid development zijn er meerdere keuzes. De eerste keuze is HTML5 omdat dit de laagste instapdrempel is voor hybrid development (Korf en Oksman, 2015). De tweede keuze is Xamarin. Xamarin is een recente technologie die nog volop in ontwikkeling is. Tevens heeft Microsoft Xamarin onlangs overgenomen (Huijbregts, 2016). Met Xamarin kan je native apps maken voor elk platform in C#. Hybrid apps zijn apps die gemaakt zijn met cross-compatibele technologieën. De voordelen van hybride apps zijn: Het is sneller en makkelijker om te ontwikkelen. Makkelijk te onderhouden en te veranderen van besturingssysteem. Het grootste probleem van hybride apps is de snelheid. Die is in het algemeen trager dan de native tegenhanger ( Saccomani, 2012) .
2.1
Java
Android werd ontwikkeld door Android inc. Dit bedrijf werd in 2005 overgenomen door Google. Android is een opensourceplatorm. Het is voornamelijk gebaseerd op de Linux kernel en het Javaprogrammeerplatform. Android werd eerst ontwikkeld als een geavanceerd besturingssysteem voor digitale camera’s ( Welch, 2013) . Nadat men besefte dat de markt te klein was, besloten ze om hun focus op smartphone besturingssystemen te plaatsen. In 2005 nam Google Android inc over voor $50 miljoen. Op 5 november 2007 werd Android onthult als een mobiel platform gebouwd op de Linux kernel. De eerste smartphone met Android werd uitgebracht op 22 oktober 2008. Elke grote release sindsdien werd vernoemd naar een dessert ( “Android ( besturingssysteem)” , z.j.) . Java is een object georiënteerde programmeertaal. De syntax is gebaseerd op C++. 7
Java werd gecreëerd met vijf hoofddoelen (“Design Goals of the Java TM Programming Language” , z.j.) 1. simpel, object georiënteerd en familiair 2. robuust en veilig 3. architectuur-neutraal en verplaatsbaar 4. uitstekende prestaties. 5. Multithreaded en dynamisch
2.2
Xamarin
Met Xamarin kunnen ontwikkelaars apps maken die werken als native apps op alle platformen. Men kan apps maken met een standaard native user interface. Deze interfaces zien eruit zoals de gebruiker verwacht en gedragen zich ook zo. Native apps kunnen platform specifieke functionaliteit gebruiken, maar Xamarin kan dit ook. Ten slotte worden Xamarin apps gecompiled voor native prestaties. Om Xamarin apps te maken wordt gebruik gemaakt van C#. Dit ongeacht het platform waar men voor ontwikkelt. Net zoals Java is C# een object georiënteerde taal. Microsoft ontwikkeld C# als deel van het .NET-initiatief. De taal wordt gebruikt voor desktop-, server- en mobiele apps. Er zijn diverse manieren om apps te maken via Xamarin. Je kan native apps voor Android, IOS of Windows maken met C#. Volgens de website van Xamarin kan je 75% van de code hergebruiken voor elk platform. Met Xamarin.Forms kan je apps voor deze platformen maken met bijna 100% herbruikbare code (“What is xamarin?”, z.j.) .
2.3
HTML5
HTML5 is de nieuwste versie van de HTML-standaard. Met de term HTML5 worden ook omliggende technieken zoals CSS3, Javascript en dergelijke meegenomen in de definitie. HTML5 heeft nieuwe tags tegenover HTML4 om meer structuur te krijgen. Tevens zijn er tags om interactieve content af te spelen zonder de Flash Player plug-in te gebruiken. Er zijn ook verbeteringen van het Document Object Model waardoor webpagina’s sneller laden. Er is ook de mogelijkheid om webapplicaties offline beschikbaar te maken. Dit is handig voor mobiele applicaties waar men niet altijd online is. Om af te ronden introduceert HTML5 opmaak en API’s voor complex web applicaties (“HTML5 Differences from HTML4”, 2014) . Smartphones en tablets zijn in overweging genomen bij het maken van vele functies in HTML5. Nieuwe tools en frameworks zorgen voor meer consistente HTML5 ondersteuning in mobiele browsers. Bij het maken van hybrid apps in HTML5 maak je webpagina’s. deze webpagina’s vorm je dan om in een native app via een tool die dit toelaat. Eén zo’n app is PhoneGap. Deze maakt een native app met een webview waarin de content wordt weergegeven.
8
3 Test cases Om een goede analyse tussen de technologieën te maken worden er 3 apps gemaakt. De apps zijn een gps die de geolocatie ophaalt, een kleine game en een app die de openlucht sportlocaties in kortrijk toont. Voor iedere technologie maakt men deze apps. Deze apps worden getest op een Samsung Galaxy s3 Mini met volgende specificaties: CPU: Pegasusq CPU frequentie tussen 200MHz - 1000 MHz Resolutie: 480 x 800 pixels Besturingssysteem: Android versie 5.1.1 ( Lollipop) Bij het ontwikkelen van een app wordt er gelet op de duur, de diverse documentatie die er ter beschikking is en de moeilijkheidsgraad. Daarna worden de prestaties en algemene kwaliteit van de app besproken.
3.1 GPS 3.1.1 De app Deze app haalt de geolocatie op van de gebruiker. Het toestel haalt deze informatie op via de ingebouwde gps chip. De chip gebruikt satelliet data om de positie te bepalen. Indien er geen GPS signaal is wordt er gebruik gemaakt van triangulatie via de informatie van zendmasten.
Figuur 1: GPS app gemaakt met Xamarin
3.1.2
Java
Bij deze app zijn er geen problemen te melden bij de ontwikkeling ervan. De app maakt gebruik van diverse methodes om de geolocatie op te halen. Hierdoor moeten we bij het ontwikkelen rekening houden met bepaalde permissies. Deze permissies zijn: “ACCES_FINE_LOCATION”, “ACCESS_COARSE_LOCATION”, “ACCESS_WIFI_STATE”, “INTERNET” en “ACCESS_NETWORK_STATE”. De reden voor deze permissies is dat de app gebruik maakt van de Wifi en het internet om de geolocatie te bepalen indien er geen GPS signaal gevonden kan worden. Als men dit niet zou weten is er online voldoende documentatie omtrent dit onderwerp. Door deze documentatie liep het ontwikkelen van deze app geen vertraging op. De grootte van het .Apk bestand is 1,34 MB. De app start op in 1,27 seconden. De CPU frequentie schommelt tussen 200 MHz en 800 MHz. De app heeft 3,7 seconden nodig om de geolocatie op te halen. Als er meerdere apps werken in de achtergrond duurt dit 5 seconden. Ten slotte is er na 10 minuten maar 2% batterverbruik.
9
3.1.3
Xamarin
Bij het development van deze app waren er geen noemenswaardige problemen. Om gebruik te maken van Xamarin.Forms moet je een interface maken die de diverse platformen moeten implementeren als je de geolocatie wil ophalen. Ondanks dit zal je voor elk platform afzonderlijk de code moeten schrijven om de geolocatie op te halen. Tevens moet je rekening houden met de permissies die nodig zijn om de locatie op te halen. Deze permissies implementeren zijn dezelfde als voor een native app en de implementatie is gelijkaardig. De grootte van het .Apk bestand is 5,12 MB. De app start op in 3,15 seconden. De CPU frequentie schommelt tussen 400 MHz en 800 MHz. Het duurt 10,35 seconden voor de app de locatie heeft gevonden. Ten slotte verbruikt de app na 10 minuten 8% batterij.
3.1.4
HTML5
Als je bij het ontwikkelen een webapp maakt met één index.html zal deze problemen geven bij het omvormen via Phonegap. Voor deze app moet je een bepaalde mappenstructuur hebben. Je kan deze handmatig maken of via diverse tools die Phonegap aanbiedt. Om de geolocatie op te halen moet je de “cordova.geolocation” plugin installeren in je project. Je moet wachten op het “onDeviceReady” event voordat je de code kan gebruiken om de geolocatie op te halen. Doordat je zonder problemen de locatie kon ophalen via een browser was dit niet duidelijk in het begin. De documentatie hierover was niet altijd duidelijk en daardoor duurde het ontwikkelen van deze app net iets langer dan verwacht. Het .Apk bestand van deze app is 293 Kb in grootte. De opstartsnelheid is 2,60 seconden. Het duurt 5,15 seconden om de geolocatie op te halen via de app. De CPU frequentie schommelt tussen de 200 MHz en 800 MHz. Indien er meerdere apps in de achtergrond werken duurt het 6,3 seconden eer hij de geolocatie van de gebruiker heeft gevonden. Ten slotte is er 3% batterijverbruik na 10 minuten.
10
3.1.5
RESULTAAT
In onderstaande tabel ( tabel 1: resultaten GPS app) staan de resultaten van de GPS app.
.Apk grootte Opstarttijd CPU frequentie Ophalen van de locatie Batterijverbruik na 10 minuten
Java
Xamarin
HTML5
1,34 Mb
5,12 Mb
293 Kb
1,27 seconden
3,15 seconden
2,60 seconden
200 MHz – 800 MHz
400 MHz – 800 MHz
200 MHz – 800 MHz
3,7 seconden
10,35 seconden
5,15 seconden
2%
5%
3%
Tabel 1: Resultaten GPS app
De resultaten tonen duidelijk aan dat Xamarin niet helemaal geschikt is voor een app die de hardware van het toestel gebruikt. Niet alleen is het .Apk bestand het grootst bij Xamarin, de opstarttijd en het ophalen van de locatie duren het langst bij Xamarin. Ten slotte verbruikt de batterij het meeste bij de Xamarin app. HTML5 heeft het kleinste .Apk bestand, maar schommelt met bijna alles tussen de prestaties van Java en Xamarin. Enkel bij de CPU frequentie behaalt HTML5 een gelijkaardig resultaat met Java. Ten slotte zien we dat de Java resultaten op één na de beste zijn. Java haalt met voorsprong sneller de locatie op van de gebruiker. Enkel de grootte van het .Apk bestand zit tussen HTML5 en Xamarin.
3.2 Game 3.2.1 De app
Figuur 2: Game gemaakt met HTML5
In deze app zijn er een heleboel bewegende voorwerpen op het scherm. Hier zal vooral de framerate belangrijk zijn.
11
3.2.2
Java
Er waren geen problemen bij het maken van deze app. Omdat er geen data van buitenaf wordt opgehaald of gebruik wordt gemaakt van de functionaliteiten van het toestel, zijn er geen permissies nodig om deze app te gebruiken. Bijgevolg hoef je hiermee geen rekening te houden. Er waren geen onverwachte problemen bij het ontwikkelen van de app. De grootte van het .Apk bestand is 1,35 MB. De app start op in 1,02 seconden. De cirkels bewegen vloeiend over het scherm. Als je het toestel locked en ontgrendelt om de app opnieuw te starten, ondervind je geen haperingen bij de cirkels. De CPU frequentie blijft stabiel op 400 MHz. Ten slotte is er 5% batterijverbruik na 10 minuten.
3.2.3
Xamarin
Bij het development van deze Xamarin app waren er geen noemenswaardige problemen. Doordat er geen data van buitenaf wordt opgehaald of gebruik wordt gemaakt van de functionaliteiten van het toestel, zijn er geen permissies nodig om deze app te gebruiken. Er hoeft hier geen rekening met de permissies te houden. De grootte van het .Apk bestand is 16,12 MB. De app start op in 4,65 seconden. De cirkels bewegen vloeiend over het scherm. De CPU frequentie blijft stabiel op 800 MHz. Ten slotte is er 8% batterijverbruik na 10 minuten.
3.2.4
HTML5
Bij deze app hoef je geen rekening te houden met de mapstructuur en dergelijke van je webapp. Met één index.html kan je deze app omvormen met phonegap tot een werkende native app. Indien gewenst kan je een aparte javascript- en CSS file aanmaken om de app aantrekkelijker te maken. Het .apk bestand van deze app is 105 Kb in grootte. De opstartsnelheid is 2 seconden. De bewegende cirkels op het scherm verschijnen meteen en bewegen vloeiend over het scherm. Indien je het toestel locked en terug ontgrendelt om de app opnieuw te starten, ondervind je dat de cirkels haperingen vertonen. De CPU frequentie schommelt tussen 400 MHz en 800 MHz. Als de app op de achtergrond werkt blijft deze frequentie gelijk. Als er nog andere apps in de achtergrond werken zoals Messenger of Youtube merk je geen verschil met de gewone prestaties. Ten slotte is er 6% batterijverbruik na 10 minuten.
12
3.2.5
RESULTAAT
In onderstaande tabel ( tabel 2: resultaten game app) staan de resultaten voor de game.
Java
Xamarin
HTML5
.Apk grootte Opstarttijd CPU frequentie Haperingen
1,35 Mb
16,12 Mb
105 Kb
1,02 seconden
4,65 seconden
2 seconden
400 MHz
800 MHz
400 MHz – 800 MHz
Niet zichtbaar
Niet zichtbaar
Batterijverbruik na 10 minuten
5%
8%
Zichtbaar na ontgrendelen. 6%
Tabel 2: Resultaten game app
De resultaten bij het vergelijken van de technologieën zijn gelijkaardig als bij de GPS app. HTML5 heeft het kleinste .Apk bestand, maar lijdt wel onder haperingen na het ontgrendelen van het toestel. Xamarin heeft ook nu het minste resultaat. Niet enkel is het .Apk bestand beduidend groter dan de anderen, ook verbruikt het terug het meeste batterij en is de CPU frequentie het hoogst. Er zijn weliswaar geen haperingen te bespeuren bij de bewegende cirkels op het scherm. Ten slotte is Java terug de beste keuze als het gaat over prestaties. Er zijn geen haperingen zichtbaar, heeft de snelste opstarttijd, de laagste CPU frequentie en het minste verbruik van de batterij.
3.3 locatie app 3.3.1 De app Deze app toont een lijst van openlucht sportlocaties in kortrijk. Na het klikken op een locatie toont de app de gegevens over deze locatie. De app gebruikt de open data van Kortrijk om de gegevens op te halen.
Figuur 3: Overzichtl locaties gemaakt in Android
Figuur 4: Detail locatie gemaakt in Android
13
3.3.2
Java
Bij het maken van deze app in Java waren er geen directe problemen. Net zoals andere Android apps moet je rekening houden met permissies die de app mag gebruiken. In dit geval gaat het om de “INTERNET” permissie. Deze gebruiken we om onze data online op te halen. Indien men dit niet weet, vind je dit snel terug in de documentatie. De grootte van het .Apk bestand is 2,62 MB. De app start op in 1,66 seconden. De data wordt onmiddellijk getoond in de app. Bij het schakelen tussen de lijst met locaties en de details van een locatie merk je geen haperingen of wachttijden. De CPU frequentie schommelt tussen 200 MHz en 400 MHz. Ten slotte is er 3% batterijverbruik na 10 minuten.
3.3.3
Xamarin
Bij het development van de Xamarin app waren er geen noemenswaardige problemen. Xamarin heeft een heleboel samples waaruit je kan vertrekken indien er problemen zijn. Tevens vind je online ook heel wat documentatie en hulp van andere developpers. Voor het Android platform moet je rekening houden met de permissies die nodig zijn. Dit is gelijkaardig aan de native methode. De grootte van het .Apk bestand is 12,17 MB. De app start op in 5,37 seconden. Er zijn geen haperingen of wachttijden bij het schakkelen tussen de lijst met locaties en de details van een locatie. De CPU frequentie schommelt tussen 400 MHZ en 800 MHz. Ten slotte verbruikt de app na 10 minuten 3% van de batterij.
3.3.4
HTML5
Omdat deze app gebruik maakt van online data moet je webapp een bepaalde mappenstructuur hebben. Je kan deze zelf aanmaken of laten genereren via allerhande hulpmiddelen. Om de data op te halen wordt AJAX gebruikt. In de nieuwste versie van Phonegap moet je de Cordova whitelist plugin toevoegen aan je webapp. Daarna moet je de website van de data, of alle websites via het wildcard teken ‘*’, aan de whitelist toevoegen. Ten slotte moet je na het “onDeviceReady” event cross-domain requests toelaten. Bij het ontwikkelen was het zeer moeilijk om de data op te halen. De documentatie was meestal verouderd, sprak elkaar tegen en er waren niet veel oplossingen te bespeuren. Met behulp van sourcecode van gelijkaardige apps is het uiteindelijk gelukt deze app af te werken. Maar dit nam meer tijd in beslag dan het eigenlijk zou mogen duren. Het .apk bestand van deze app is 429,09 Kb in grootte. De opstartsnelheid is 2,03 seconden. De CPU frequentie schommelt tussen 200 MHz en 400 MHz. Er is geen merkbare wachttijd bij het schakelen tussen de lijst met locaties en de details van een locatie. Ten slotte is er 3% batterijverbruik na 10 minuten.
14
3.3.5
RESULTAAT
In onderstaande tabel ( tabel 3: resultaten locatie app) staan de resultaten van de locatie app.
.Apk grootte Opstarttijd CPU frequentie Wachttijden Batterijverbruik na 10 minuten
Java
Xamarin
HTML5
2,62 MB
12,17 MB
429,09 Kb
1,66 seconden
5,37 seconden
2,03 seconden
200 MHz – 400 MHz
400 MHz - 800 MHz
200 MHz – 400 MHz
Niet merkbaar
Niet merkbaar
Niet merkbaar
3%
3%
3%
Tabel 3: Resultaten locatie app
De resultaten hier zijn gelijkaardig aan de resultaten van de vorige apps. HTML5 heeft andermaal het kleinste .Apk bestand. De CPU frequentie is gelijk aan die van de Java app. Alle apps verbruiken evenveel batterij en er zijn geen wachttijden te bemerken. De opstarttijd van de HTML5 app zit tussen deze van Java, de snelste, en Xamarin, de traagste. In het algemeen scoort Java hier het beste, maar toch zijn de verschillen met HTML5 niet zo groot. Het enige waarin Java in uitblinkt zijn de verwaarloosbare 0,37 seconden dat de app sneller opstart. Ten slotte is er Xamarin, die terug aan het kortste eind trekt. Het heeft andermaal het grootste .Apk bestand en de traagste opstarttijd. Tevens is de CPU frequentie het hoogst. Opmerkelijk is dat er geen verschillen zijn bij de wachttijden. Alle apps tonen de lijst met locaties snel en schakelen tussen de details en de lijst zonder problemen.
15
4 Resultaten test cases Ondanks dat de apps klein zijn in omvang zijn er toch enkele verschillen op te merken. Algemeen kunnen we stellen dat de prestaties van de Java apps beter zijn dan die van de hybride technologieën. Dit betekent nog niet dat hybrid development geen plaats meer heeft. Er moet nog altijd rekening gehouden worden met meerdere platformen en de development hierbij.
4.1
.Apk Grootte
De grootte van het .Apk bestand kunnen developers het best zo klein mogelijk houden. De redenen hiervoor zijn ( Glick, 2015): Mobiele data connectiviteit: Gebruikers met een trage internet connectie zijn niet geneigd om apps te downloaden die een grote bestandsgrootte heeft.
Mobiele data limieten: Vele mobiele netwerken geven een gelimiteerd aantal MB dat een gebruiker kan downloaden elke maand zonder extra kosten. Gebruikers zijn dus zeer voorzichtig in het gebruiken van hun mobiele data voor slechts één app. App prestatie: Smartphones hebben gelimiteerde RAM en geheugenruimte. Grotere apps kunnen hierdoor minder goed presteren, vooral in oudere Android devices. Installatietijd: Als een app te veel tijd in beslag neemt om te downloaden en te installeren kunnen gebruikers afhaken.
Als een developper zijn app wil publiceren in de Play Store moet deze rekening houden met de 100 MB limiet. De twee redenen voor deze limiet zijn (Khandelwal, 2015) :
Developers schrijven efficiënte code en letten op de grootte van hun app. Gebruikers moeten niet te lang wachten om een app te downloaden van de Play Store
Indien een developer meer ruimte nodig heeft kan deze tot twee grote expansie bestanden aan het Apk bestand toevoegen. Deze bestanden kunnen tot 2 GB groot en elk formaat zijn. Met deze context kunnen de resultaten beter geplaatst worden. In de tabel hieronder ( tabel 4: resultaten .Apk grootte) zijn alle resultaten van de apps en de platformen omtrent de Apk grootte.
GPS Game Locatie app
Java
Xamarin
HTML5
1,34 MB
5,12 MB
293 Kb
1,35 MB
4,65 MB
105 Kb
2,62 MB
12,17 MB
429,09 Kb
Tabel 4: Resultaten .Apk grootte
De resultaten zijn consistent over alle apps. De HTML5 apps hebben de kleinste bestandsgroottes van de technologieën. Deze apps schommelen tussen 100 Kb en 450 Kb. Daarna volgen de Java apps. Hun grootte schommelt tussen 1,3 MB en 2,7 MB. Ten slotte zijn er de Xamarin apps die een grootte hebben tussen 4,6 MB en 12,2 MB. Als de diverse apps worden vergeleken met elkaar zien we ook een consistentie met de grootte van het Apk bestand. De game heeft de kleinste bestandsgrootte. Enkel bij Java is deze app net iets groter dan de GPS app. Toch kan er gesteld worden dat deze app gemiddeld het kleinste is in 16
bestandsgrootte. Daarna volgt de GPS app. De bestandsgrootte hiervan ligt grotendeels dichtbij die van de game, behalve bij HTML5, waar deze bijna driemaal zo groot is als de game app. Ten slotte is er de locatie app. Deze heeft bij alle technologieën het grootste Apk bestand. Vooral bij Xamarin is het verschil duidelijk met de vorige apps. Bij de HTML5 app is dit verschil ietwat kleiner, maar dit komt omdat de GPS app ook al een groot verschil had met de game app. Algemeen kan er gesteld worden dat de HTML5 app hier het beste scoort. Elke HTML5 app heeft het kleinste Apk bestand. Per type app is er wel een redelijk verschil tussen de groottes, maar ondanks deze inconsistentie blijven ze het kleinst. De Java apk bestandsgroottes liggen dicht bij elkaar. Tevens zijn de bestandsgroottes niet al te groot. De Xamarin Apk bestanden zijn veruit het grootst en komen niet eens in de buurt van de andere technologieën. Ook zijn er redelijke verschillen tussen de groottes van de bestanden per type app.
4.2
Opstarttijd
De opstarttijd van een app is het best zo snel mogelijk. Als een gebruiker een app heeft gestart wilt deze zo snel mogelijk de app gebruiken. In de tabel hieronder ( tabel 5: resultaten opstarttijd) zijn alle resultaten van de apps en de platformen omtrent de Apk grootte.
GPS Game Locatie app
Java
Xamarin
HTML5
1,27 seconden
3,15 seconden
2,60 seconden
1,02 seconden
4,65 seconden
2 seconden
1,66 seconden
5,37 seconden
2,03 seconden
Tabel 5: Resultaten opstarttijd
De resultaten per technologie zijn consistent. Java is altijd de snelste met snelheden tussen 1 seconde en 1,7 seconden. Daarna volgt HTML5 die schommelt tussen 2 seconden en 2,6 seconden. Uiteindelijk volgt Xamarin op geruime afstand van de anderen met snelheden die zich bevinden tussen 3,1 seconden en 5,4 seconden. Bij Xamarin schommelen de resultaten het meest, terwijl bij Java en HTML5 deze dicht bij elkaar liggen. Opvallend is dat per technologie, de opstarttijd verschillend is voor een type app. Bij Java zit de snelste opstarttijd bij de game en de traagste bij de locatie app. Bij HTML5 is de snelste app ook de game, maar de traagste is de GPS. Er moet ook vermeld worden dat het verschil tussen de game en de locatie app slechts 0,3 seconden zijn en dit eigenlijk verwaarloosbaar is. Xamarin heeft dan weer de GPS die als snelste opstart en de locatie app die het traagst opstart. Algemeen kan er gesteld worden dat de native technologie het snelste opstart. Bij de hybride technologieën is HTML5 de technologie die het beste scoort met ruime voorsprong op Xamarin. De opstarttijden per type app schommelen niet zo heel veel bij Java en HTML5, maar bij Xamarin is er een ruime schommeling tussen de apps. Ten slotte zijn er geen besluiten te trekken uit het type app en de opstartsnelheid. Deze hangt af van de technologie die gebruikt wordt.
17
4.3
CPU frequentie
Een belangrijke eigenschap van mobiele apparaten is dat deze gebruik maken van batterijen. Hierdoor moet elk deel van het toestel een goede balans hebben tussen prestaties en het gebruik van energie. Er is een directe link met het gebruik van energie door een processor en zijn klokfrequentie. Hoe groter de klokfrequentie is, hoe meer energie er zal gebruikt worden (Sims, 2016) . Met deze context kunnen de resultaten van de CPU frequentie beter geplaatst worden. In de tabel hieronder ( tabel 6: resultaten CPU frequentie) staan de resultaten van het onderzoek naar de CPU frequenties.
GPS Game Locatie app
Java
Xamarin
HTML5
200 MHz – 800 MHz
400 MHz – 800 MHz
200 MHz – 800 MHz
400 MHz
800 MHz
400 MHz – 800 MHz
200 MHz – 400 MHz
400 MHz - 800 MHz
200 MHz – 400 MHz
Tabel 6: Resultaten CPU frequentie
De verschillen tussen de resultaten zijn niet zo groot als bij de andere testen. Niettegenstaande zijn er toch enkele conclusies die hieruit voortkomen. De CPU frequentie van het toestel is tussen 200 MHz en 1000 MHz. Er is geen enkele app die het maximum van de CPU vergt. Ondanks de kleine verschillen onderling, is Java de technologie die het beste scoort. In het algemeen gebruikt Java het minste CPU. Van de hybride technologieën scoort hier HTML5 terug het beste. Het heeft gelijkaardige prestaties zoals de Java apps, behalve bij de game. Daarin scoort HTML5 net iets minder. Uiteindelijk is er Xamarin, die het meeste CPU verbruik heeft bij elke app. Bij het type apps zien we diverse zaken die terugkomen. De locatie app heeft in het algemeen het minste CPU verbruik. Daarna volgt de GPS. De CPU frequentie schommelt ook het meest bij de GPS. Dit heeft te maken met het gebruik van de GPS om de geolocatie van de gebruiker te vinden. Ten slotte is er de game app die het meeste CPU verbruikt. Bij de game valt het ook op dat de CPU frequentie niet zo veel schommelt. Zowel bij Java als Xamarin blijft de frequentie gelijk. Algemeen kan er gesteld worden dat Java de laagste CPU frequenties heeft, nauw gevolgd door HTML5 die enkel bij de game slechter scoort. Xamarin heeft voor alle apps een hoge CPU frequentie. Bij de apps is het opmerkzaam dat de locatie app bij alle technologieën de laagste CPU frequentie heeft. De GPS heeft de grootste schommelingen in frequentie. Ten slotte heeft de game in het algemeen de hoogste CPU frequentie, maar bij Java en Xamarin blijft deze frequentie gelijk.
18
4.4
Batterijverbruik
Het is voor een gebruiker belangrijk dat de levensduur van zijn batterij lang is. Als een bepaalde technologie minder batterij verbruikt, heeft deze de voorkeur op de anderen. In onderstaande tabel ( tabel 7: resultaten batterijverbruik) staan de resultaten van de testen over het batterijverbruik.
GPS Game Locatie app
Java
Xamarin
HTML5
2%
5%
3%
5%
8%
6%
3%
3%
3%
Tabel 7: Resultaten batterijverbruik
De resultaten zijn consistent over de technologieën heen. Zoals besproken bij de CPU frequentie is de correlatie tussen de frequentie en het verbruik van de batterij zichtbaar. Java is wederom de technologie die het beste scoort. Het verbruik van de apps ligt na 10 minuten tussen 2% en 5%. Als er gekeken wordt naar de CPU frequenties is het opvallend dat de GPS het minst batterij verbruikt, terwijl het de grootste frequentie schommelingen heeft. De locatie app heeft de kleinste CPU frequentie schommelingen, maar verbruikt net iets meer dan de GPS. Uiteindelijk is er de game die stabiel op 400 MHz zit en uiteindelijk 5% batterij verbruikt. Bij de hybride technologieën is HTML5 degene die het beste scoort. Het verbruik is hier 3% en 6%. Ondanks de verschillende schommelingen van de CPU frequenties bij de GPS en locatie app, is het batterijverbruik gelijk. De game heeft het grootste batterijverbruik met 6% en heeft ook de grootste CPU frequenties. Ten slotte is er Xamarin die terug het slechtste scoort. Het verbruik van de batterij na 10 minuten zit tussen 3% en 8%. Verschillend met de andere technologieën verbruikt de GPS meer batterij dan de locatie app. Toch zijn de frequentie schommelingen gelijk bij deze apps. De game verbruikt hier het meeste batterij en dit stemt overeen met de grootste frequentie van de game. Bij het type apps valt het op dat de locatie het minste batterij verbruikt. Elke technologie heeft hier maar 3% batterijverbruik na 10 minuten. De GPS heeft gelijkaardige resultaten, maar scoort net iets minder doordat de Xamarin app hier meer batterij verbruikt dan de andere technologieën. De game heeft het meeste verbruik na 10 minuten. Algemeen kan er gesteld worden dat de Java apps het minst batterij verbruiken. De HTML5 apps komen zeer dicht in de buurt. Ten slotte zijn er de Xamarin apps die het meest batterij verbruiken. Bij het type apps is het batterijverbruik gelijkaardig bij de GPS en de locatie app. De locatie app heeft bij alle technologieën hetzelfde verbruik. De GPS heeft bij Java een beter resultaat dan de locatie app, maar een minder resultaat bij de Xamarin app. Ten slotte verbruikt de game app bij alle technologieën het meeste batterij.
19
4.5
Ophalen van de locatie
Als een gebruiker een GPS app gebruikt, is het voor de gebruiker belangrijk dat de app snel zijn locatie vindt. Een technologie die sneller de locatie kan tonen heeft de voorkeur op een technologie die dit trager doet. In onderstaande tabel ( tabel 8: resultaten ophalen van de locatie) staan de resultaten van de GPS app over het ophalen van de locatie van de gebruiker per technologie.
Ophalen van de locatie
Java
Xamarin
HTML5
3,7 seconden
10,35 seconden
5,15 seconden
Tabel 8: Resultaten ophalen van de locatie
De tijd voor het ophalen van de gebruiker zijn locatie zit tussen 3,7 seconden en 10,4 seconden. Java scoort ook hier het beste met geringe voorsprong op de hybride technologieën. HTML5 kom het dichtst in de buurt van Java met 1,45 seconden verschil. Xamarin scoort zeer erbarmelijk. Het duurt meer dan 10 seconden om de locatie van de gebruiker op te halen. Dit duurt langer dan het dubbele van de tijd waarin HTML5 de locatie ophaalt en zelfs langer dan het drievoud van de tijd in Java.
4.6
Haperingen
Bij het spelen van een spel is het belangrijk dat alles vloeiend beweegt en er geen haperingen zijn. Bij het kiezen van een technologie gaat de voorkeur naar deze die geen of het minst haperingen toont als er veel op het scherm gebeurt. In onderstaande tabel ( tabel 9: resultaten haperingen) staan de resultaten van de game over de haperingen per technologie.
Haperingen
Java
Xamarin
HTML5
Niet zichtbaar
Niet zichtbaar
Zichtbaar na ontgrendelen.
Tabel 9: Resultaten haperingen
Zowel native als hybrid is er een technologie die geen haperingen vertoont. Java en Xamarin hebben vloeiende animaties tijdens het gebruik van de app, ook na het ontgrendelen van het toestel. HTML5 scoort hier minder. Tijdens het gebruik zijn er geen haperingen, maar als je het toestel ontgrendelt merk je haperingen voor enkele seconden. Daarna gaat het terug naar een vloeiende animatie.
20
4.7
Wachttijden
Bij het ophalen van informatie wil een gebruiker deze zo snel mogelijk zien. Een technologie die het snelst data kan ophalen en tonen heeft de voorkeur In onderstaande tabel ( tabel 10: resultaten wachttijden) staan de resultaten van de locatie app over de wachttijden van het ophalen en tonen van informative per technologie.
Wachttijden
Java
Xamarin
HTML5
Niet merkbaar
Niet merkbaar
Niet merkbaar
Tabel 10: Resultaten wachttijden
Bij deze test scoren alle technologieën hetzelfde. Geen enkele technologie heeft de voorkeur op een ander bij het bekijken van deze resultaten.
4.8
Development
Bij het development van een app is het belangrijk dat de documentatie goed is, het niet veel tijd in beslag neemt en het testen vlot gaat. Doordat dit niet makkelijk in een tabel samen te vatten is, zal elke technologie apart besproken worden.
4.8.1
Java
Documentatie over Android is makkelijk te vinden. Bij problemen vind je snel antwoorden terug op het internet. Bij het zoeken naar informatie van Android zelf, kom je altijd op de meest recente documentatie terecht. Development neemt geen extra tijd in beslag. Een developer die eerder met Android heeft gewerkt zal snel alles onder de knie krijgen. Het testen van de app gaat zonder problemen op een emulator of op een fysiek toestel. Je kan snel aanpassingen aan de app toevoegen en deze testen zonder veel tijdverlies.
4.8.2
Xamarin
Xamarin documentatie is goed vindbaar online. Ook vind je redelijk wat antwoorden terug online. Tevens heeft Xamarin een actief forum waar developers en het team van Xamarin elkaar helpen bij problemen bij het maken van een app of bij bugs in Xamarin. Een C# programmeur zal snel kunnen developpen in Xamarin. Er zijn tutorials en source code beschikbaar voor diverse apps. Hiermee kan een developer vanuit een basis vertrekken. Tevens helpt het ook om zo de structuur van Xamarin te leren. Het testen van de app gaat vlot op een emulator of op een fysiek toestel. Bij aanpassingen kan je deze snel testen zonder veel tijdverlies.
21
4.8.3
HTML5
Documentatie voor HTML5 Phonegap apps is niet altijd even duidelijk. Omdat er meerdere manieren zijn om een Phonegap app te maken vind je soms de verkeerde documentatie. Tevens kan je verouderde documentatie terugvinden. Meestal is er een link naar de meest recente versie, maar het is toch opmerkelijk dat de verouderde documentatie eerder op Google verschijnt dan de recentste. Bij problemen vind je online redelijk wat antwoorden, maar sommige antwoorden spreken elkaar tegen of zijn voor een andere manier van Phonegap. In de meeste gevallen is het niet voldoende om enkel maar een HTML file te hebben. Via de Phonegap desktop app kan de mappenstructuur en de benodigde files automatisch aangemaakt worden. Het testen van deze apps gaat moeizamer dan bij Xamarin en Java. Het is niet omdat de app werkt in een browser, dat deze ook zal werken op een smartphone. Beginnelingen kunnen hierdoor soms fout denken dat hun app werkt omdat deze in de browser werkt. Testen op een toestel of emulator neemt ook enige tijd in beslag. Eerst moet de mappenstructuur gezipt worden. Via Phonegap Build maak je van het zip bestand een .Apk bestand. Dit kan je dan gebruiken om te testen op het toestel of de emulator. Doordat het testen in een browser niet betrouwbaar is, kan dit heel wat tijd in beslag nemen.
22
5 Besluit Het besluit zal de volgende vragen beantwoorden: Wat zijn de verschillen in kwaliteit bij diverse soorten apps? Hoelang duurt het development proces van een app met native of hybrid development? Welke manier van hybrid development krijgt de voorkeur op de ander? Deze vragen leiden naar het antwoord op de onderzoeksvraag van deze bachelorproef. De verschillen in kwaliteit bij de diverse apps zijn zeer afhankelijk van technologie. In het algemeen is Java de beste keuze. Voor de hybride technologieën hangt het van het type app af. Voor het ophalen van data en het weergeven van deze data zijn er geen zichtbare verschillen tussen Xamarin en HTML5. Bij de game geniet Xamarin de voorkeur op HTML5 omdat deze op geen enkel moment haperingen toont. HTML5 vertoont haperingen na het ontgrendelen van het toestel als de app al werkt. Bij het gebruik van de GPS geniet HTML5 dan weer de voorkeur. De HTML5 app haalt sneller de locatie op dan zijn Xamarin tegenstrever Op gebied van algemene prestaties is Java ook de betere. Bij de hybride technologieën halt HTML5 de voorkeur. Het grootste probleem bij Xamarin is de grootte van het .Apk bestand en de lange opstarttijd. Development gaat vlot bij zowel Java als Xamarin. De structuur van Xamarin is in het begin wat moeilijk te begrijpen, maar er zijn voldoende hulpmiddelen om hiermee aan de slag te gaan. Het testen van apps gemaakt in de technologieën gaat ook zeer snel. Voor HTML5 gaat development minder vlot vanwege de vaak voorkomende verouderde documentatie tijdens het zoeken naar oplossingen. Tevens gaat het testen van deze apps minder vlot. Dit is omdat het testen in een browser niet representatief is als een app op een smartphone werkt. HTML5 is de hybride technologie dat de voorkeur geniet op Xamarin als er puur gekeken wordt naar prestaties. Als er gekeken wordt naar het gemak van het development geniet Xamarin de voorkeur. Puur op prestaties komen de hybride technologieën nauwelijks in de buurt van de native technologie: Java. Als er gekeken wordt naar development tijd, komt Xamarin in de buurt voor bepaalde apps, rekening houdend dat Xamarin voor meerdere platformen werkt. Voor een app die gebruik maakt van de hardware van het toestel genieten Java en HTML5 de voorkeur. Een app die veel beweging op het scherm heeft zal meer baat hebben aan Java en Xamarin. Ten slotte zal een app die data ophaalt en weergeeft geen directe voorkeur hebben. Ten slotte kunnen we stellen dat: Java heeft de beste prestaties en development gaat vlot. Java is geschikt voor elk type app. Xamarin heeft mindere prestaties, maar development gaat vlot. Xamarin is het meest geschikt voor een app met veel beweging op het scherm. HTML5 heeft geen al te slechte prestaties, maar development is moeizaam. HTML5 is het meest geschikt voor apps die data ophalen en deze weergeven. Het is ook geschikt voor een app die de hardware van het toestel nodig heeft.
23
6 Persoonlijk besluit Deze bachelorproef heeft mij heel wat bijgeleerd. Met name het gebruik van een nieuwe technologie ( Xamarin), het bekijken en vergelijken van resultaten en plannen. Doordat de bachelorproef redelijk vroeg moest af zijn, was het van groot belang dat de planning hiervan in orde was. In het begin ging dit wat stroef, maar uiteindelijk kwam alles in orde. Het moeilijkste gedeelte van deze bachelorproef was de combinatie met de stage. In het begin was het moeilijk om na een dag stage nog diverse apps te maken. Tijdens het maken van de apps voor Xamarin en HTML5 waren er soms wat problemen waardoor mijn planning niet altijd verliep zoals ik hoopte. Dit onderzoek bevestigt dat native technologie nog altijd de betere is van de hybride technologie. Het was wel interessant om de onderlinge verschillen te zien per technologie en per type app. ten slotte kijk ik met een goed gevoel terug naar deze bachelorproef. Ondanks de stress en de vermoeidheid ben ik tevreden met het resultaat. Ik kon mijn liefde voor development en mijn kennis van de voorbije jaren hier insteken. Ik hoop mijn opgedane kennis en ervaringen tijdens deze bachelorproef nog meer te kunnen gebruiken.
24
Referentielijst
Dogtiev, A. (2015, 14 december). App Usage Statistics: 2015 Roundup. Geraadpleegd van http://www.businessofapps.com/app-usage-statistics-2015/ Zeman, E. (2015, 23 juli). iPhone Vs. Android: Apple\'s Success Only Goes So Far [Blogpost]. Geraadpleegd van http://www.informationweek.com/mobile/mobile-devices/iphone-vsandroid-apples-success-only-goes-so-far/a/d-id/1321437 Android and iOS Squeeze the Competition, Swelling to 96.3% of the Smartphone Operating System Market for Both 4Q14 and CY14, According to IDC. (2015, 24 februari). Geraadpleegd van http://www.idc.com/getdoc.jsp?containerId=prUS25450615 Korf, M., & Oksman, E. (2015, april). Native, HTML5, or Hybrid: Understanding Your Mobile Application Development Options. Geraadpleegd van https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mob ile_Application_Development_Options Android (besturingssysteem). (z.j.). Geraadpleegd op 24 februari, 2016, van https://nl.wikipedia.org/wiki/Android_(besturingssysteem) Manjoo, F. (2015, 27 mei). A Murky Road Ahead for Android, Despite Market Dominance. Geraadpleegd van http://gs.statcounter.com/#mobile_os-ww-monthly-201601-201601-map Top Mobile Operating Systems Per Country. (2016, januari). Geraadpleegd van http://gs.statcounter.com/#mobile_os-ww-monthly-201601-201601-map Huijbregts, J. (2016, 24 februari). http://tweakers.net/nieuws/108653/microsoft-neemt-appontwikkelplatform-xamarin-over.html. Geraadpleegd van http://tweakers.net/nieuws/108653/microsoft-neemt-app-ontwikkelplatform-xamarinover.html Xamarin. (z.j.). Geraadpleegd op 24 februari, 2016, van https://en.wikipedia.org/wiki/Xamarin Welch, C. (2013, 16 april). Before it took over smartphones, Android was originally destined for cameras. Geraadpleegd van http://www.theverge.com/2013/4/16/4230468/android-originallydesigned-for-cameras-before-smartphones Oracle. (z.j.). Design Goals of the Java TM Programming Language. Geraadpleegd van http://www.oracle.com/technetwork/java/intro-141325.html Xamarin. (z.j.). What is xamarin? Geraadpleegd van https://xamarin.com/platform W3C. (2014, 9 december). HTML5 Differences from HTML4. Geraadpleegd van https://www.w3.org/TR/html5-diff/ HTML5. (z.j.). Geraadpleegd op 26 februari, 2016, van https://en.wikipedia.org/wiki/HTML5 Khandelwal, S. (2015, 30 september). Google Play Store increases Android APK Size Limit from 50MB to 100MB. Geraadpleegd van http://thehackernews.com/2015/09/android-google-playstore.html Glick, K. (2015, 28 september). Support for 100MB APKs on Google Play. Geraadpleegd van http://android-developers.blogspot.be/2015/09/support-for-100mb-apks-on-google-play.html Google. (z.j.). APK Expansion Files. Geraadpleegd op 19 maart, 2016, van https://developer.android.com/google/play/expansion-files.html?utm_campaign=100MBAPKs-Play-928&utm_source=dac&utm_medium=blog Sims, G. (2016, 12 februari). What is CPU frequency scaling? Geraadpleegd van http://www.androidauthority.com/what-is-cpu-frequency-scaling-672253/ Saccomani, P. (2012, 11 juni). Native, Web or Hybrid Apps? What’s The Difference? Geraadpleegd van http://www.mobiloud.com/blog/2012/06/native-web-or-hybrid-apps/
25
WANNEER DOE JE HET BEST AAN HYBRID OF NATIVE DEVELOPMENT? Promotor: Mh Frederik Duchi Onderzoeksvraag uitgevoerd door
KEVIN VAN LANCKER Voor het behalen van de graad van Bachelor in de
NEW MEDIA AND COMMUNICATION TECHNOLOGY Howest | 2015-2016