Do The Math. Technische universiteit Delft. Bacheloreindproject. Begeleiders: Auteurs: R.G.J. Slag R.G.M. Visser

Maat: px
Weergave met pagina beginnen:

Download "Do The Math. Technische universiteit Delft. Bacheloreindproject. Begeleiders: Auteurs: R.G.J. Slag 1507761 R.G.M. Visser 4043480"

Transcriptie

1 Technische universiteit Delft Bacheloreindproject Do The Math Begeleiders: Auteurs: R.G.J. Slag R.G.M. Visser dhr. ir. L.J. Metz dhr. ir. D. S. van der Meer dhr. H.G. Gross 19 maart 2013

2 Voorwoord In het curriculum van Technische Informatica aan de TUDelft is in de afsluitende fase van de bachelor een volledig kwartaal gereserveerd voor het zogenaamde Bacheloreindproject. In dit project tonen studenten in groepen aan dat zij zelfstandig een project kunnen uitvoeren. Mogelijkheden hiervoor zijn bijvoorbeeld een stage bij een externe organisatie of deelname aan een onderzoek of ontwikkeling aan de TUDelft. Binnen het project leert de student om zijn/haar kennis, opgedaan aan de TUDelft, binnen een groter geheel toe te passen op het complete traject van softwareontwikkeling. Het project staat in principe gepland voor het laatste kwartaal van het academisch jaar, waarin de student geen andere studieverplichtingen heeft; hiervan kan echter worden afgeweken. Het verslag wat voor u ligt is het eindverslag van dit Bacheloreindproject. Aan dit project is gedurende een half jaar parttime aan gewerkt door twee studenten, in samenwerking met het softwarebedrijf Innovattic. De opdrachtgevers vanuit Innovattic zijn de heren ir. L.J. Metz en ir. D.S. van der Meer. Graag bedanken wij iedereen die heeft bijgedragen aan de succesvolle totstandkoming en afronding van dit project. Allereerst willen we de heren ir. Metz en ir. Van Der Meer bedanken voor het mogelijk maken om dit project uit te voeren onder hun hoede en voor alle hulp die we hebben gekregen tijdens het uitvoeren van het project. Ook willen we deheer H.G. Gross bedanken voor alle begeleiding vanuit de TUDelft. Tenslotte gaat onze dank uit naar mw. D. van Alphen en deheer C. Dekker voor hun ondersteuning op het gebied van design en audio. Delft, 19 maart 2013 R.G.M. Visser R.G.J. Slag i

3 Definities en afkortingen API Application Programming Interface, verzameling definities op basis waarvan een computerprogramma kan communiceren met een ander programma of onderdeel. APNS ApplePush Notification Service, de service van Apple die de push notificaties afhandelt. ios Het besturingssysteem van de iphone, ontwikkeld door Apple. JSON JavaScript Object Notation, is een deelverzameling van de programmeertaal JavaScript. Het wordt gebruikt voor het uitwisselen van datastructuren, met name in webapplicaties die asynchroon gegevens ophalen van de webserver. Obj-C Objective-C, de programmeertaal waarin iphone apps geschreven worden. PHP PHP: Hypertext Preprocessor, programeeertaal waarin de API geschreven is. phpmyadmin Grafische interface die de een database inzichtelijk maakt. REST Representational State Transfer, is een veelgebruikte manier om communicatieprotocollen op het internet vast te leggen. SDK ii

4 Definities en afkortingen iii Software Development Kit, een verzameling hulpmiddelen die de ontwikkeling van een programma op een specifiek gebied faciliteren. SOAP Simple Object Access Protocol,een computerprotocol dat wordt gebruikt voor communicatie tussen verschillende componenten.

5 Inhoudsopgave Voorwoord Definities en afkortingen Samenvatting i ii vi 1 Inleiding 1 2 Opdrachtbeschrijving App Aanverwante systemen Tools App Server API Communicatie Planning Initiële planning Definitieve planning Programma van eisen Must-haves Should-haves Could-haves Won t-haves Ontwerp Communicatie App API Server deployment Proces Methodiek Communicatie Innovattic Grafisch design Testen 32 iv

6 Inhoudsopgave v 8.1 Gebruikerstest app Betatest app HockeyApp Unit test API Stresstest SIG Toekomst Zelfstandig op de markt brengen Conclusie Evaluatie 41 Appendices 42 A Interactieontwerpen 43 B Gebruikerstest 45 B.1 Antwoorden vragenlijst B.2 Opmerkingen B.3 Vragenlijst C SIG resultaten 49 C.1 Eerste resultaten C.2 Tweede resultaten D REST aanroepen 51 Bibliografie 54

7 Samenvatting In de moderne wereld van mobiele apps leek ieder mogelijk spel inmiddels wel beschikbaar te zijn. Niets bleek echter minder waar. Op basis van deze waarneming en wat inventiviteit werd er dan ook besloten om een spel uit te brengen welke draaide om hoofdrekenen. Al snel werd bepaald om deze ontwikkeling onder te brengen in ons bacheloreindproject, welke we vervolgens konden uitvoeren onder de vlag van Innovattic. Het doel van de opdracht was dan ook om dit eerste initiële concept uit te werken tot een volwaardig spelconcept. Dit spelconcept diende zodanig breed aansprekend te zijn voor het publiek, dat hieruit ook een app kon voortvloeien, die daadwerkelijk voor een grote schare fans zou kunnen zorgen. Vervolgens diende dit definitieve concept omgezet te worden in een app inclusief aanverwante systemen. Het eindproduct is een succesvolle vertaalslag geworden van het definitieve concept naar een app, die op het punt staat om uitgebracht te worden in de App Store van ios. Op basis van ervaringen tijdens de gehouden gebruikerstesten is er dan ook alle reden om te geloven in de potentie van deze app. Binnen de app is er één speler, die op een turn based manier speelt tegen zijn/haar medespelers. Binnen ieder potje bestaan er verschillende ronden. Iedere ronde is vervolgens van een bepaald type, waarin ieder type ontworpen is om een bepaalde rekenfunctionaliteit van de hersenen te activeren. Men dient vervolgens in deze ronde een bepaald aantal vragen binnen een tijdslimiet op te lossen. Heeft de speler veel vragen goed en tijd over, dan ontvangt hij/zij een aantal extra punten afhankelijk van de resterende tijd. Na drie gespeelde ronden gaat het erom of de speler meer punten heeft weten te scoren dan zijn of haar tegenstander. Tenslotte wint degene met de meeste punten het potje. Naast de ontwikkeling van de app zijn er ook aanverwante systemen ontwikkeld, waarvan de API het meest in het oog springt. Deze API zorgt voor de communicatie tussen de smartphones en is daarmee de centrale spil in de backend. Gezien deze API vele duizenden simultane gebruikers moet kunnen ondersteunen is er dan ook speciale aandacht uitgegaan aan de opzet van de code. Hierdoor is het mogelijk om deze API relatief eenvoudig op te schalen tot vele duizenden gebruikers. vi

8 Samenvatting vii Hoewel inmiddels het bacheloreindproject is afgelopen, is dit nog niet het einde van het project Do The Math. Inmiddels liggen er plannen voor vervolgversies van Do The Math welke verder zullen worden ontwikkeld in samenwerking met Innovattic.

9 1. Inleiding Op 29 juni 2007 werd de eerste iphone uitgebracht. Hoewel het concept alles behalve nieuw was, werd de iphone al snel het symbool voor de vooruitgang van de smartphone. De massa was snel overtuigd door de userinterface en het design. Dit zijn belangrijke aspecten waarbij de voorgangers van de iphone (Windows Mobile 5 bijvoorbeeld) veel steken lieten vallen. Met een capacitief scherm kreeg de gebruiker een nieuwe ervaring met het besturen van een smartphone; een stylus was immers niet meer nodig. Al snel volgden concurrenten deze ingeslagen we, zowel de besturingssystemen als Android en meer recent Windows Phone 8 zijn inmiddels geduchte concurrenten binnen deze competitieve markt. De mobiele telefoons van tegenwoordig blinken echter niet alleen maar uit in de meegeleverde software vanuit de fabrikant, maar door de honderdduizenden apps die men kan downloaden vanuit een centraal punt voor het betreffende besturingssysteem (App Store, Google Play). Deze apps bieden een scala aan mogelijkheden. Van spelletjes tot chatapplicaties en van nieuwsapps tot vermaak, er valt voor bijna alles wel iets te downloaden; gratis of tegen betaling. De industrie voor dit soort applicaties ( apps ) is dan ook gigantisch gegroeid door de jaren heen. Succesverhalen als Whatsapp[1], Drawsomething[2] en Instagram[3] worden zelfs door mensen zonder smartphone herkend. Voor vrijwel ieder wat wils is er iets beschikbaar. Tenminste, zo lijkt het. Als snel besloten we dat we voor ons bachelorproject iets wilden gaan doen met mobiele apps. Niet alleen omdat wij beiden enthousiast smartphonegebruiker zijn, maar ook omdat een mobiele app veel verschillende technieken combineert. Zo is er een user interface en normale programmalogica, maar ook een uitgebreide serverbackend. Idee na idee werd bedacht met als inzet om te komen tot een wereldwijd bekende app van Nederlandse bodem. Tijdens de brainstormfase zijn verschillende ideeën de revue gepasseerd en weer verworpen. Op basis van het uiteindelijke idee contact is er opgenomen met Innovattic. Samen met ir. Metz is dit concept vervolgens nog verder uitgewerkt. Uiteindelijk volgde de definitieve go van het project. Onder begeleiding van Innovattic kon dit concept worden uitgewerkt tot een volwaardig app voor de iphone. 1

10 2. Opdrachtbeschrijving In één zin luidt het doel van de opdracht als volgt: Het ontwikkelen van een app voor de Apple iphone die draait om een turnbased multiplayer spelconcept gebaseerd op getallen met de potentie succesvol te worden. In dit hoofdstuk zal dit verder uiteengezet worden. Allereerst onderscheiden we het hoofdproduct (de app voor de iphone) en alle aanverwante systemen die de functionaliteit van de app ondersteunen. 2.1 App De app is gebaseerd op een zelfbedacht concept. Dit concept is voor aanvang van het project op enkele punten nog verfijnd. Vervolgens heeft dit als leidraad gediend tijdens de uitvoering. Zoals al vermeld in de inleiding lijkt het landschap van mobiele apps meer dan oververzadigd. Voor vrijwel iedere functie lijkt er wel iets voorhanden te zijn. Echter, na wat beter zoeken komt men tot de conclusie dat dit niet het geval is. Waar er honderden spelletjes zijn die zich richten op snelheid, het oplossen van puzzels of het weten van trivia was er in de App Store geen app te vinden die zich op een leuke manier bezig hield met rekenen, iets wat veel mensen ook leuk vinden. Op basis van deze conclusie werd besloten om deze leemte te vullen met het ontwikkelen van een nieuwe app voor dit bacheloreindproject. Het concept draait om het spelenderwijs bezig te zijn met verschillende soorten rekenopgaven. Gebruikers spelen steeds korte spelletjes tegen vrienden. Ieder spel bestaat vervolgens weer uit verschillende ronden. Tijdens iedere ronde krijgen de spelers vragen van een bepaald type die zo snel mogelijk goed beantwoord moeten worden. Na iedere ronde volgt een overzicht waarin de speler kan zien hoe hij/zij heeft gescoord ten opzichte van de medespeler. Tijdens het spelen wordt de speler beloond door bijvoorbeeld achievements te behalen in het spel. Ook groeit de speler door het vaak spelen van deze spelletjes in ervaring, wat ook tot uitdrukking komt in het spel. 2

11 Opdrachtbeschrijving Aanverwante systemen Ter ondersteuning van de app dienen ook enkele aanverwante systemen ontwikkeld te worden. Het meest in het oog springend systeem hiervoor is een centraal communicatiepunt waar alle scores worden bijgehouden, verschillende gebruikers bijeen worden gebracht en de opgaven gegenereerd worden. Ook dienen er diensten als een notificatiesysteem gebouwd te worden dat gebruikers actief op de hoogte kan houden van veranderingen en updates.

12 3. Tools Binnen dit project worden voor het gemak twee trajecten onderscheiden. Beiden houden sterk verband met hun deployment. Enerzijds hebben we de app zelf, zoals die door het publiek wordt ervaren. Dit is de software die wordt gedownload vanuit de Apple Store naar iemands iphone. Anderzijds bestaat er een serverbackend, die zorg draagt voor de achtergrondprocessen. 3.1 App Voor ontwikkeling voor het ios[4] platform is er eigenlijk weinig te kiezen. Apple ondersteunt slechts één ontwikkeltaal: Objective-C ( Obj-C ). Deze taal is een superset van C met de mogelijkheid tot object-georienteerd programmeren. Omdat men enkel voor ios kan programmeren binnen het desktopbesturingssysteem van Apple wordt er gebruik gemaakt van Macs om op te werken. De IDE van Apple zelf (Xcode) is hierop gratis beschikbaar, deze IDE is toegespitst op ontwikkeling van ios en OSX applicaties. De keuze hiervoor is eenvoudig; er zijn simpelweg geen andere opties. 3.2 Server API Voor de server kunnen meer keuzes gemaakt worden. Als taal kiezen is gekozen voor PHP[5]. PHP is een krachtige en breed ondersteunde taal voor webdevelopment. Bovendien kan men in PHP eenvoudig snel programmeren. Als extra laag wordt CodeIgniter ingezet[6]. Dit framework voor PHP abstraheert een aantal details weg. Bovendien kunnen er veel plugins voor gevonden worden, waardoor het niet nodig is om basiscode opnieuw te schrijven. Bovendien heeft CodeIgniter goede documentatie, is het snel en de community is erg groot. 3.3 Communicatie Het voornaamste doel van de server is om communicatie te faciliteren tussen alle smartphones die de app gebruiken. Dit wordt bereikt door de server het centrale punt in de communicatie te laten zijn. De server ontvangt zo de verzoeken van de telefoons, stuurt 4

13 Tools 5 een antwoord terug en verzendt relevante data naar andere apparaten. Dit geschiedt allemaal door een webinterface gebaseerd op de REST-architectuur ( Representational State Transfer ). REST is een veelgebruikte manier om communicatieprotocollen op het internet vast te leggen. Een alternatief zou het gecompliceerdere SOAP ( Simple Object Access Protocol ) zijn geweest[7]. Echter dit levert geen extra voordelen voor deze situatie op, maar het zorgt wel voor meer complexiteit (en dus kans op fouten). Ook is er voor CodeIgniter een REST plugin beschikbaar. Voor ios is zelf een heel framework beschikbaar (RestKit[8]) die ook zorgt voor mapping met interne database van ios (Core Data).

14 4. Planning Tijdens de eerste week bij Innovattic is er als eerste gekeken naar de planning. Door een planning te maken kan de beschikbare tijd zo nuttig mogelijk ingedeeld worden. Het project is in een aantal fases verdeeld: 1. de oriëntatiefase, 2. de ontwerpfase, 3. de implementatiefase, 4. het eindverslag/presentatie. Deze onderdelen zijn vervolgens opgenomen in een initiële planning die wordt uitgelegd in 4.1. Er is gepoogd deze planning vast te houden, maar de ervaring leert dat dit nooit volledig lukt. De uiteindelijke planning, die beschrijft hoe het proces is verlopen, wordt dan ook besproken in Initiële planning De initiële planning (figuur 4.1) is aan het begin van het project gemaakt op basis van inschatting. Hierin hebben we vier fases gedefinieerd. Deze zullen kort uiteengezet worden. Oriëntatiefase Voordat het project daadwerkelijk kon beginnen diende eerst de opdracht uitgediept te worden. Gezien voor ios-ontwikkeling het gebruik van de programmeertaal Objective-C de enige mogelijkheid is, is hier als eerste naar gekeken. Wegens de onbekendheid met de taal was het noodzakelijk om de best-practices en de syntax van de taal te leren. Voor het eindproduct wordt gemikt op een breed publiek. Het moet mogelijk zijn te zijn voor al deze mensen om simultaan te spelen. Om hiermee al zo vroeg mogelijk in het proces rekening te houden is dan ook al snel aandacht aan gegeven. Ten derde is er gekeken naar het psychologische aspect van mobiele games. Als startpunt is onderzocht welke mobiele games succesvol zijn en waarom deze zijn doorgebroken bij 6

15 Planning 7 het grote publiek. Voor het ontwikkelproces is het noodzakelijk te weten welke factoren wel en welke niet meespelen in de kans om een populaire game te lanceren. Bij deze oriëntatie kwamen we het bedrijf Elastique [9] tegen; zij zijn de ontwikkelaar van de app De slimste mens vernoemd naar het gelijknamige televisieprogramma van de NCRV. Er is een afspraak met hen gemaakt om te horen welke problemen zij hebben gehad en hoe zij deze opgelost hebben. Ontwerpfase In deze fase is er gekeken hoe de app en API technisch in elkaar dienen te zitten. Vanuit de onderzoeken uit de oriëntatiefase was er al wat informatie bekend over de verschillende best-practices welke door andere ontwikkelaars zijn bewezen. Door deze voorbereiding was er direct een goed beeld welke elementen nodig zijn om een succesvolle app te maken. Deze elementen hebben we opgenomen in een Programma van Eisen (Hoofdstuk 5). Ten tweede is er ook gekeken naar de verschillende paden die een gebruiker door het programma kan nemen. Hier dient niet alleen technisch rekening mee gehouden te worden, maar ook dienen deze paden voor gebruikers logisch aan te voelen. Hiervoor is er een interactieontwerp ontwikkeld om deze route te beschrijven (Appendix A). Deze technische details zijn in overleg met Innovattic opgesteld. Op basis van deze feedback zijn er nog wat kleine details gewijzigd. Uiteindelijk vormen deze twee documenten het Requirements Analysis Document. Op basis van deze Requirements Analysis is een Plan van Aanpak opgesteld. Dit Plan van Aanpak is vervolgens afgewerkt in wekelijkse Scrum-iteraties. Implementatiefase In deze fase is het product daadwerkelijk ontwikkeld. Hiervoor is het Plan van Aanpak leidend geweest. Tijdens deze fase zijn de app en de API simultaan ontwikkeld. Een van de punten die hierbij naar voren kwam is dat het belangrijk is deze ontwikkeling goed te coördineren, om zo de wachttijd tussen partijen tot een minimum terug te brengen. Features die aan beide kanten implementaties hebben dienen binnen een korte periode na elkaar af te zijn, zodat er direct kan worden getest en eventuele bugs opgelost kunnen worden. Door middel van een goede en duidelijke communicatie is er voor gezorgd dat deze features snel en goed in testversies konden worden ingebouwd.

16 Planning 8 Eindverslag/presentatie Dit project draait op geen enkel moment om pure programmacode. Het is ook nodig deze code duidelijk te documenteren. Ook dient van zowel het proces als product verslaglegging te worden gedaan. Er is gekozen om dit verslag en presentatie actief tijdens het project bij te houden. Hiermee wordt voorkomen dat richting het einde van de beschikbare tijd een verslag alle beschikbare uren inneemt. Ook vanuit een regressieaspect is het verstandig dit direct bij te houden; veel ontwerpkeuzes zijn moeilijker te reconstrueren indien men inmiddels twee maanden verder is in de productontwikkeling. Figuur 4.1: Gantt chart Initiële planning 4.2 Definitieve planning Tijdens ieder proces komt men erachter dat de planning, zoals die initieel is opgesteld, wijzigingen behoeft. Dit project vormt daar geen uitzondering op. Ten eerste bleek dat het ontwerpen van de app meer tijd zou kosten dan oorspronkelijk ingeschat was. Vanwege de intentie om een sterk en volwaardig product af te leveren is hieraan dan ook bewust meer tijd besteed om deze basis direct sterk neer te zetten. Ten tweede zijn er veel ontwerpkeuzes tijdens het proces geëvalueerd en geconcludeerd dat een alternatieve manier beter zou kunnen werken. Het verbeteren en aanpassen van de relevante code is een tijdrovende taak; ook omdat deze code na afloop opnieuw getest dient te worden om te voorkomen dat deze code zich anders gedraagt of minder efficiënt blijkt te zijn. Ten derde bleek ook dat in de implementatiefase meer tijd ging zitten dan oorspronkelijk was ingeschat. Zo kostten het implementeren van veel functionaliteiten meer tijd dan op voorhand ingeschat werd. Voorts zijn verschillende bugs lastig op te sporen of te verhelpen (denk hierbij aan bugs die optreden indien een spel een bepaalde staat heeft). Deze staten moeten eerst exact worden getriggerd, wat redelijk veel werk met

17 Planning 9 zich brengt. Tijdens de gehele periode is er gedocumenteerd, maar mede door een langere implementatiefase is er later dan gepland begonnen aan het eindverslag (figuur 4.2). Figuur 4.2: Gantt chart definitieve planning

18 5. Programma van eisen Voorafgaand aan het ontwikkelen van een softwareproject dient men te definieren aan welke eisen het eindproduct dient te voldoen. Binnen de informatica wordt vaak gebruik gemaakt van het MoSCoW-prioritiseringsmodel. Hierin worden vier categorieën onderscheiden. Ten eerste zijn er de Must-haves: zonder deze functionaliteit is het programma simpelweg niet compleet. Deze zullen worden behandeld in 5.1. Ten tweede komen de Should-haves, dit zijn functies die, indien mogelijk, in het eindproduct dienen te zitten. Deze Should-haves worden uiteengezet in 5.2. Ten derde zijn er de Could-haves, deze features zijn wenselijk, maar niet nodig voor het eindproduct. Deze worden toegelicht in hoofdstuk 5.3. Tenslotte zijn er de Won t-haves, deze features worden uitgesloten van de ontwikkeling en kunnen in een latere versie eventueel worden toegevoegd. Deze features worden uitgelegd in Must-haves Een aantal Must-haves spreken in het geval van ios app ontwikkeling voor zich. Zo dienen potentiële gebruikers de app te kunnen downloaden en worden alle iphones vanaf de 3GS (inclusief) ondersteund. Er worden twee versies uitgebracht, één met reclame (gratis) die men kan upgraden naar een reclamevrije variant voor een klein bedrag. Indien er extra features ontwikkeld worden zullen deze ook primair beschikbaar gesteld worden voor de betaalde variant. Het upgraden naar de betaalde variant geschiedt inapp, dit houdt in dat de upgrade in de app zelf gekocht kan worden. Gebruikers hoeven dus geen nieuwe app te downloaden. Gezien de primaire functionaliteit het spelen van spelletjes is, is dit dan ook een Must-have. Ook is het voor toekomstige productontwikkeling noodzakelijk dat gebruikers door de app heen kunnen worden gevolgd zodat hier rekening mee kan worden gehouden. Accounts Accounts zijn ook van wezenlijke belang voor de game. Iedere speler heeft een account waar vrienden hem/haar aan herkennen. Tegelijkertijd hebben accounts als nadeel dat dit een drempel opwerpt voor gebruikers. Daarom is het mogelijk om een beperkte anonieme account aan te maken. Hiervoor hoeft een gebruiker alleen een gebruikersnaam 10

19 Programma van eisen 11 te kiezen. Men kan echter ook kiezen voor een koppeling met Facebook, waarmee de vrienden van die persoon uitgenodigd kunnen worden om samen een potje te spelen. Men kan echter ook vrienden uitnodigen door ze te zoeken op gebruikersnaam. Deze gebruikersnaam kunnen mensen zelf instellen en wordt vervolgens in de app gebruikt. Indien men gebruik maakt van een Facebook- of koppeling kan men ook het wachtwoord resetten. Tenslotte kan de gebruiker uitloggen. Aanmaken spel Ook het aanmaken van spellen behoort tot een van de belangrijke mogelijkheden van de app. Zo kan men een spel starten met een bestaande vriend, een Facebookvriend, een nieuwe vriend (gezocht via gebruikersnaam) of een willekeurige speler. Beide spelers dienen het spel te accepteren voordat het gestart wordt. Vervolgens wordt dit spel in het homescreen van beide spelers getoond. Spelmodi Het spel bevat verschillende spelmodi. Ieder spel bevat verschillende spelmodi verdeeld over drie ronden. Elke ronde heeft een maximale tijdsduur waarbinnen zoveel mogelijk vragen goed dienen te worden beantwoord. Een vraag is goed of fout; goede vragen leveren punten op, foute vragen niet. Binnen een ronde kan een gebruiker een vaststaand aantal vragen beantwoorden. De speler die aan het einde van alle ronden de meeste punten heeft wint het spel. Na afloop van het spel kunnen beide spelers direct een revanche-potje starten. Talen Om gebruikers de app zo prettig mogelijk te laten ervaren wordt er, waar mogelijk, de taal van de ios installatie overgenomen. Vanaf de lancering wordt er gemikt op de talen Engels, Nederlands, Spaans, Duits en Frans. Indien een gebruiker een taal heeft die niet door de app wordt ondersteund wordt er teruggevallen op het Engels. Geluidseffecten Tijdens het spel zijn er verschillende geluidseffecten te horen bij verschillende interacties. Deze dienen ook aan- en uitgezet te kunnen worden in het instellingenmenu.

20 Programma van eisen 12 Pushnotificaties Om gebruikers zo duidelijk mogelijk te betrekken bij het spel, wordt er gebruik gemaakt van pushnotificaties naar hun iphone. Gebruikers krijgen dan, vrijwel realtime, notificaties als een nieuw spel of ronde beschikbaar is. Alle actieve spellen staan in het home screen van de app, gesorteerd op wiens beurt het is. Ook wordt het app icoon (badge) binnen ios aangepast om aan te geven hoeveel spellen nog wachten op een gebruiker, waardoor ze sneller blijven spelen. Zodra het spel is afgerond ontvangt een gebruiker ook een notificatie met de uitslag. Server API Om de communicatie tussen smartphones centraal te houden wordt er gebruik gemaakt van het client-servermodel. De server is hierin het centrale koppelpunt welke de data bevat en de notificaties verstuurd naar de losse smartphones. De app communiceert met de server via een vastgestelde API via een beveiligde verbinding. De server controleert of het verzoek legitiem is voordat het wordt uitgevoerd. Ook enkele andere precondities (app versie bijvoorbeeld) worden gecontroleerd. Design userinterface Het is natuurlijk belangrijk om de userinterface een prettige uitstraling te geven. Ook dient de app te voldoen aan interface-elementen die gebruikers verwachten van ios apps (navigationbars, slide to refresh). Het spreekt voor zich dat de app vloeiend dient te reageren op user input. Ook mag de app niet crashen. 5.2 Should-haves Achievements Gebruikers dienen achievements (kleine beloningen voor behaalde resultaten) te kunnen halen. Ook moet er tijdens het aanmaken van een spel een moeilijkheidsgraad gekozen kunnen worden.

21 Programma van eisen 13 Vraag overslaan Een speler kan een vraag overslaan, waarna hij deze later opnieuw krijgt. Dit voorkomt frustraties indien men vast zit op een vraag. Na afloop van de ronde kan men zien hoe men heeft gescoord. Tijdens de ronde is inzichtelijk hoeveel vragen goed of fout waren en hoeveel er nog resteren. Tutorials en informatie Gebruikers hebben ook verschillende informatiebronnen nodig, zoals tutorials over de spelmodi en informatie over de ontwikkelaars. Deze informatie dient dan ook toegankelijk te zijn voor de gebruikers Spelstatistieken Ook werkt het erg goed als gebruikers statistieken over hun speelgedrag kunnen inzien, zoals hun progressie over tijd. Deze dient zichtbaar te zijn (eventueel enkel premiumversie). Hetzelfde geldt voor topscores en verhoudingen tussen spelers. Ook hebben spelers een rank welke correspondeert met hun ervaringsniveau, welke wordt gemeten in ervaringspunten. Chat Door gebruikers zich betrokken te laten voelen bij de game en de spelers is het handig om een mogelijkheid tot communicatie tussen spelers te hebben. Hierbij kan worden gedacht aan een kleine chat functie of een mogelijkheid resultaten te posten op social media. 5.3 Could-haves Avatars Om de personalisatie en betrokkenheid van de game verder te verhogen kunnen gebruikers avatars instellen, zoals een foto of een plaatje.

22 Programma van eisen 14 Bonus punten Gebruikers die goed presteren in een spel dienen ook beloond te worden als ze veel vragen goed hebben en nog tijd over op het einde. Ze kunnen dan extra bonuspunten verdienen die meetellen voor het totaal. Bot Indien een speler tegen een willekeurige tegenstander wil spelen, maar er is er geen beschikbaar binnen enkele minuten is dat niet prettig. In dit geval dient een bot dit op te vangen door zich voor te doen als speler en tegen de gebruiker te spelen. 5.4 Won t-haves De Won t-haves zijn vrij kort. Zo wordt de app in eerste instantie niet uitgebracht met een specifieke ipad layout wegens limitaties in ontwikkeltijd. Ook zal het niet mogelijk worden om zelf een taal te kiezen; dit is altijd de taal welke wordt gebruikt door ios zelf.

23 6. Ontwerp Voor het ontwerp is er direct gekeken naar de manieren waarop de productiecode zal worden gedraaid. Het verschil is door de twee platformen evident. Waar de API kan draaien op een centrale server zal elke client maximaal één app draaien. Hier is binnen het ontwerp dan ook rekening mee gehouden. Tussen deze twee platformen zal gecommuniceerd moeten worden. Deze communicatie dient plaats te vinden via een uniforme interface, welke nader uiteen zal worden gezet in 6.1. Hierna is er gekeken naar de verschillende componenten binnen deze structuur. Voor de app zal dit worden besproken in 6.2, de API wordt in 6.3 behandeld. 6.1 Communicatie De communicatie tussen de server en de app dient op een duidelijk gespecificeerde manier te geschieden. Er is gekozen om de data te versturen via HTTP met behulp van REST. Op deze wijze wordt de data via JSON gestructureerd verzonden tussen de app en de API. Ook is het in de toekomst eenvoudig mogelijk om nieuwe typen app (bijvoorbeeld Android) te ondersteunen, gezien zowel JSON als REST industriestandaarden zijn. REST is een manier van HTTP-communicatie waarmee servers en apps kunnen communiceren. Zo weten apps bijvoorbeeld niet of ze via een tussenliggende server verbonden zijn; hierdoor is het eenvoudig mogelijk om load-balancing toe te passen binnen de backend. Hiervoor is het ook nodig om niet met sessies te werken, maar ieder verzoek een eigen basis te laten hebben, met bijvoorbeeld authenticatie. 6.2 App De app wordt ontwikkeld in het programma Xcode, dit programma zorgt ervoor dat een aantal ontwerpkeuzes vast staan. Zo wordt er gebruikt gemaakt van een duidelijk onderscheid tussen model, view en controller: het MVC-model. Voor de models wordt er hoofdzakelijk gebruikt gemaakt van Core Data; een framework binnen ios voor opslaan van data. Voor de view wordt er gebruik gemaakt van storyboards; een grafische user interface waarbinnen op een visuele manier views ontworpen kunnen worden. Tenslotte wordt er in het geval van controllers voornamelijk geleund op de standaardcontrollers 15

24 Ontwerp 16 welke beschikbaar zijn in ios. Deze controllers kunnen vervolgens eenvoudig gesubclassed worden waarmee ze eenvoudig aangepast kunnen worden. Deze drie componenten zullen hieronder uitgebreider beschreven worden. Core Data Core Data is een ios framework wat gebruikt wordt voor permanente dataopslag. Core Data is gebaseerd op het entity-relationshipmodel, welke de data geserialiseerd opslaat in een SQLite-database. Deze data kunnen vervolgens weer worden opgehaald door middel van predicaten. Bij het ophalen wordt de data weer terugvertaald naar de oorspronkelijke Obj-C objecten. In figuur 6.1 wordt het domain model van de app getoond. Dit figuur Figuur 6.1: Domain model core data kan als volgt geïnterpreteerd worden; binnen de app is er één gebruiker ingelogd. Deze gebruiker kan vervolgens meerdere vrienden hebben. Tevens heeft de gebruiker meerdere spellen. Ieder spel wordt gespeeld tegen een tegenstander en bevat drie ronden. Deze tegenstander hoeft geen vriend van de gebruiker te zijn. Een ronde bestaat uit een wisselend aantal vragen, dat afhankelijk is van het type ronde. Het type vragen binnen

25 Ontwerp 17 een ronde is altijd gelijk, het aantal is afhankelijk van specifieke instellingen van de server. View Binnen Xcode worden views gecreëerd door middel van de storyboards. Storyboards zijn een grafische interface binnen ios voor het aanmaken van de grafische user interface van de gehele app. Men kan hierin de verschillende schermen individueel ontwerpen alsmede het opstellen van de paden welke men tussen deze schermen kan nemen (zogenaamde segues ). Voordat deze segues geimplementeerd zijn is er een interactieontwerp gemaakt. Dit interactieontwerp is te vinden in appendix A. Het interactieontwerp beschrijft hoe een gebruiker door de app heen kan navigeren en beschrijft welke acties er op welk moment worden uitgevoerd. Het is hiermee een van de eerste hulpmiddelen van de ontwikkelaar om het eindproduct te kunnen beschrijven aan andere belanghebbenden van het project. Controllers Controllers zijn het grootste deel van de code binnen de app. Ter verduidelijking worden deze onderverdeeld in drie verschillende categorieën: Viewcontrollers, Managers en Frameworks. Viewcontrollers De viewcontrollers zijn verantwoordelijk voor de koppeling tussen het model en de views. Een viewcontroller is voor verantwoordelijk voor een view. Hiervoor handelt hij de gebruikersinteractie af en verzorgt benodigde aanpassingen in het model. Managers De managers binnen de app zijn verantwoordelijk voor een specifiek onderdeel. Dit zijn meestal acties welke binnen de gehele app plaatsvinden en daarom niet binnen een specifieke viewcontroller zijn geprogrammeerd. Men kan hierbij denken aan geluidseffecten, achievements, vriendschappen en lay-out. Als voorbeeld worden er door de hele app heen door de achievementmanager bijgehouden welke achievements er op dat moment gehaald zijn. Zo kan dit losgekoppeld worden van de viewcontrollers (low coupling) en is het ook eenvoudig nieuwe mogelijkheden toe te voegen zonder dat de gehele app

26 Ontwerp 18 aangepast dient te worden. Een ander voorbeeld is de lay-out manager, deze is verantwoordelijk voor de presentatie van een consistente userinterface. Dit zorgt ervoor dat indien er een bepaald userinterface-element verandert van uiterlijk dit meteen door de gehele app doorgevoerd wordt. Frameworks Tenslotte is er gebruik gemaakt van verschillende frameworks. Dit zijn vaak grotere functionaliteiten van derde partijen die gebruikt worden binnen de app. Het grote voordeel van frameworks is evident: het scheelt ontwikkeltijd, implementatie is eenvoudig en een derde partij kan haar framework beter onderhouden. RestKit Het belangrijkste framework dat wordt gebruikt is RestKit. RestKit is een framework dat een koppeling maakt tussen Obj-C en een REST-service. Voor ieder object in het model wordt een mapping gemaakt, deze mapping zorgt vervolgens voor de vertaling van het object naar een JSON- representatie en omgekeerd. Deze JSON representatie wordt vervolgens gebruikt voor de communicatie met de server. Ook zorgt RestKit voor een directe koppeling naar Core Data. Binnen Core Data worden objecten worden aangemaakt, geupdate of verwijderd met behulp van hun unieke primaire key (figuur 6.2). Het gebruik van RestKit elimineert de noodzaak om veel standaard servercommunicatie zelf expliciet af te handelen, zoals correcte data-ontvangst, netwerkstatus en de vertaling en opslag van de data. Figuur 6.2: Restkit Facebook Binnen de app wordt er gebruik gemaakt van gebruikersaccounts. Dit is noodzakelijk om een profiel te kunnen maken en gegevens over een gebruiker bij te houden. Een van de features van dit systeem is de mogelijkheid om een gebruikersaccount aan te maken door middel van een koppeling met Facebook. Facebook heeft hier een software development kit (SDK)[10] beschikbaar voor gesteld, waarmee een sessie kan worden opgezet worden naar deze service. Via dit framework kan een gebruiker inloggen, de app verifiëren en kan de app data van een gebruiker ophalen, zoals zijn informatie en vriendenlijst. Deze data wordt vervolgens ingezet voor het opzetten van het gebruikersprofiel en het zoeken van vrienden. Ook biedt de SDK de mogelijkheid om dingen te posten naar iemands Facebook Wall.

27 Ontwerp 19 Flurry Als laatste is er het Flurry framework[11]. Flurry is een bedrijf welke statistieken levert aan app-ontwikkelaars over het gebruik van hun apps. Deze SDK wordt eenmalig ingeladen en houdt gespecifieerde acties van de gebruiker bij. Deze worden vervolgens in batches naar de server gestuurd, waarna de ontwikkelaar deze data kan inzien. Deze data kunnen de ontwikkelaar hulp bieden om de verdere ontwikkeling van de app te prioriteren. 6.3 API Binnen de API kunnen verschillende grote componenten worden onderscheiden. Dit zijn: 1. GameActions 2. Helpers 3. QuestionLibraries GameActions Het GameActions component bevat alle controllers en models die te maken hebben met de directe calls die de app naar de API doet. Hierin zitten alle acties, zoals het accepteren van een nieuw spelletje tot het versturen. Deze acties worden geinitieerd vanuit de app, die via een REST-verzoek de actie start. De server voert vervolgens de benodigde wijzigingen uit binnen de database en retourneert eventueel relevante data naar de app in het JSON formaat. Al deze verzoeken verlopen via de REST-aanroepen welke worden beschreven in Appendix D. Helpers De Helpers bevatten klassen welke nodig zijn voor taken als externe communicatie. Hierbij kan worden gedacht aan het uploaden van avatars naar Amazons S3 [12] service, het versturen van s naar Amazon SES of het leggen van contact met APNS. Deze klassen zijn niet zelf geschreven maar geimporteerd van de leveranciers van deze services. Het gebruik van deze externe klassen bracht veel tijdwinst voor het project, gezien de communicatie soms vrij intensief / ingewikkeld is en de eigenaar van de dienst beter kan inspelen op veranderingen of uitzonderingssituaties die kunnen voorkomen in de transacties.

28 Ontwerp 20 Binnen de Helpers zitten ook klassen die bijvoorbeeld periodiek uitgevoerd worden om feedback te geven of ontvangen van systemen (zoals APNS feedback en het herinneren van gebruikers aan openstaande spelletjes). QuestionLibraries Tenslotte is er voor het genereren van de vragen uit het spel een apart component welke vragen gegeneerd voor een specifieke moeilijkheidsgraad. Binnen de game bestaan momenteel vier verschillende ronden: 1. Solve: los een opgave op; 2. Right or Wrong: geef aan of uit de expressie de uitkomst volgt; 3. Operators: Er is een expressie gegeven met uitkomst zonder de operatoren. Welke de speler op de goede plek dient te zetten; 4. Twentyfour: Maak van vier getallen het getal 24 (en gebruik alle getallen). Afhankelijk van het type vraag wordt deze real-time gegenereerd of wordt een voorgegenereerde versie opgehaald uit de database. De eerste drie rondetypes worden gegenereerd vanuit de database. Voor de verschillende moeilijkheidsgraden wordt dezelfde methode gebruikt, maar met andere parameters. Het rondetype Twentyfour laat zich echter niet zo eenvoudig realtime genereren. Daarom is gekozen om de unieke opgaven die een oplossing hebben eerst te genereren en op te slaan. Vervolgens wordt, afhankelijk van de moeilijkheidsgraad, één van deze vragen geselecteerd. Mocht de gebruiker een opgave anders oplossen dan de voorbeeldoplossing van de server, en deze oplossing is correct, dan zal deze ook als goed geteld worden. Voor de drie speltypen Right or Wrong, Solve en Operators worden de vragen door de server willekeurig gegenereerd. Hiervoor zijn een aantal kenmerken geïdentificeerd die de door gebruikers ervaren moeilijkheidsgraad beinvloeden: 1. De lengte van de opgave; 2. De verschillende operatoren binnen de opgave; 3. De grootte van de losse getallen in de opgave; 4. De grootte van de uitkomst van de opgave. Voor Right or Wrong wordt er ook nog rekening mee gehouden dat naarmate de moeilijkheidsgraad toeneemt, de variatie met betrekking tot de echte uitkomst kleiner wordt. Tevens worden aan verschillende kenmerken van de opgave punten toegekend. Zo wordt een vermenigvuldiging beschouwd als moeilijker dan een optelling; de opgave krijgt dan

29 Ontwerp 21 meer punten. Ook grotere getallen of negatieve uitkomsten tellen extra mee voor deze punten. Een opgave van een bepaald type binnen een bepaald bereik van punten te scoren voordat deze wordt geaccepteerd. Voor bepaalde moeilijkheidsgraden wordt er ook gebruik gemaakt van delingen. Het is echter vanuit het oogpunt van gebruiksvriendelijkheid beter om mensen enkel te laten rekenen met gehele getallen (waarbij een deling als 8 / 2 = 4 geaccepteerd wordt, maar 7 / 2 = 3.5 niet). Hiermee dient echter specifiek rekening gehouden worden tijdens het genereren. Indien het algoritme bepaalt om een deling uit te voeren treedt het volgende stappenplan in werking: 1. Neem een willekeurig getal binnen de gestelde grenzen (input 1). 2. Neem vervolgens het vorige gegeneerde deel van de opgave, indien deze niet bestaat neem een tweede willekeurig getal binnen de gestelde grenzen (input 2). 3. Neem een willekeurig getal tussen 0 en 1. Indien dit getal kleiner is dan 0.5, neem stap 4a. Anders neem stap 4b 4. (a) Deel input 1 door input 2. Indien de uitkomst een geheel getal is, accepteer en ga naar stap 5. Anders neem input 1 = input Ga naar stap 4a (b) Deel input 2 door input 1. Indien de uitkomst een geheel getal is, accepteer en ga door naar stap 5. Anders neem input 1 = input 1-1. Ga naar stap 4b 5. De uitkomst van de deling is nu altijd een geheel getal, ga verder met het reguliere algoritme. Het bovenstaande algoritme zal altijd binnen eindige tijd eindigen. In geval 4a wordt input 1 vanzelf gelijk aan input 2 maal factor k. In geval 4b wordt input 1 uiteindelijk 1, waarna de uitkomst ook geheel is. Voor alle andere operatoren is de volgorde niet van belang, omdat negatieve getallen zijn toegestaan. Dit proces ziet er dan als volgt uit: 1. Neem een willekeurig getal binnen de gestelde grenzen (input 1). 2. Neem vervolgens het vorige gegeneerde deel van de opgave, indien deze niet bestaat neem een tweede willekeurig getal binnen de gestelde grenzen (input 2). 3. Neem een willekeurig getal tussen 0 en 1. Indien dit getal kleiner is dan 0.5, neem stap 4a. Anders neem stap 4b 4. (a) output is (input 1... input 2) met... de geselecteerde operator. (b) output is (input 2... input 1) met... de geselecteerde operator. 5. Ga verder met het algoritme totdat de lengte van de opgave is bereikt. Zodra de opgave volledig is opgebouwd wordt deze geëvalueerd. Vervolgens wordt de opgave voorbereid voor de app. Dit is afhankelijk van het type opgave.

30 Ontwerp 22 Solve: 1. Evalueer de opgave en sla het resultaat op. 2. Converteer de opgave naar een string en voeg een = teken toe. 3. Stuur de opgave en het resultaat separaat terug. Right or wrong: 1. Evalueer de opgave en sla het resultaat op. 2. Neem een willekeurig getal tussen 0 en 1. Indien dit getal kleiner is dan 0.5, neem stap 3a. Anders neem stap 3b. 3. Er is in 2 bepaald of het antwoord goed of fout moet zijn. (a) Neem het resultaat en ga verder naar stap 4. Het antwoord is dus goed. (b) Neem het resultaat en neem een afwijking binnen de gestelde grenzen van dit resultaat (dit gaat relatief). Het antwoord is dus fout. 4. Converteer de opgave naar een string en voeg een = teken en de uitkomst van stap 3 toe. 5. Stuur de opgave en of deze goed/fout is terug. Operators 1. Evalueer de opgave en sla het resultaat op. 2. Doorloop de opgave en sla iedere operator op en vervang deze in de oorspronkelijke opgave door een punt-karakter (.). 3. Converteer de opgave naar een string en voeg een = teken en de uitkomst van stap 1 toe. 4. Stuur de opgave, de uitkomst en de oorspronkelijke operators terug. Voor Operators is het mogelijk dat een gebruiker een alternatieve manier bedenkt waarbij het antwoord toch klopt. Deze expressies worden op de cliënt berekend en gecontroleerd. Indien deze ook correct is zal deze goed gerekend worden. Na het genereren van de opgave wordt gecontroleerd of deze uiteindelijk voldoet aan de gestelde eisen voor de moeilijkheidsgraad. Dit proces is als volgt: 1. De uitkomst wordt gecontroleerd of deze voldoet aan de eisen. Indien niet wordt de opgave afgewezen. 2. Iedere operator wordt bekeken. Operators hebben ieder een eigen puntenaantal wat wordt toegekend. Dit is afhankelijk van het speltype.

31 Ontwerp Indien het antwoord negatief is kan de vraag meer punten krijgen. 4. Het totale punten aantal dient tussen de gestelde grenzen te liggen. Indien de gegenereerde opgave hier meerdere malen achtereen niet in slaagt, voorkomt de server een loop door deze toch te accepteren. Tenslotte is er een feedbacksysteem voor deze beoordeling. Van iedere vraag wordt bijgehouden welke moeilijkheidsgraad deze heeft en wat de puntenbeoordeling ervan was. Zodra gebruikers de vraag kunnen beantwoorden start in de app een timer die meet hoelang men doet over de vraag (nauwkeurig tot de milliseconde). Ook wordt er opgeslagen of de gebruiker het antwoord goed had. Met enige regelmaat wordt deze informatie gebruikt om de opgelegde grenzen vanuit de database te trainen, waardoor de moeilijkheidsgraden steeds beter aansluiten bij de daadwerkelijke niveaus zoals spelers deze ervaren. 6.4 Server deployment Mogelijkheden Zodra er is voldaan aan de eis om de server API zodanig te bouwen zodat deze in de toekomst makkelijk opschaalt naar vele simultane gebruikers dient er gekeken te worden naar een opzet waarin deze schaalbaarheid ook tot uiting komt. Een schaalbaar systeem op een niet schaalbaar platform (met bijvoorbeeld slechts één server) behaalt alsnog niet de vereiste performance. Voor de deployment van servers zijn verschillende mogelijkheden bekeken. Hiervoor is er allereerst contact opgenomen met de makers van het spel De Slimste Mens, Elastique. Dit spel heeft in Nederland enkele tienduizenden dagelijkse gebruikers, waardoor schaalbaarheid ook in hun platform is meegenomen. Elastique heeft zelf hiervoor een cluster opgezet, dat in eigen beheer is gebouwd. Vanwege de gemaate afspraken met Elastique over de details van dit platform wordt hier niet verder over uitgeweid. De optie eigen beheer is vaak de meest voor de hand liggende optie. De server kan specifiek worden geconfigureerd voor de software welke erop draait. Tevens is dit eenvoudig werken met het oog op de ontwikkeling; men heeft meestal een ontwikkelserver ter beschikking. De code overzetten naar een dedicated machine is dan snel gedaan. Aan deze oplossing kleven echter ook een aantal forse nadelen. Allereerst is er binnen het team en Innovattic geen tot weinig ervaring met het opzetten van dit soort systemen. De kennis voor het goed en efficiënt opzetten van een dergelijke configuratie is simpelweg

32 Ontwerp 24 niet aanwezig bij de ontwikkelaars; deze dient dan te worden ingekocht. Ten tweede zijn er redelijke investeringen noodzakelijk voor het kopen en onderhouden van het platform. Ten derde is het huidige team te klein om een 24/7 uurs ondersteuning te leveren op het platform. Tenslotte is er een groot nadeel aan een dergelijke opstelling: hoewel het systeem prima kan schalen binnen haar hardware grenzen, is het lastig snel meer capaciteit toe te voegen indien deze grenzen worden bereikt. Vervolgens is er gekeken naar het uitbesteden van een dergelijke oplossing naar gespecialiseerde partijen. Deze optie viel echter al snel af vanuit kostenoogpunt, de investeringen zouden voor het project te hoog worden. Hierna is er gekeken naar een serveroplossing in de cloud. Hierbij wordt er capaciteit afgenomen van een grote partij als Amazon[13], Microsoft[14], RackSpace[15] of Google[16]. Bij een dergelijke oplossing is het eigendom van de hardware uitbesteed aan dergelijke partijen en kan men, relatief eenvoudig, zelf een dergelijk platform opzetten. Voordelen zijn evident: capaciteit is direct bij en af te schalen, afhankelijk van de exacte vraag. Ook qua kosten is deze oplossing efficiënt; er wordt slechts betaald voor de afgenomen capaciteit, facturatie geschiedt zelfs per seconde. Ook diensten als load- balancing kunnen direct worden afgenomen. Nadeel is dat software alsnog zelf geïnstalleerd en geconfigureerd dient te worden. Tenslotte is er gekeken naar gespecialiseerde cloudgebaseerde diensten voor ontwikkelaars; voorbeelden hiervan zijn Heroku[17]en AppFog[18]. Deze diensten draaien op een platform als Amazons AWS en bieden een omgeving, welke direct geschikt voor ontwikkelaars. Servercode uitrollen is eenvoudig: 1. Geef aan welke omgeving je wilt gebruiken (Amazon AWS of RackSpace bijvoorbeeld), 2. Geef aan welke programmeertaal je code gebruikt, 3. Koppel eventuele databases, 4. Geef een URL op waaronder je code te bereiken is, 5. Upload de code, 6. Schaalbaarheid van code wordt vervolgens geregeld door deze partij. Keuze In dit geval is er voor AppFog gekozen in plaats van Heroku vanwege een simpele reden: Heroku ondersteunt geen PHP applicaties en AppFog wel. Qua tijdsduur was het geen optie code te herschrijven naar een andere taal. Beide platformen zijn verder vergelijkbaar, hoewel Heroku iets meer add-ons ondersteunt. Het grote verschil tussen de twee is

33 Ontwerp 25 de wijze van facturatie. Heroku werkt met een model waarbij de gebruiker betaald voor CPU-tijd, terwijl AppFog factureert op basis van RAM gebruik. Beide partijen hebben gratis uitgeklede pakketten beschikbaar die ideaal zijn voor ontwikkeling. De situatie voor AppFog werkt als volgt: binnen AppFog maakt men een applicatie aan. Deze applicatie wordt vervolgens voorzien van een limiet aan RAM, indien een applicatie gedurende enkele seconden over dit limiet heengaat wordt deze opnieuw gestart. Van iedere applicatie kan men meerdere instances (instanties) draaien. Tenslotte maakt een applicatie verbinding met services zoals een SQL-server, welke wordt gedeeld tussen de verschillende instances van een applicatie (dit kan ook tussen verschillende applicaties). Inkomende requests worden automatisch geloadbalanced tussen de verschillende instances van een applicatie. Services als een SQL-server zijn transparant voor de gebruiker opgedeeld over meerdere servers, welke real-time met elkaar repliceren. Instances kunnen direct worden bij en afgeschaald, afhankelijk van de vraag. Facturatie geschiedt door middel van pakketten, waarbij men meer RAM tot zijn beschikking krijgt. Er zijn voor de ontwikkelaar echter een aantal zaken waar men rekening mee moet houden in het ontwerp. Al deze factoren spelen echter ook al mee binnen een schaalbaar platform. Zo delen instances geen schijfruimte; dit impliceert dat er binnen de instances geen data mag worden opgeslagen die van belang is voor het functioneren. Deze data dient te worden opgeslagen op een veilige locatie zoals een database of externe locatie. Ook zaken zoals caches dienen of gedeeld te worden tussen instances (als service bijvoorbeeld) of slechts data te bevatten welke direct opnieuw gegenereerd kan worden. De servercode voldoet aan al deze eisen. Opzet Voor DoTheMath wordt er in de ontwikkelfase gebruik gemaakt van de gratis versie van AppFog. Hierin is er voor de ontwikkelaar 2 GB RAM beschikbaar, die op te delen valt in blokken van 128 MB. Voor de API zijn er twee versies online; een test en een acceptatie-omgeving. Beiden draaien op 256 MB RAM met slechts één instance, beide zijn gekoppeld aan dezelfde SQL-service waar de data instaat. De acceptatie is bedoeld voor stabiele code, waar de app naar verbindt. De test is bedoeld om code te testen en te stabiliseren, totdat deze ook naar de acceptatie wordt uitgerold. Voor de uit te brengen app wordt er een productie-omgeving gestart. Deze zal ook 256 MB RAM gebruiken, maar met meerdere instances. Ook zal deze niet verbinden met dezelfde database. Ter bevordering van

34 Ontwerp 26 de ontwikkeling is er ook een applicatie van phpmyadmin aanwezig, hierdoor is de database eenvoudig inzichtelijk en kunnen wijzigingen op een praktische manier worden doorgevoerd. Voor alle taken die op bepaalde tijden dienen gedaan te worden is er een kleine applicatie aanwezig die op gezette tijden opdrachten uitvoert, zoals het versturen van pushnotificaties en het laten verlopen van oude spellen. Dataopslag Zoals al genoemd is het bestandsysteem op de server niet blijvend. Door het opnieuw starten van instances en het feit dat apps op iedere instance kunnen komen kan de beschikbaarheid van de data niet gegarandeerd worden. De API slaat deze data dan ook op bij een externe dienst, in dit geval Amazons S3. Gezien de applicatie al draait op het AWS platform van Amazon binnen AppFog, zorgt het plaatsen van de data binnen hetzelfde platform ervoor dat vertragingen zo laag mogelijk zijn. Tevens heeft Amazon S3 als voordeel dat de data op een gestructureerde manier redundant is opgeslagen, wat de kans op dataverlies minimaliseert. Tenslotte kan deze data, indien gewenst, direct uitgeserveerd worden aan apps, zonder eerst langs de API te moeten. Vooral in het geval van avatars is dit een voordeel, gezien deze zo opgehaald kunnen worden zonder de API te belasten. Een andere limitatie is dat AppFog servers geen kunnen versturen als anti-spam maatregel. Ook hiervoor dient een extra dienst gebruikt te worden. Do The Math maakt heel weinig gebruik van ; enkel om nieuwe gebruikers uit te nodigen of wachtwoorden te herstellen. Desondanks is het nodig om te zorgen dat deze E- mail betrouwbaar wordt afgeleverd zonder problemen. Door de wereldwijde groei van spam is het inmiddels echter niet meer zo trivaal om E- mail betrouwbaar te laten aankomen; maatregelen als SPF ( Sender policy framework ) en DKIM ( Domain Keys Identified Mail ) dienen goed geïmplementeerd te worden. Hiervoor is ook de kennis en tijd niet aanwezig, waardoor er ook is gekozen dit uit te besteden naar Amazon. Amazon levert hiervoor het SES platform, waarmee men middels een API kan versturen. Amazon regelt vervolgens de correcte DKIMkeys. Voordat men kan versturen dient men zelf de aangeleverde SPF records te implementeren.

35 Ontwerp 27 DKIM en SPF zijn technieken gebruikt om te te valideren. DKIM signeert een bericht, waarvan de publieke sleutel in de DNS staat. Hiermee kan een ontvanger controleren of de mail daadwerkelijk afkomstig is van een domein. SPF controleert of de server die de verzendt mag verzenden namens dat domein. Een complete uitleg van deze technieken gaat echter te ver voor dit verslag. Deployment diagram In figuur 6.3 is te zien hoe alle componenten samenwerken en communiceren met elkaar. Figuur 6.3: Deployment diagram

36 7. Proces Van het ontwikkeltraject zijn er een aantal aspecten welke besproken dienen te worden. Allereerst is de methodiek die is gebruikt gedurende het proces van toepassing; welke techniek was dit en hoe is deze gebruikt. Dit komt aan bod in 7.1. Ten tweede behoeft de communicatie naar Innovattic, het begeleidend bedrijf, een uitleg. Dit zal besproken worden in 7.2. Ten derde wordt de totstandkoming van het grafisch design behandeld in Methodiek Er zijn verschillende methoden voor softwareontwikkeling om het proces vorm te geven. Het meest bekende model is het waterval-model, veel gebruikt bij bijvoorbeeld bouwprojecten. Het model wordt echter steeds minder gebruikt in de software-industrie, omdat dit lang niet altijd goed aansluit bij de eisen die de industrie stelt. Tegenwoordig wordt er daarom door steeds meer bedrijven gebruikt gemaakt van verschillende manieren van zogenaamde agile development [19] processen. Deze processen werken vaak op basis van features welke in het eindproduct komen in plaats van het volledige eindproduct. Deze features worden vervolgens iteratief geïmplementeerd, met als doel iedere paar weken (afhankelijk van de gekozen intervallengte) een versie uit te brengen welke is uitgebreid met nieuwe mogelijkheden. Voorbeelden hiervan zijn Extreme Programming en Scrum[19]. Voor Do The Math is er gekozen om gebruik te maken van Scrum. Ten eerste lenen mobiele apps zich erg goed voor korte sprints waarbij features worden opgeleverd. Door te ontwikkelen met Scrum methodiek is het mogelijk om iedere week een nieuwe testversie met minder bugs en meer features naar een groep testgebruikers te sturen. Ten tweede is Scrum momenteel de methode die gebruikt wordt binnen Innovattic, het aansluiten aan een bestaande methode is dan ook eenvoudig voor alle betrokkenen. Ten derde ondersteunt Scrum ontwikkelaars sterk om all-round te kunnen functioneren. Binnen de projectgroep is deze kennis ook zodanig verdeeld. Door het gebruik van deze methode wordt wachttijd op elkaar geminimaliseerd en tijdsverlies voorkomen. Het gebruik van Scrum is goed bevallen. Dagelijks werd een korte uitleg gegeven over wie welke taken ging uitvoeren en werd de vorige dag geëvalueerd. Ook het gebruik van 28

37 Proces 29 korte sprints werd als positief ervaren. Nieuwe versies kunnen razendsnel ontwikkeld worden, waardoor eventuele bugs zo snel mogelijk aan het licht komen. Tenslotte zorgt de ontwikkelmethode voor een goed overzicht voor alle partijen; zo is op ieder moment duidelijk waar het project staat en waar het project zal zijn na afloop van de huidige iteratie. Ook zijn er een aantal nadelen ontdekt binnen de gebruikte methodiek. Zo is in dit specifieke geval het onderscheid tussen de verschillende rollen klein. Zo is het team tevens Product Owner. Tevens is de Scrum master in het geheel ook weer Product Owner. Dit zorgt ervoor dat de traditionele rolverdeling zoals Scrum deze definieert niet geheel gevolgd kan worden (dit is deels inherent aan kleine teams). Ten tweede is er in mindere mate gebruik gemaakt van een daadwerkelijk backlog met een burndown-chart. In plaats hiervan is een reguliere issuetracker gebruikt waar alle bugs en features in vermeld waren. Hoewel er wel voor iedere sprint werd gekozen welke features geïmplementeerd zouden gaan worden, is de scheiding tussen bugs en features niet altijd volledig gemaakt. Zoals al even kort aangestipt is er voor het project ook gebruikt gemaakt van een bugen issuetracker: Chili[20]. Chili is een bewezen platform waarin men onder andere de beschikking heeft over een wiki, issuetracker, roadmap en filesharing. De keus voor Chili was al snel evident: het is het reguliere platform binnen Innovattic voor projecten. Door simpelweg gebruik te maken van dit platform is het voor alle betrokkenen eenvoudig om op de hoogte te blijven van de huidige status. In het begin van het project is er in mindere mate gebruik gemaakt van de mogelijkheden van Chili. Hoewel er heel ambitieus werd omgegaan met de documentatie in de ontwerpfase, is deze vervolgens weinig bijgewerkt. Deze situatie ontstond doordat beide teamleden, door het intensieve gebruik van Scrum, zodanig op de hoogte waren van de specificaties en afspraken dat het maken van documentatie vaak werd overgeslagen als zijnde overbodig. Door het project heen zijn features en bugs echter wel consequent in Chili gezet, omdat dit systeem werd gebruikt binnen de Scrumstructuur. Richting het einde van het project is er weer veel documentatie opgeleverd, ook om later uitbreidingen van het spel naar andere mobiele platformen eenvoudig te faciliteren. Bij de aanvang van het project is er allereerst gekeken naar een eisenpakket waar het eindproduct aan diende te voldoen om te kunnen spreken van een geslaagd ontwikkeltraject. Dit eisenpakket is in samenspraak met Innovattic opgesteld en heeft tijdens het project gediend als handvat voor de productontwikkeling. Dit programma van eisen is besproken in hoofdstuk 5. Vervolgens is er aan de hand van dit programma van eisen, in combinatie met de geplande tijdsduur, een initieel plan van aanpak opgesteld. Hierin is opgenomen wanneer

38 Proces 30 bepaalde mijlpalen bereikt dienden te worden en hoe de ontwikkeling van de verschillende componenten samenhangt. 7.2 Communicatie Innovattic Gezien de manier waardoor er is gekozen om met Innovattic dit project uit te gaan voeren, is het niet verrassend dat de communicatie op een goede manier is verlopen. Zo is er direct voor gekozen om drie dagen per week aan het project te besteden, gedurende een half jaar. Tijdens deze periode is er bij Innovattic op kantoor gewerkt. Enerzijds omdat dit een zorgt voor een duidelijk moment waar er aan het project gezeten wordt, anderzijds zodat alle betrokkenen duidelijk inzicht hebben in de voortgang van het eindproduct. Binnen Innovattic is er het meest gecommuniceerd met de twee eigenaren en tevens begeleiders van het project: ir. L.J. Metz (Lauwerens) en ir. D.S. van der Meer (Desmond). Voor het project hebben zij ons de ondersteuning geboden die nodig was om het project tot een goed einde te brengen. Aan het begin van iedere week werd er een korte meeting belegd met ir. Metz om te kijken wat deze week de doelen zouden worden. Aan het einde van de week werden deze doelen vervolgens geëvalueerd en besproken (als onderdeel van het Scrumproces). Ook hebben er tussendoor een aantal meetings plaatsgevonden die waren gericht op andere aspecten van de game, zoals de gameplay en functionaliteiten. Deze meetings hadden ook als belangrijk punt om te coördineren welke doelen gesteld dienden te worden voor de app om het uiteindelijke succes te meten. Een ander groot voordeel van het werken op het kantoor van Innovattic was dat het mogelijk was om vragen te stellen aan andere ontwikkelaars van Innovattic. Omdat veel onderdelen van het platform nog onbekend waren aan het begin van het project was het zeer nuttig hierover vragen te kunnen stellen. Op dit gebied heeft vooral ir. Van Der Meer ondersteuning geleverd met kennis, ervaringen en best-practices. Veel andere medewerkers van Innovattic hebben ook bijgedragen aan oplossingen met suggesties, bug reports en brainstormsessies. Wederzijds is er tijdens het proces sprake geweest van kennisoverdracht. Zo is er door ir. Van Der Meer meerdere malen naar de programmacode gekeken om deze te voorzien van commentaar en suggesties voor verbeteringen. Omgekeerd is er tijdens informele besprekingen een presentatie gegeven voor het gehele team van Innovattic, waarbij de problemen en oplossingen die gebruikt zijn binnen Do The Math zijn behandeld.

39 Proces Grafisch design Het grafisch design van de app is een belangrijk gegeven. Consumenten zijn zich zeer bewust van het uiterlijk van het beoogde spel; het is dan ook belangrijk om te zorgen dat dit geoptimaliseerd is. Hiervoor is besloten om mw. D. van Alphen (Dorien) aan te trekken, zij is masterstudent Industrieel Ontwerpen aan de TUDelft. In gesprekken met mw. van Alphen is er al in een vroeg stadium gekeken naar de uitstraling die het spel kenmerkte en welke grafische stijl hiervoor gekozen zou worden. Besloten is om een stijl te hanteren die doet denken aan een vrolijke basisschool. Krijt- en prikborden, whiteboards en rekenmachines voeren binnen de verschillende speltypes de boventoon (design is afhankelijk van het speltype). Verder worden er lettertypes gebruikt die het menselijk schrift nabootsen en wordt er veel gebruik gemaakt van kleurrijke cijfers op de achtergronden. Qua kleuren is er gekozen voor contrasten, enerzijds zijn er vele matte tinten aanwezig, anderzijds zijn basiselementen uitgevoerd met een fellere kleurtint. Deze designkeuzes zorgen ervoor dat het product meer als een geheel oogt. Dit zorgt op zijn beurt weer voor een betere speelbaarheid en verhoogde amusementswaarde.

40 8. Testen 8.1 Gebruikerstest app Binnen het testen van de app is er voornamelijk gebruik gemaakt van gebruikerstests. Hierbij voeren gebruikers (dit kunnen ook ontwikkelaars zijn) specifieke acties uit binnen de app. Deze acties dienen bepaald gedrag van de app te forceren. De uitkomst van dit gedrag kan vervolgens worden gecontroleerd door de ontwikkelaar. Deze wijze van testen is gekozen door de opzet van de app. De app bevat relatief weinig logica en deze haalt vaak data op van de server. Veel acties, zoals het reageren op aanrakingen, worden vanuit Apple geïmplementeerd. Het automatisch testen van deze onderdelen zorgt voor veel extra werk, terwijl de voordelen klein zijn. Het gebruik van gebruikerstests, in combinatie met snelle en korte iteraties, zorgt ervoor dat het testen intensief gebeurd. Testen gebeurt vanzelfsprekend tijdens de ontwikkeling waardoor evidente bugs niet in een release terecht komen. Aan het einde van een iteratie wordt een testbuild vervolgens verstuurd naar alle testers. Zij kennen het verwachte gedrag van de software; indien er afwijkingen plaatsvinden kunnen zij eenvoudig een bugreport indienen via de projectsoftware. In het geval van een crash zal bij een herstart van de app deze automatisch debugdata opsturen naar het ontwikkelteam. De oorzaak van deze crash kan vervolgens worden uitgezocht zodat deze wordt opgelost in de komende iteratie. 8.2 Betatest app Na enkele maanden ontwikkeltijd was Do The Math inmiddels stabiel genoeg om getoond te worden aan een selecte groep testers. Het directe doel van deze test was om te bepalen hoe men reageerde op het concept, hoe eenvoudig er door de app te navigeren was en of men tevreden was met de opgaven en de moeilijkheidsgraad ervan. De test is gedaan met tien willekeurig gevraagde studenten van de TUDelft op 27 december 2012 in het YES!Delft gebouw. Vrijwel alle betreffende studenten hadden zelf een iphone om mee te testen, twee andere studenten kregen een iphone voor de test vanuit Innovattic. Op de betreffende telefoons was de meest recente stabiele code gezet. De beoordeling van de test werd tweeledig uitgevoerd. Allereerst werd er door het ontwikkelteam simpelweg geobserveerd hoe men reageerde en wat er tegen elkaar gezegd 32

41 Testen 33 werd. Ten tweede kregen alle studenten na afloop van de test een formulier waarop zij het spel konden beoordelen op verschillende onderdelen. Zodra alle testers de software op hun telefoon hadden staan is er een korte introductie gegeven van Do The Math en is hen verteld waarop deze test zich voornamelijk richtte. Vervolgens konden de testers onderling aan de slag om het spel te spelen gedurende twee uur. Tijdens deze uren is er rondgelopen door het ontwikkelteam waarbij er is gekeken naar de ervaring van mensen. Ook is er gekeken hoe snel mensen doorhadden hoe spelmodi werkten (hier was bewust geen uitleg over gegeven) om zo te kunnen beoordelen in hoeverre deze geschikt zijn voor verschillende gebruikersgroepen. Tijdens deze test is er veel informatie verzameld over hoe mensen reageren op het product. Ook is het heel nuttig om juist diegenen te betrekken welke niet hebben deelgenomen aan het ontwikkelproces. De belangrijkste observatie was dat de testgroep het spel leuk vond om te spelen. Na twee uur werd de test afgesloten, terwijl veel mensen nog wel even door wilden gaan. Vervolgens is besloten om de versie die op hun telefoons stond nog tijdelijk te ondersteunen, zodat testers ook later nog gevolgd konden worden. Ten tweede bleek dat de spellen en hun moeilijkheidsgraad goed werden beoordeeld, helaas met één uitzondering: TwentyFour. Zeker op de laagste moeilijkheidsgraad is deze spelmodus door het ontwerp nog te lastig vergeleken met andere onderdelen. Onder andere door deze test is vervolgens gekozen om TwentyFour niet meer te laten genereren binnen de laagste moeilijkheidsgraad. Tenslotte gaven de spelers, zowel impliciet door hun gedrag als expliciet op hun formulier, aan dat ze het spel erg leuk vonden om te spelen. Alle relevante resultaten van de gebruikerstest zijn inzichtelijk in appendix B. Hierin worden ook de gemiddelden en varianties van de scores getoond. 8.3 HockeyApp Voor het uitrollen van testversies naar alle testers wordt gebruik gemaakt van het HockeyApp pakket[21]. Dit pakket is een primair hulpmiddel binnen Innovattic voor het uitrollen van testbuilds naar betrokkenen. Zodra een nieuwe build online wordt gezet ontvangen testers meldingen dat er een nieuwe build beschikbaar is; dit kan via de app zelf of via pushnotificaties. De tester kan de nieuwe versie vervolgens direct installeren. Binnen de HockeyApp website kunnen ontwikkelaars vervolgens bijhouden hoeveel uur er door testers is getest, welke crashes optraden (en in welke versie), welk type telefoon de tester gebruikt en heel veel andere data welke het oplossen van bugs vergemakkelijkt.

42 Testen Unit test API Binnen de API wordt er gebruik gemaakt van unit tests. Software zoals een API leent zich uitstekend voor dit type tests gezien het karakter van een API. Een app stuurt een losstaand verzoek naar de API, waarna deze het verzoek uitvoert. Er is dus in sterke mate controle over pre- en postcondities van ieder verzoek. Binnen de API is er voor ieder mogelijk verzoek een testcase aangebracht. De database wordt in een teststand gebracht, waarna het verzoek wordt geëmuleerd door de API via de REST-interface aan te spreken. Vervolgens wordt de eventuele data bekeken welke de API terugstuurt alsook de staat van de database na afloop van het verzoek. Indien beide voldoen slaagt de betreffende testcase. Deze testcases bestaan vervolgens voor alle mogelijke aanroepen en worden uitgevoerd op een losse database. Deze database is zo gemodelleerd dat deze voor ieder verzoek voldoet aan de geldende precondities. Ondanks dat de client-server specificatie exact is opgesteld worden randvoorwaarden en ongeldige API-calls ook getest. De server zal deze niet uitvoeren maar een foutcode teruggeven. 8.5 Stresstest Voor een mobiele app welke potentieel door tienduizenden mensen simultaan gespeeld dient te kunnen worden is het ook van belang dat de backend van deze app dit aantal verzoeken kan afhandelen. Zoals eerder beschreven is het platform om die reden schaalbaar opgezet (via AppFog). Echter dient er een indicatie gegeven te worden in hoeverre dit platform bezoekers kan verwerken. Om deze reden is er een stresstest uitgevoerd op de backend applicatie. Hiervoor zijn vier instances van de backend ingeschakeld, welke ieder 256 MB RAM ter beschikking hadden. Deze zijn vervolgens met de tool ab (Apache Benchmark) op verschillende concurrency niveaus. Een hoge concurrency simuleert meerdere simultane gebruikers. Vervolgens is ervoor gekozen een van de zwaarste operaties als basisoperatie te gebruiken en is caching volledig uitgeschakeld. Uit deze test blijkt zowel de applicatie als het onderliggende platform schaalt tot een flink aantal gebruikers (met gemak enkele tienduizenden). In de betreffende operatie worden van alle games van een gebruiker alle resultaten opgehaald, van zowel de speler zelf als zijn/haar tegenstander. Deze operatie vereist een aantal verschillende queries om alle data op te halen, welke vervolgens tot enkele honderden malen dienen te worden uitgevoerd.de extrapolatie van concurrency naar gebruikers is helaas niet zo eenvoudig te doen en vereist wat schattingen. Allereerst stuurt een gebruiker niet de hele tijd verzoeken naar de API. Ten tweede voert een gebruiker verschillende verzoeken uit, op

43 Testen 35 verschillende momenten; zo zal het zware testverzoek niet continu aangeroepen worden. Ten derde zorgt het opvragen van resultaten van dezelfde gebruiker voor databaselocking op plekken waar dit in een reallife situatie niet voor zou komen. Tenslotte zal de uiteindelijke API ook gebruik maken van caching waar mogelijk, wat is deze test nog niet is gebeurd. 8.6 SIG Zoals gebruikelijk binnen het bacheloreindproject is de code die is gecreeerd ook tweemaal naar SIG [22] gestuurd. De eerste keer werd de code verstuurd in begin januari, de tweede keer op het moment dat alle code daadwerkelijk af was. Eerste evaluatie De feedback van SIG op de code was positief (Appendix C). Van de totaal haalbare vijf sterren ontving de code van Do The Math de eerste keer al direct vier sterren. Commentaar was er echter ook, zo was de MVC scheiding binnen de ios code niet altijd goed doorgevoerd. Tevens speelde het dat er enige mate van duplicate code aanwezig was in de ios app. Tenslotte waren er enkele erg lange methoden aanwezig in de code, welke ook de onderhoudbaarheid niet bevorderen. Door deze feedback is er kritisch gekeken naar de code en zijn er een aantal wijzigingen doorgevoerd. Op het gebied van de duplicate code en de lange methoden zijn er wijzigingen doorgevoerd om deze methoden drastisch in te korten en waar mogelijk op te splitsen (deze twee wijzigingen hangen dan ook sterk met elkaar samen). Op het gebied van de MVC scheiding is er echter gekozen deze aanbeveling niet te volgen. De code die is opgestuurd naar SIG bestond uit de losse bronbestanden van de code. Binnen de API worden er door het framework voor ieder onderdeel uit het MVC-model losse mappen gebruikt. De structuur welke Xcode aanhoudt is echter anders. Hier worden de bestanden allemaal primair in één map gezet, wat op het oog (ook voor SIG) inhoudt dat de scheiding tussen MVC niet is doorgevoerd. Echter gebruikt Xcode vervolgens intern zogenaamde groups om de code te orderen. Hier is binnen Do The Math dan ook gebruik van gemaakt. Voor een voorbeeld van deze ordening is te zien in figuur 8.1.

44 Testen 36 Figuur 8.1: Structuur bestanden Tweede evaluatie Voor de tweede evaluatie heeft de codebase van Do The Math wederom vier sterren gekregen van SIG. Er is veel van de voorgaande feedback geïmplementeerd. Zo is allereerst de code beter gestructureerd gemaakt. Binnen de codebase worden er nu ook mappen gebruikt om de verschillende onderdelen van de MVC-structuur te scheiden van elkaar. Hierdoor is het eenvoudiger bepaalde functionaliteiten te lokaliseren. Echter binnen de API zou er nog de mogelijkheid zijn om de libraries map beter te structureren. Hier is echter vanaf gezien door het toch al kleine aantal bestanden wat hier staat.

45 Testen 37 Tevens zijn ditmaal alle gemaakte unit tests meegestuurd, welke de belangrijkste onderdelen van de code automatisch controleren. Deze tests worden momenteel geïmplementeerd als controller. Hierdoor kunnen deze tests op dezelfde wijze worden aangeroepen. Indien de configuratie dit toelaat wordt er automatisch een unit test database gecreëerd waarop deze tests worden uitgevoerd. Een kritiekpunt op deze werkwijze vanuit SIG is dat de unit test code niet volledig gescheiden is van de productiecode. Dit is echter bewust zo gedaan om het draaien van de tests zo laagdrempelig mogelijk te maken. Door deze lage drempel worden de unit tests juist weer veel gebruikt na een wijziging, waardoor er geen bugs optreden in het gedrag van de API. Tenslotte is er verwezen naar de Duplication en Method Size. Deze scoorden in de eerste evaluatie al vier sterren, waardoor hier relatief weinig aandacht naar is uitgegaan (ook mede door tijdsdruk). Op plekken waar er aan de code is gewerkt en hieraan iets verbeterd kon worden is dit dan ook gedaan. Er is enkel niet verder gezocht naar andere stukken code waar deze verbeteringen op van toepassing konden zijn. In alle stukken code die zijn geschreven na de eerste evaluatie is met deze twee factoren meer rekening gehouden.

46 9. Toekomst Zowel binnen Innovattic als de projectgroep zelf heerst de opvatting dat er grote mogelijkheden zijn met Do The Math. Deze is vooral ingegeven door twee waarnemingen tijdens het proces. Allereerst bestaat er simpelweg nog geen ander spel voor een mobiel platform dat doet denken aan Do The Math. Ten tweede kan men uit de gebruikerstest (hoewel geen volledig betrouwbare streekproef) concluderen dat het concept ook daadwerkelijk werkt en als erg positief beoordeeld werd. 9.1 Zelfstandig op de markt brengen Door de opzet van de verschillende App Stores van mobiele platformen is het op de markt brengen eenvoudig. De bedrijven achter de verschillende platformen bieden hiervoor ruimte aan binnen deze App Stores, waarmee de software snel aan eindgebruikers kan worden aangeboden. De App Stores verzorgen vervolgens de hosting van de bundel, bieden mogelijkheden tot opzoeken en updaten en handelen de betalingen van gebruikers af. De daadwerkelijke ontwikkelaar van de app geeft deze diensten uit handen aan Apple, Google of Microsoft (Apple en Microsoft staan zelfs enkel appdistributie toe via hun app stores). In ruil hiervoor nemen deze bedrijven een percentage van de gedraaide omzet van deze apps. Dit percentage gaat enkel over aankopen via deze App Stores, reclame valt hierbuiten. Voor Do The Math wordt er een marktintroductie nagestreefd. Het product is immers al ontwikkeld en klaar voor een release. Kosten voor hosting van de API zijn laag te noemen, waardoor een eventueel financieel risico laag uitvalt. Inkomsten kunnen vervolgens worden gegenereerd door het plaatsen van advertenties in de menu s van de app (via Googles AdMob)[23] en een premiumversie, waar gebruikers geen reclame meer te zien krijgen. Voor de premiumversie kan in de toekomst vervolgens ook extra premiumfunctionaliteit worden uitgebracht, zoals bepaalde features welke in de gratis versie (met reclames) niet aanwezig is. Na het op de markt brengen van de app is het vervolgens een kwestie van het in de gaten houden van de verkoop en de belasting van de API. Indien nodig dient de API servercapaciteit bijgeschaald te worden. Het monitoren van het aantal downloads en gebruikers is vervolgens belangrijk om objectief in te kunnen schatten in hoeverre er sprake is van een succes. Indien er wordt voldaan aan vooraf gestelde doelen wordt er vervolgens verder ontwikkeld aan het product; hierbij kan men 38

47 toekomst 39 denken aan extra features of het ontwikkelen voor andere platformen zoals Android. Indien deze doelen echter niet gehaald worden wordt het platform enige tijd in de lucht gehouden voordat het wordt uitgefaseerd.

48 10. Conclusie De doelstelling waarmee dit bacheloreindproject is aangevangen is: Het ontwikkelen van een app voor de Apple iphone welke draait om een turn-based multiplayer spelconcept gebaseerd op getallen met de potentie succesvol te worden. Deze doelstelling is getracht te bereiken door eerst goed te kijken naar bestaande succesvolle concepten. Na deze concepten te hebben bestudeerd, is er gekeken naar elementen die nog uitgevoerd zijn in de vorm van een app. Al snel werd er geconcludeerd dat er nog geen concept bestond dat als basis van het spel hoofdrekenen had. In de app zijn vervolgens vier speltypen gerealiseerd. Deze speltypen zijn alle gericht op een ander soort denkwijze binnen het hoofdrekenen. Hiermee worden spelers continu op een andere wijze uitgedaagd door het spel. Om voor een extra uitdaging te zorgen zijn er ook verschillende niveaus in het spel beschikbaar. Hierdoor wordt iedere speler uitgedaagd op een passend niveau. Tenslotte kan een bestaande speler een spel spelen tegen een vriend die het spel ook speelt. Dit maakt het extra uitdagend vanwege het verhoogde competitie-element. Op basis van de gebruikerstest kan er geconcludeerd worden dat de speelbaarheid hoog is. Tevens blijkt het dat de gebruikers het spel blijven spelen (hoge replayvalue). Naast de gameplay is tevens belangrijk dat een succesvolle app te allen tijde beschikbaar en bruikbaar is. Om dit onderdeel van de doelstelling te bereiken is er rekening gehouden met verschillende aspecten. Zo moest de app te allen tijde kunnen communiceren met de API. Ook dient de API correct data te verwerken. Om aan deze subdoelstellingen te voldoen is de API schaalbaar opgezet en draait deze op een schaalbaar platform. Om te kunnen garanderen dat de API correct data verwerkt, zijn er unit tests geschreven. Deze testen de verschillende functionaliteiten van de API. Overkoepelend kan er geconcludeerd worden dat er aan de doelstelling is voldaan. Uit de gebruikerstest is namelijk gebleken dat men de app leuk vond waaruit blijkt dat de app een zekere potentie heeft om succesvol te worden. Of de app daadwerkelijk succesvol wordt kan pas bepaald worden, nadat de app beschikbaar is gesteld in de App Store. 40

49 11. Evaluatie Dit bacheloreindproject gaf ons een mogelijkheid om een project uit te voeren in een richting die we al langer wilden doen: app-ontwikkeling. Innovattic bood hiertoe de mogelijkheid. Zij gaven ons de vrijheid een idee uit te werken, mits de resultaten hiervan ook voor henzelf nuttig zou kunnen zijn. De samenwerking met Innovattic is prettig verlopen. Het afgelopen half jaar hebben wij in hun kantoor kunnen werken, drie dagen per week. Eens per week werd een korte meeting belegd tussen ir. Metz en ons, waarin de vooruitgang van afgelopen week werd besproken en de prioriteiten voor komende week werden gesteld. Door het werk bij Innovattic op kantoor uit te voeren was het niet nodig om de koers van het project plots te wijzigen of iets vergelijkbaars, omdat er heel vaak de mogelijkheid tot overleg en feedback bestond. Ook de interne samenwerking verliep prima. Allereerst hebben we aan het begin van het project afgesproken om samen, waar mogelijk, op dezelfde dagen te werken aan het project. Hierdoor waren we te allen tijde goed op de hoogte van de status van iedere feature. Ook werkten we zelfs samen aan hetzelfde bureau waardoor overleg razendsnel kon verlopen. Ook de grootte van de groep (slechts twee personen) droeg in dit geval bij aan de goede onderlinge communicatie. Binnen de groep is er een lichte onderverdeling tot stand gekomen; Ruud is primair bezig geweest met de app en Rogier met de API. Het is echter niet zo dat één persoon continu bezig is geweest met een onderdeel, beiden hebben geprogrammeerd aan beide onderdelen. Voorts was een groot gedeelte van de materie (deels) nieuw voor ons. Hierdoor was het belangrijk om van de taal Objective-C de syntax en werkwijze te leren voordat er werd begonnen aan het daadwerkelijke programmeren. Ook hebben we ons verdiept in de verschillende aspecten die een app tot een succes kunnen maken; hierbij kan men denken aan de herspeelbaarheid van het spel, de snelheid en specifieke manier waarop gebruikers apps gebruiken. Bij de start van het project is het initiële schema opgesteld. Echter bleek al snel dat dit schema niet geheel realistisch zou zijn. Hier is dan uiteindelijk ook flink vanaf geweken. Deze afweging ontstond voornamelijk doordat de implementatiefase meer tijd kostte dan verwacht en het ontwerp van bepaalde features ertoe leidde dat eerder gedaan werk deels opnieuw gedaan diende te worden. 41

50 Evaluatie 42 Als we dit project opnieuw zouden mogen uitvoeren zouden er niet veel onderdelen zijn die we anders zouden hebben uitgevoerd. De enige fundamentele verandering zou zijn geweest om in plaats van de API te programmeren in PHP met CodeIgniter gekozen zou zijn voor een webplatform zoals Ruby On Rails. Al met al zijn we dan ook zeer tevreden met het verloop van het project. Het resultaat is in onze ogen zeker geslaagd en het proces is uiterst leerzaam geweest. We kijken dan ook met een tevreden blik terug naar dit project en willen alle betrokkenen ook nogmaals bedanken voor hun hulp in de totstandkoming en uitvoering van dit project.

51 A. Interactieontwerpen Figuur A.1: Login flow Figuur A.2: Instellingen flow 43

52 Interactieontwerpen 44 Figuur A.3: Nieuw spel starten Figuur A.4: Flow van een spel

53 B. Gebruikerstest B.1 Antwoorden vragenlijst Figuur B.1: Vragenlijst gebruikerstest antwoorden B.2 Opmerkingen Opmerkingen van Rogier: Er moet duidelijker worden getoond dat je moet wachten op de volgende ronde Reclame laden (full screen) duurt te lang De score die wordt opgeteld bij je exp klopt niet met de score die wordt getoond Vanuit Facebook vrienden direct een game starten Geluidjes zijn momenteel erg irritant Na pushnotificatie de resultsviewcontroller direct updaten Pushnotificaties niet tonen in app CorrectWrong is te simpel op level 4 Solve is te simpel op level 4 45

54 Gebruikerstest 46 Operators te simpel level 2 Twentyfour wordt niet direct gewaardeerd door iedereen Low-res reclames admob storend Opmerkingen van Mark: Na afsluiten terug in homescreen kan het spel niet doorgaan Geen melding bij match voor random spel Notificaties tijdens spel is vervelend Revanche knop werkt niet (Geblokkeerd) 1 minute to selfdestruct geluid is verwarrend Evil: Correct/wrong is makkelijk, maar groot verschil tussen de vragen Kan geen spelverzoeken weigeren Spel afbreken kan niet (opgeven) AI/bot om te oefenen Score scherm: frame om user image heen Tekst in navbar en buttons staat te hoog Operators: slepen operators zou leuk zijn Spellen verwijderen uit lijst Resolutie van ads is slecht Opmerkingen van Lars: Design is tof Rekenmachine knoppen erg klein Leuke meting op het laatste scherm Reset knop tijdens 24 handig Reclame fullscreen preloaden en tonen als de gebruiker klikt Opmerkingen van Stefan: Als ik start new game klik verwacht ik dat ik kan beginnen Het is onlogisch dan ik niks kan doen als iemand anders mij nog niet accepteert Resultaten, na drie seconden doorgaan Als er geen resultaten zijn deze ook niet laten zien Volgende knop bij resultaten midden in beeld Opmerkingen van Brian:

55 Gebruikerstest 47 Mooi design Begin gewenning lastig Misschien verplichte tutorial eerste keer tonen? Game komt solide over Friend en game invites zijn verwarrend. Meldingen tijdens game zijn vervelend Moeilijkheidsgraad is soms wat uit balans Leuke game met veel potentie Android versie? Opmerkingen van Wouter: Training mode mist Right or Wrong op lvl 4 is makkelijk 24 optioneel maken? Slepen van operators in öperatorsïpv klikken Opmerkingen van Luuk: Duidelijkere visualisering wanneer je gewonnen hebt van iemand Als je op accepteer klikt begint er niet direct een spel maar moet je eerst herladen Geen vooruitgang in hoofdmenu Meerdere uitdagingen van een persoon zijn onduidelijk Gat tussen moeilijkheidsgraad medium en hard Reclames blijven irritant B.3 Vragenlijst

56 Gebruikerstest 48 Figuur B.2: Vragenlijst gebruikerstest

MMIO Verslag. Groepsopdracht week 1. Hoe zorgen we dat kinderen van jongs af aan gezonder leren eten?

MMIO Verslag. Groepsopdracht week 1. Hoe zorgen we dat kinderen van jongs af aan gezonder leren eten? MMIO Verslag Groepsopdracht week 1 Hoe zorgen we dat kinderen van jongs af aan gezonder leren eten? Door David Arisz 11044772 Rob Dekker 11020067 Devin Hillenius 11018070 Joep Straatman 11035307 Concept

Nadere informatie

Gebruikershandleiding voor toegang tot Gasport

Gebruikershandleiding voor toegang tot Gasport Gebruikershandleiding voor toegang tot Gasport 1. Inleiding In deze handleiding staat beschreven hoe u kunt inloggen op de GTS webapplicatie Gasport via Multi-Factor Authentication (MFA). Voordat u kunt

Nadere informatie

HANDLEIDING EXTERNE TOEGANG CURAMARE

HANDLEIDING EXTERNE TOEGANG CURAMARE HANDLEIDING EXTERNE TOEGANG CURAMARE Via onze SonicWALL Secure Remote Access Appliance is het mogelijk om vanaf thuis in te loggen op de RDS omgeving van CuraMare. Deze handleiding beschrijft de inlogmethode

Nadere informatie

React en React Native voor websites en apps

React en React Native voor websites en apps React en React Native voor websites en apps H A N S-PE T E R H ARMSEN HEEFT DI T GE SCH R E V EN IN APRI L 2017 Deze whitepaper is bedoeld voor product owners en beslissers. Hij gaat over React, een JavaScript

Nadere informatie

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB Connect Social Business Plan van Aanpak voor mijn stage bij ConnectSB Joey Kaan September 28, 2014 Inhoudsopgave 1 Achtergronden 1 2 Probleemstelling & Doelstelling 2 2.1 Leren Professioneel Functioneren..................

Nadere informatie

Grafisch ontwerp. Referenties. https://developers.google.com/webmasters/mobile-sites/ http://www.bluetrainmobile.com/mobile-showcase

Grafisch ontwerp. Referenties. https://developers.google.com/webmasters/mobile-sites/ http://www.bluetrainmobile.com/mobile-showcase Mobiel Datanose Op dit moment is mobiel datanose niet goed gedaan; je krijgt gewoon de site te zien zoals je het te zien krijgt op pc's of laptops. Maar vaak heb je het probleem dat je op je mobiel moet

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

01/05. Websites Nederland over. Mobile marketing. Whitepaper #03/2013. Mabelie Samuels internet marketeer

01/05. Websites Nederland over. Mobile marketing. Whitepaper #03/2013. Mabelie Samuels internet marketeer 01/05 Websites Nederland over Mobile marketing Mabelie Samuels internet marketeer 02/05 Mobile marketing Kunt u zich uw eerste mobiele telefoon nog herinneren? Die van mij was een Motorola, versie onbekend,

Nadere informatie

HANDLEIDING DMS Plugin Installatie, configuratie & werking

HANDLEIDING DMS Plugin Installatie, configuratie & werking HANDLEIDING DMS Plugin Installatie, configuratie & werking Dit document is de handleiding voor de installatie, configuratie en werking van de DMS Plugin. Versie 1-12/09/2005 Inhoudstafel 1 Installatie...

Nadere informatie

MC Slotervaart. Handleiding Thuiswerken

MC Slotervaart. Handleiding Thuiswerken MC Slotervaart Handleiding Thuiswerken Via het internet kunt u verbinding maken met het MC Slotervaart netwerk. Afhankelijk van de aan u toegekende rechten kunt u toegang krijgen tot uw e-mail, bestanden,

Nadere informatie

Kenmerken Nomadesk Software

Kenmerken Nomadesk Software Kenmerken Nomadesk Software DATABEVEILIGING Versleutelde lokale schijf Nomadesk creëert een veilige virtuele omgeving, een Vault, op uw lokale harde schijf. Alle mappen en bestanden opgeslagen op de Vault

Nadere informatie

Starthandleiding voor administrator

Starthandleiding voor administrator Deze starthandleiding is bedoeld voor administrators van sportclubs die Team-in-Touch willen gaan gebruiken. Met deze handleiding kunt u een eerste begin maken met het beheren van uw teams, de clubinformatie

Nadere informatie

INSTALLATIE EXCHANGE CONNECTOR

INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR 0 0 HANDLEIDING INSTALLATIE EXCHANGE CONNECTOR INSTALLATIE EXCHANGE CONNECTOR HANDLEIDING datum: 10-08-2018 1 Inleiding... 1 2

Nadere informatie

Handleiding. Opslag Online. voor Android. Versie februari 2014

Handleiding. Opslag Online. voor Android. Versie februari 2014 Handleiding Opslag Online voor Android Versie februari 2014 Inhoudsopgave Hoofdstuk 1. Inleiding 3 Hoofdstuk 2. Installatie 4 2.1 Opslag Online downloaden via QR-code 4 2.2 Opslag Online downloaden via

Nadere informatie

Technische data. Versie dec

Technische data. Versie dec Technische data Versie dec.2016 www.mobilea.nl Mobiléa Infrastructuur: Pagina 1 Pagina 2 Specificaties: Het platform van Mobiléa valt op te splitsen in een aantal technische componenten, te weten: De webapplicatie

Nadere informatie

JOEP. Handleiding - hulpverlener

JOEP. Handleiding - hulpverlener JOEP. Handleiding - hulpverlener Versie 1.0 Oktober 2016 Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, of op welke andere wijze dan ook, zonder

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van Alfresco aan SURFconext. Versie: 1.0. Datum: 8 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van Alfresco aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 8 december 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

Nadere informatie

Bottleball Onderzoeksverslag MovingMonsters. Uitgevoerd door Arno Classens a.classens@student.fontys.nl

Bottleball Onderzoeksverslag MovingMonsters. Uitgevoerd door Arno Classens a.classens@student.fontys.nl Bottleball Onderzoeksverslag MovingMonsters Uitgevoerd door Arno Classens a.classens@student.fontys.nl 1 1. Inhoudsopgave Wat? Bladzijde 1. Introductie 3 2. Methodologie 4 3. Resultaten 3.1 Oriëntatie

Nadere informatie

Bridgemate App. Informatie voor spelers. Versie 2.2. Bridge Systems BV

Bridgemate App. Informatie voor spelers. Versie 2.2. Bridge Systems BV Bridgemate App Informatie voor spelers Versie 2.2 Bridge Systems BV Bridgemate app Informatie voor spelers Pagina 2 Inhoud Inleiding... 3 De Bridgemate app downloaden... 3 App opstarten en account aanmaken...

Nadere informatie

Wij beschermen mensen

Wij beschermen mensen Wij beschermen mensen SafetyTracer handleiding Responder app 1. App downloaden 2 2. Inloggen en uitloggen 3 3. Inkomende alarmmeldingen 4 4. Alarmhistorie 6 5. Positie opvragen 7 6. Mijn profiel 8 7. Contactpersonen

Nadere informatie

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB

Connect Social Business. Plan van Aanpak voor mijn stage bij ConnectSB Connect Social Business Plan van Aanpak voor mijn stage bij ConnectSB Joey Kaan September 21, 2014 Inhoudsopgave 1 Achtergronden 4 2 Probleemstelling & Doelstelling 5 2.1 Leren Professioneel Functioneren..................

Nadere informatie

LegManager Mobile Handleiding

LegManager Mobile Handleiding LegManager Mobile Handleiding Handleiding LegManager Mobile 1 1. Inhoud 1. INHOUD... 2 2. PROGRAMMAVEREISTEN... 3 a. Vragen, opmerkingen en suggesties... 3 b. Welke tablet/ipad of smartphone/iphone kan

Nadere informatie

Bridgemate App. Informatie voor spelers. Bridge Systems BV

Bridgemate App. Informatie voor spelers. Bridge Systems BV Bridgemate App Informatie voor spelers Bridge Systems BV Bridgemate app Informatie voor spelers Pagina 2 Inhoud Inleiding... 3 De Bridgemate app downloaden... 3 App opstarten en account aanmaken... 4 Inloggen

Nadere informatie

Speler Handleiding. Introductie. Knowingo + is de app die leren leuk maakt!

Speler Handleiding. Introductie. Knowingo + is de app die leren leuk maakt! Knowingo + Speler Handleiding Introductie Knowingo + is de app die leren leuk maakt! Met Knowingo + heb je precies de juiste informatie om geweldig te worden in jouw baan. Allemaal terwijl je een leuk

Nadere informatie

Secure File Sync - Quick Start Guide

Secure File Sync - Quick Start Guide Secure File Sync - Quick Start Guide Secure File Sync Quick Start Guide 1. Installatie van de applicatie op een computer; 2. Gebruik van de applicatie; 3. Bestanden delen vanuit de applicatie; 4. Gebruik

Nadere informatie

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties 2 Supportdesk Pro Introductie Inhoudsopgave I Supportdesk Pro 3 1 Inleiding... 3 2 Werkwijze... 3 II Zaken 4 1 Introductie... 4 2 Zaken beheren... 4 3 Handmatig... invoeren zaken basis 4 4 Verwerken...

Nadere informatie

Gebruikershandleiding MobiDM

Gebruikershandleiding MobiDM Gebruikershandleiding MobiDM Gebruikershandleiding voor versie 3.6.2 Versie 1.0 INHOUDSOPGAVE 1. DE MOBIDM PORTAL.... 2 1.1. INLOGGEN... 2 1.2. WACHTWOORD VERGETEN?... 2 2. TOESTELBEHEER.... 3 2.1. OS-AFHANKELIJKE

Nadere informatie

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht Deze vakinhoudelijke uitwerking is ontwikkeld door het Redactieteam van de Schooleamenbank vmbo voor dit

Nadere informatie

RI&E Schoonmaak - APP Gebruikershandleiding KMO Solutions

RI&E Schoonmaak - APP Gebruikershandleiding KMO Solutions RI&E Schoonmaak - APP Gebruikershandleiding 2016 KMO Solutions Inhoudsopgave Inhoudsopgave Hoofdstuk 1 Over deze handleiding 4 Hoofdstuk 2 Regis't APP 5 2.1 Voorwaarden voor gebruik... 5 2.1.1... Mogelijkheden

Nadere informatie

Installatie Remote Backup

Installatie Remote Backup Juni 2015 Versie 1.2 Auteur : E.C.A. Mouws Pagina 1 Inhoudsopgave BusinessConnect Remote Backup... 3 Kenmerken... 3 Beperkingen... 3 Gebruik op meerdere systemen... 3 Systeemeisen... 4 Support... 4 Installatie...

Nadere informatie

Taxis Pitane voor iphone / ipad

Taxis Pitane voor iphone / ipad Taxis Pitane voor iphone / ipad gebruikershandleiding Censys BV - Eindhoven Voorwoord Censys BV is erkend Apple iphone software ontwikkelaar en heeft eveneens zijn Taxis Pitane voor iphone 3G/3GS/4 versie

Nadere informatie

SportCTM 2.0 Sporter

SportCTM 2.0 Sporter SportCTM 2.0 Sporter APP Inloggen Dotcomsport heeft ter ondersteuning van de dagelijkse praktijk ook een APP ontwikkeld, om data invoer te vereenvoudigen. Deze APP ondersteunt de onderdelen; Agenda (invoer

Nadere informatie

AFO 142 Titel Aanwinsten Geschiedenis

AFO 142 Titel Aanwinsten Geschiedenis AFO 142 Titel Aanwinsten Geschiedenis 142.1 Inleiding Titel Aanwinsten Geschiedenis wordt gebruikt om toevoegingen en verwijderingen van bepaalde locaties door te geven aan een centrale catalogus instantie.

Nadere informatie

Handleiding beginnen met Calculus VIP. Datum December 2016 Calculus Software

Handleiding beginnen met Calculus VIP. Datum December 2016 Calculus Software Handleiding beginnen met Calculus VIP Datum December 2016 Auteur Calculus Software Inhoudsopgave Waarom Calculus VIP?... 3 Gemakkelijk... 3 Veilig... 3 Technische voorwaarden gebruik Calculus VIP... 3

Nadere informatie

Gebruikershandleiding UNIT4 DataCollector

Gebruikershandleiding UNIT4 DataCollector Gebruikershandleiding UNIT4 DataCollector 2.7.0.0 Inhoudsopgave 1 Inleiding Unit4 DataCollector... 2 2 Systeemeisen... 3 3 Installatie DataCollector... 4 3.1 Downloaden DataCollector... 4 3.2 Uitpakken

Nadere informatie

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten.

5. Documenten Wat kan ik met Documenten? 1. Over LEVIY. 5.1 Documenten terugvinden Uitleg over vinden van documenten. Versie 1.0 23.03.2015 02 1. Over LEVIY Wat doet LEVIY? 08 5. Documenten Wat kan ik met Documenten? 2. Algemene definities Behandelen van terugkerende definities. 09 5.1 Documenten terugvinden Uitleg over

Nadere informatie

Mopas handleiding Responder App. Mopas-app voor ios en Android.

Mopas handleiding Responder App. Mopas-app voor ios en Android. Mopas handleiding Responder App Mopas-app voor ios en Android www.mopas.eu Voorwoord Hartelijk dank voor het gebruik van de Mopas app voor ios en Android. Wij hebben met de grootste zorg deze applicatie

Nadere informatie

IBAN API. Simpel & krachtig. Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK

IBAN API. Simpel & krachtig. Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK IBAN API Simpel & krachtig Documentatie : IBAN REST API Versie : 1.0 DE BETAALFABRIEK Introductie De Betaalfabriek IBAN API is een REST API om IBAN-conversie en validatie te integreren in uw administratiesysteem,

Nadere informatie

Securitas Alarm App Klantmanual

Securitas Alarm App Klantmanual Securitas Alarm App Klantmanual Auteur : Securitas Versie : 1.0 Datum : 03-07-2015 Inhoud Inleiding...2 1. Registratie...3 2. Functionaliteit...6 2.1 Status...7 2.2 Alarm...8 2.3 Schakeltijd... 10 2.4

Nadere informatie

Location Based Media

Location Based Media Location Based Media Introductie met 7scenes Minor Create Your Future Nieuwe Media 2028 Studiejaar 2011-2012 Inhoud 1 Inleiding en uitleg opdracht... 3 1.1 Wat gaan we doen?... 3 1.2 Over 7scenes... 3

Nadere informatie

Connect Social Business

Connect Social Business Connect Social Business Joey Kaan September 2014 Inhoudsopgave 1 Achtergronden 4 2 Probleemstelling & Doelstelling 5 2.1 Leren Professioneel Functioneren.................. 5 2.2 Facebook API leren door

Nadere informatie

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce

Projectplan. Elektronica-ICT Artesis. Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce Elektronica-ICT Artesis Projectplan Auteur: Coopman Tom Interne Promotor: Peeters Tom Externe Promotor: Delepierre Bruno, Adforce Projectplan ter voorbereiding van de bachelorproef en stage Academiejaar

Nadere informatie

DWF Handleiding voor Teams

DWF Handleiding voor Teams Downloaden De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl. Registreren Nadat de applicatie is gedownload en geïnstalleerd kan de gebruiker

Nadere informatie

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon

Intramed OnLine instellen en gebruiken. Voor Android tablet of telefoon Intramed OnLine instellen en gebruiken Voor Android tablet of telefoon Inhoudsopgave Hoofdstuk 1 Algemeen...1 1.1 Toegang tot inlogportalen...1 Hoofdstuk 2 Basic account...3 2.1 Microsoft Remote Desktop

Nadere informatie

Handleiding. Opslag Online voor Windows Phone 8. Versie augustus 2014

Handleiding. Opslag Online voor Windows Phone 8. Versie augustus 2014 Handleiding Opslag Online voor Windows Phone 8 Versie augustus 2014 Inhoudsopgave Hoofdstuk 1. Inleiding 3 Hoofdstuk 2. Installatie 4 2.1 Downloaden van KPN Opslag Online QR Code 4 2.2 Downloaden van KPN

Nadere informatie

cbox UW BESTANDEN GAAN MOBIEL! VOOR SMARTPHONES EN TABLETS MET HET ios BESTURINGSSYSTEEM GEBRUIKERSHANDLEIDING

cbox UW BESTANDEN GAAN MOBIEL! VOOR SMARTPHONES EN TABLETS MET HET ios BESTURINGSSYSTEEM GEBRUIKERSHANDLEIDING cbox UW BESTANDEN GAAN MOBIEL! VOOR SMARTPHONES EN TABLETS MET HET ios BESTURINGSSYSTEEM GEBRUIKERSHANDLEIDING Inleiding cbox is een applicatie die u eenvoudig op uw computer kunt installeren. Na installatie

Nadere informatie

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8 API API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8 Identificatie Alle programma's communiceren met elkaar door gebruik te maken van JSON objecten. Het normale

Nadere informatie

Software Test Document

Software Test Document Software Test Document PEN: Paper Exchange Network Software Engineering groep 1 (se1-1415) Academiejaar 2014-2015 Jens Nevens - Sander Lenaerts - Nassim Versbraegen Jo De Neve - Jasper Bevernage Versie

Nadere informatie

cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING

cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING Inleiding cbox is een applicatie die u eenvoudig op uw computer kunt installeren. Na de installatie wordt in de

Nadere informatie

SURFconext Cookbook. Het koppelen van Wordpress aan SURFconext. Versie: 1.0. Datum: 7 november 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van Wordpress aan SURFconext. Versie: 1.0. Datum: 7 november 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van Wordpress aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 7 november 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

Nadere informatie

Handleiding inloggen op

Handleiding inloggen op ` Handleiding inloggen op Handleiding Honderdland 241 2676 LV Maasdijk T: 0174-615415 www.veneco.nl Inhoudsopgave INHOUDSOPGAVE... 2 INLEIDING... 3 1 INLOGGEN OP MYEASYOFFICE... 3 1.1 MICROSOFT WINDOWS

Nadere informatie

Fitness Tracker Nederlandse Handleiding

Fitness Tracker Nederlandse Handleiding Fitness Tracker Nederlandse Handleiding www.fitness-tracker.nl Inhoudsopgave 1. Voordat u begint... 2 1.1 Waarschuwing... 2 1.2 Smartphone ondersteuning... 2 1.3 Opladen... 2 2. Koppelen met uw smartphone...

Nadere informatie

CLOUD COMPUTING Falco, Goan & Wouter CURSUSAVOND. Teach-IT

CLOUD COMPUTING Falco, Goan & Wouter CURSUSAVOND. Teach-IT CLOUD COMPUTING Falco, Goan & Wouter CURSUSAVOND Teach-IT 1. INHOUDSTAFEL 1. INHOUDSTAFEL 1 2. Inleiding 3 2.1. Wat is een Cloud? 3 2.2. Voordelen? 3 2.3. Nadelen? 4 2.4. Wie gebruikt voornamelijk clouds?

Nadere informatie

Berichtenbox. Auteur : Rakesh Poeran Datum : 19 mei 2015 Versie : 2014.5 Documentnaam : Berichtenbox

Berichtenbox. Auteur : Rakesh Poeran Datum : 19 mei 2015 Versie : 2014.5 Documentnaam : Berichtenbox Berichtenbox Auteur : Rakesh Poeran Datum : 19 mei 2015 Versie : 2014.5 Documentnaam : Berichtenbox Inhoud 1. Inleiding 3 2. Inloggen op de berichtenbox 4 3. Lay-out van de berichtenbox 6 3.1 Linker menu

Nadere informatie

Concept Deze week hebben wij ervoor gekozen om de tiled display, die rechts van de ESC balie staat, te verbeteren door een interactieve applicatie eraan te verbinden. Op dit moment is het display, alhoewel

Nadere informatie

15 July 2014. Betaalopdrachten web applicatie gebruikers handleiding

15 July 2014. Betaalopdrachten web applicatie gebruikers handleiding Betaalopdrachten web applicatie gebruikers handleiding 1 Overzicht Steeds vaker komen we de term web applicatie tegen bij software ontwikkeling. Een web applicatie is een programma dat online op een webserver

Nadere informatie

Opdrachtformulering (pagina 3 van 7)

Opdrachtformulering (pagina 3 van 7) Afstudeerovereenkomst van Tim Wils Bijlage 1 Opdrachtformulering (pagina 3 van 7) Dit project betreft een eigen framework (soort API) waarmee relatief gemakkelijk en in korte tijd eindproducten opgezet

Nadere informatie

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Behoudens uitzondering door de wet gesteld, mag zonder schriftelijke toestemming van de rechthebbende op het auteursrecht van

Nadere informatie

Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1)

Informatie voor de leerkracht Introductie nieuw concept (pagina 1) Programmeren met Bomberbot (pagina 1) Leerlingen herkennen dat de moderne technologie om ons heen geprogrammeerd is door mensen. Leerlingen begrijpen dat een computer-programma bestaat uit een set instructies die een computer uitvoert en dat

Nadere informatie

Zarafa Email en Agenda

Zarafa Email en Agenda Pagina 1 van 6 Zarafa Email en Agenda Altijd en overal kunnen beschikken over je email, een up-to-date agenda en al je contactpersonen? Direct een mailtje terug kunnen sturen? Een nieuwe afspraak kunnen

Nadere informatie

SURFconext Cookbook. Het koppelen van LimeSurvey aan SURFconext. Versie: 1.0. Datum: 4 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet.

SURFconext Cookbook. Het koppelen van LimeSurvey aan SURFconext. Versie: 1.0. Datum: 4 december 2013. 030-2 305 305 admin@surfnet.nl www.surfnet. SURFconext Cookbook Het koppelen van LimeSurvey aan SURFconext Auteur(s): Frank Niesten Versie: 1.0 Datum: 4 december 2013 Radboudkwartier 273 3511 CK Utrecht Postbus 19035 3501 DA Utrecht 030-2 305 305

Nadere informatie

International Online Record Book

International Online Record Book International Online Record Book Handleiding voor deelnemers The Duke of Edinburgh s International Award Foundation In NL: The International Award for Young People 20/06/2017 Version: 1.2 Vertaling: 30/07/2017

Nadere informatie

HANDLEIDING Groepsbeheerder \\ B2B community builders

HANDLEIDING Groepsbeheerder \\ B2B community builders HANDLEIDING Groepsbeheerder \\ B2B community builders www.chainels.com info@chainels.com Molengraaffsingel 12 2629JD Delft 015-3642667 Het platform Chainels De Chainels App 1. Inloggen 1.1 Waar kan ik

Nadere informatie

Om zelf een live stream op te zetten heb je een aantal dingen nodig:

Om zelf een live stream op te zetten heb je een aantal dingen nodig: How to: Live stream In dit document vind je een uitleg over live streaming video via het internet, tevens bevat het een stap voor stap beschrijving om zelf aan de slag te gaan. Het is bedoeld voor zaaleigenaren

Nadere informatie

De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl.

De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl. Downloaden De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl. Registreren Nadat de applicatie is gedownload en geïnstalleerd kan de gebruiker

Nadere informatie

Remote Back-up Personal

Remote Back-up Personal handleiding Remote Back-up Personal Versie 4 1 INLEIDING... 3 1.1 SYSTEEMEISEN... 3 1.2 BELANGRIJKSTE FUNCTIES... 3 2 INSTALLATIE BACK-UP MANAGER... 4 2.1 VOLLEDIGE DATA BESCHIKBAARHEID IN 3 STAPPEN...

Nadere informatie

HET BESTURINGSSYSTEEM

HET BESTURINGSSYSTEEM HET BESTURINGSSYSTEEM Een besturingssysteem (ook wel: bedrijfssysteem, in het Engels operating system of afgekort OS) is een programma (meestal een geheel van samenwerkende programma's) dat na het opstarten

Nadere informatie

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3. Versie 1.0 05.03.2015 02 1. Over LEVIY Wat doet LEVIY? 08 5. Openen van de activiteit Hoe wordt de activiteit geopend? 2. Algemene definities Behandelen van terugkerende definities. 09 6. Inloggen op het

Nadere informatie

Intern (On-Premise) Co-Location Infrastructure-as-a-Service (IaaS) Platform-as-a-Service (PaaS)

Intern (On-Premise) Co-Location Infrastructure-as-a-Service (IaaS) Platform-as-a-Service (PaaS) Tot een aantal jaren geleden was het redelijk vanzelfsprekend om in een gebouw met een groot aantal werkplekken een eigen serverruimte te maken. Dit heeft nog steeds een aantal voordelen. Vandaag de dag

Nadere informatie

CURRICULUM PLANNING SCENARIO S TON PEETERS, DICK KAMPMAN

CURRICULUM PLANNING SCENARIO S TON PEETERS, DICK KAMPMAN CURRICULUM PLANNING SCENARIO S TON PEETERS, DICK KAMPMAN INTRODUCTIE Er komen steeds meer studenten op de opleiding Biologie af. Dit heeft als gevolg dat de zaalreserveringen en planning van docenten en

Nadere informatie

Troubleshooting. Stap-voor-stap instructies maart 2019

Troubleshooting. Stap-voor-stap instructies maart 2019 Troubleshooting Stap-voor-stap instructies maart 2019 Copyright 2018. NCS Pearson, Inc. of haar filiaal/filialen. Alle rechten voorbehouden. Q-interactive is een handelsmerk in de VS en/of andere landen

Nadere informatie

TECHNICAL DESIGN DOCUMENT

TECHNICAL DESIGN DOCUMENT TECHNICAL DESIGN DOCUMENT BACHELORPROJECT IN3405 John Ciocoiu 1358227 Elwin Dokter 1275909 TECHNISCHE UNIVERSITEIT DELFT FACULTEIT EWI WOENSDAG 28 APRIL 2010 VERSIE 1 COMMISSIE: Ing. D.J. van Roest (opdrachtgever)

Nadere informatie

HANDLEIDING Installatie TESTS 2012

HANDLEIDING Installatie TESTS 2012 HANDLEIDING Installatie TESTS 2012 INHOUDSOPGAVE: Algemeen:... 2 Installatie instructies voor stand-alone computer.. 2 Uitsluitend voor netwerk-installatie.. 6 Client installatie deel 1... 6 Deel 2 netwerkinstallatie:

Nadere informatie

Cloud2 Online Backup - CrashplanPRO

Cloud2 Online Backup - CrashplanPRO Cloud2 Online Backup - CrashplanPRO Handleiding- CrashplanPRO - Online Backup Download de clients hier: Windows 32- bit: http://content.cloud2.nl/downloads/back01- cra.backupnoc.nl/crashplan_x86.exe Windows

Nadere informatie

Handleiding Office 365

Handleiding Office 365 Handleiding Office 365 Document: Handleiding Office 365 Datum: 2-6-2016 Versie: 0.2 Auteur: Stefan de Vries en Ingrid de Bont Inhoudsopgave 1 Inleiding... 3 2 Aanmelden bij Office 365... 4 3 Navigeren

Nadere informatie

Voorbeelden en mogelijkheden rondom het delen van bestanden/foto s

Voorbeelden en mogelijkheden rondom het delen van bestanden/foto s Voorbeelden en mogelijkheden rondom het delen van bestanden/foto s Versie 21 april 2017 Er zijn tegenwoordig steeds meer mogelijkheden als het gaat om het delen van bestanden en foto s met anderen, waarbij

Nadere informatie

Productbeschrijving Remote Backup

Productbeschrijving Remote Backup Juni 2015 Versie 1.3 Auteur : E.C.A. Mouws Pagina 1 Inhoudsopgave BusinessConnect Remote Backup... 3 Abonnementen... 3 Kenmerken... 3 Beperkingen... 4 Geografische dekking... 4 Minimaal dataverkeer...

Nadere informatie

Handleiding voor de mobiele apps

Handleiding voor de mobiele apps Handleiding voor de mobiele apps Onderstaande handleiding beschrijft hoe u de drie verschillende apps op uw mobiele telefoon kunt downloaden. Zorg ervoor dat u hetzelfde e-mailadres voor alle drie de apps

Nadere informatie

Multi-Factor Authenticatie activeren ( Onboarden ) voor de Online Badge Portal

Multi-Factor Authenticatie activeren ( Onboarden ) voor de Online Badge Portal Multi-Factor Authenticatie activeren ( Onboarden ) voor de Online Badge Portal Beste Online Badge Portal gebruiker, Om haar meest kritische applicaties nog beter te beveiligen, heeft Brussels Airport beslist

Nadere informatie

SportCTM 2.0 Startscherm trainer

SportCTM 2.0 Startscherm trainer SportCTM 2.0 Startscherm trainer Inloggen Webapplicatie Via inlog.dotcomsport.com kun je in inloggen op de webapplicatie van het SportCTM. Wij adviseren onderstaande browsers Windows: Internet Explorer,

Nadere informatie

Handleiding beginnen met de Calculus VIP app. Voor zorgverleners. Datum Juli 2017 Calculus Software

Handleiding beginnen met de Calculus VIP app. Voor zorgverleners. Datum Juli 2017 Calculus Software Handleiding beginnen met de Calculus VIP app Voor zorgverleners Datum Juli 2017 Auteur Calculus Software Inhoudsopgave Waarom de Calculus VIP app?... 3 Gemakkelijk... 3 Veilig... 3 Technische voorwaarden

Nadere informatie

De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl.

De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl. Downloaden De app kan gedownload worden in de Appstore en de Playstore door te zoeken op sportlinked of via www.sportlinked.nl. Registreren Nadat de applicatie is gedownload en geïnstalleerd kan de gebruiker

Nadere informatie

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen

Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht. Analyse. Inleiding. Doelstellingen Leerscenario Kata-App (werktitel) Raymond Stoops Hogeschool Utrecht Analyse Inleiding Bij het beoefenen van karate zijn er meerdere trainingsvormen. Een individuele trainingsvorm is de kata, waar een vast

Nadere informatie

WebDAV versus iwork.com op je ipad

WebDAV versus iwork.com op je ipad WebDAV versus iwork.com op je ipad Datum: 14 maart 2011 Versie: 1.0 Auteur: Pierre Gorissen (http://ictoblog.nl/ ) Een van de minder handige dingen aan de iwork verzameling voor de ipad (Pages, Keynote,

Nadere informatie

Marlin Family. Marlin

Marlin Family. Marlin PCA Mobile PCA Mobile Organisatie PCA Mobile BV maakt deel uit van de Mobile Solution Group en biedt met ruim 40 enthousiaste collega s een veelomvattend pakket van innovatieve en gebruiksvriendelijke

Nadere informatie

Talk2Fans App Handleiding

Talk2Fans App Handleiding 2016 Talk2Fans App Inhoud 1. Inleiding... 2 2. Downloaden Talk2Fans app... 2 2.1 Android... 2 2.2 IOS... 3 3. Nieuwe registratie... 5 4. Eerste keer aanmelden... 6 5. Hoofdfuncties binnen de app... 8 5.1

Nadere informatie

AUTOMATISERING. Act! WerkbonApp. De koppeling tussen het CRM systeem Act! en de Werkbon applicatie WerkbonApp.

AUTOMATISERING. Act! WerkbonApp. De koppeling tussen het CRM systeem Act! en de Werkbon applicatie WerkbonApp. Act! WerkbonApp De koppeling tussen het CRM systeem Act! en de Werkbon applicatie WerkbonApp. Act! Act! is een CRM softwarepakket waarmee u uw klanten en contacten kunt beheren. Het bevat alle functionaliteiten

Nadere informatie

cbox UW BESTANDEN GAAN MOBIEL! WEBINTERFACE GEBRUIKERSHANDLEIDING

cbox UW BESTANDEN GAAN MOBIEL! WEBINTERFACE GEBRUIKERSHANDLEIDING cbox UW BESTANDEN GAAN MOBIEL! WEBINTERFACE GEBRUIKERSHANDLEIDING BV Inleiding cbox is een applicatie die u eenvoudig op uw computer kunt installeren. Na installatie wordt in de bestandsstructuur van uw

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

Upgrade naar People Inc 3.5.0

Upgrade naar People Inc 3.5.0 I Inhoudsopgave Hoofdstuk 1 1 1.1 Installeren... van de upgrade 2 1.2 Uitvoeren... van de upgrade 5 1.3 Installatie... Applicatie Server 9 1.4 Installatie... Gebruikers programma's 15 1.5 Afronding...

Nadere informatie

uziconnect Installatiehandleiding

uziconnect Installatiehandleiding uziconnect Installatiehandleiding VANAD Enovation is een handelsnaam van ENOVATION B.V. Alle rechten voorbehouden. Niets uit deze uitgave mag worden openbaar gemaakt of verveelvoudigd, opgeslagen in een

Nadere informatie

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010)

Plan van Aanpak. Christophe Deloo, Roy Straver & Machiel Visser. Versie 4 (26-06-2010) Plan van Aanpak Christophe Deloo, Roy Straver & Machiel Visser Versie 4 (26-06-2010) Inhoudsopgave Voorwoord... 2 1 Inleiding... 3 1.1 Aanleiding... 3 1.2 Accordering en bijstelling... 3 1.3 Toelichting

Nadere informatie

Peridos. Registreren voor Zorgportaal. Datum: Landelijk beheer Peridos. Versie: 1.0

Peridos. Registreren voor Zorgportaal. Datum: Landelijk beheer Peridos. Versie: 1.0 Peridos Registreren voor Zorgportaal Plaats: Utrecht Datum: 22-02-2019 Auteur: Landelijk beheer Peridos Versie: 1.0 Status: Definitief Inhoudsopgave Inhoudsopgave 2 Wijzigingsbeheer 3 1. Inleiding 4 1.1

Nadere informatie

Berichtenbox. Auteur : Rakesh Poeran Datum : 16 juli 2015 Versie : 2014.6 Documentnaam : Berichtenbox

Berichtenbox. Auteur : Rakesh Poeran Datum : 16 juli 2015 Versie : 2014.6 Documentnaam : Berichtenbox Berichtenbox Auteur : Rakesh Poeran Datum : 16 juli 2015 Versie : 2014.6 Documentnaam : Berichtenbox Inhoud 1. Inleiding 3 2. Inloggen op de berichtenbox 4 3. Lay-out van de berichtenbox 6 3.1 Linker menu

Nadere informatie

LES 1: AAN DE SLAG MET WORDPRESS. Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting. Tijd: 5 minuten

LES 1: AAN DE SLAG MET WORDPRESS. Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting. Tijd: 5 minuten LES 1: AAN DE SLAG MET WORDPRESS Lesoverzicht: Aan de slag Wat is WordPress CMS Front-end Back-end Samenvatting Tijd: 5 minuten Doel: Aan het einde van deze les weet je wat WordPress is en kun je benoemen

Nadere informatie

Eindverslag. Technische Universiteit Delft. TI3800 Bachelorproject. Mobiel Notificatie Systeem

Eindverslag. Technische Universiteit Delft. TI3800 Bachelorproject. Mobiel Notificatie Systeem Technische Universiteit Delft TI3800 Bachelorproject Mobiel Notificatie Systeem Eindverslag Auteurs: Edwin van den Houdt ManWai Shing Begeleiders: Cor-Paul Bezemer (TU Delft) Eugène Pattikawa (Exact) Peter

Nadere informatie

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april 2009. Versie 2.1.0

Technisch ontwerp. Projectteam 6. Project Web Essentials 02 april 2009. Versie 2.1.0 Projectteam 6 Faculteit Natuur en Techniek Hogeschool Utrecht Projectleider: Hans Allis, hans.allis@student.hu.nl Technisch ontwerp Project "Web Essentials" 02 april 2009 Versie 2.1.0 Teamleden: Armin

Nadere informatie