Android Toepassing. Groep 1



Vergelijkbare documenten
Grafisch ontwerp. Referenties.

Werkomgeving. Android Studio. Android - werkomgeving 1/6

Android Toepassing Groep 3

Project Interactieve multimedia

Desktop, Laptop, Netbook, Ultrabook or Tablet? Which is best for what? Keuzes maken

Naam: Huseyin Ayaz St. Nummer: Groep: imm08209 Universiteit der dromen

Handleiding bij de workshop Animatie in Microsoft PowerPoint Hoe maak je een animatie in Microsoft PowerPoint 2010? Handleiding voor kinderen

Virgo + WPS Office. Tabletproject

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

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

EERSTE STAPPEN WINDOWS 8 Korte inleiding in Windows 8

Heb je nog geen account maak dit dan aan en koppel je gps aan het account. Zie daarvoor de volgende handleiding.

Uitleg van de Systeeminstellingen in Ubuntu.

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

PIM 2013 VU. One day in Amsterdam. Martijn van der Burg MBG215

Ontwerp Portfoliowebsite MMIO 2016

Screencast-O-Matic HANDLEIDING

PROJECT EXPO PROJECTDOCUMENT

And roid Toepassing GROEP 7

HET BESTURINGSSYSTEEM

Vragen gesteld in het evaluatieformulier + Antwoorden

Leer- en Doegids: Een nieuwe presentatie in Power Point 2007 DEEL III: VAN GEANIMEERDE PRESENTATIE tot

LET OP! Lees dit eerst even door!

LearnOSM. Onderzoek met behulp van veldformulieren. Overzicht van veldformulieren

Handleiding Wordpress

Hoe ga ik dit verwerken? (Begrip maken) Dit volume is goed, dit moet ik zo houden.

R-Type 2009 Developing in XNA

4.4 Voeg ruimtes toe Hoe ga jij te werk? 1. Over LEVIY. 4.5 Aanwezigen Zijn er aanwezigen bij de DKS-controle? 2. Algemene definities. 3.

Naam: Valérie den Besten Klas: G&I A Datum: Module: Project 100% presence Begeleider: Irene van Peer Groep 11 (team 14)

We beginnen met wat begrippen, zodat we weten waar we het over hebben.

Naam: Abdurrahman AKIN St.nr: Stud.: Informatica

Hoe moet je een prachtige presentatie maken?

Leerpaden maken. 1. Account en wachtwoord. 2. Maak een nieuw leerpad aan. 3. Inhoud aan een leerpad toe voegen. 4. Structuur aanbrengen op een pagina.

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Soft-Solutions. Stageverslag

HANDLEIDING Windows XP Deel 1

Een desktopcomputer kan uit de volgende onderdelen zijn opgebouwd:

1 van :43

ANIMATIE S MAKEN Les 1 Les 2 Les 3 Les 4

Culture Shock -PIM. GROEP 7 ESRA ATESCELIK STUDENT NR: JUNI 2009 Eak500@few.vu.nl. Esra Atescelik juni

Werken op afstand via internet

Omzeil het gebruik van mappen en bestanden over Wiki s en het werken in de 21 e eeuw

Bottleball Onderzoeksverslag MovingMonsters. Uitgevoerd door Arno Classens

Essay Interactieve Multimedia. Richard de Bock im Juni

ProjectHeatmap. Onderzoeksrapport v Dennis Wagenaar

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

Verschillen met PowerPoint 2007

FLIPPEN. Naam: Ruben van Dijk Datum van inlevering: 28/11/06 Klas: M1C Tutorgroep: 2

Werkatelier: eenvoudige animatie maken met pivot animator

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

1. Over LEVIY. 5. Meldingen Wat zijn meldingen? 5.1 Technische melding toevoegen Hoe voeg ik een melding toe?

Handleiding kasten Extern documentenbeheer

Projectorganisatie Marc Martojo Esther krijnen Rodger Buyvoets Danilo Meulens

Microsoft Office Een uitleg over een presentatie maken met PowerPoint

Ontwerp en Implementatie in Android

POI s Laden in je Zumo

Handleiding ZKM Online. Versie 2.1

ipad enquête - ouders - 18 reacties (van 29 ouders)!

Hoe kan je zelf een eigen filmpje maken en er muziek aan toevoegen?

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

Windows 8, Windows 8.1, deel II

ZorgInlogPortaal.nl. Geachte gebruiker, Handleiding Mijn Virtuele Schijf Versie 2.0

Handleiding OwnCloud voor SG de Overlaat

Importeren Je foto s Lightroom binnenkrijgen

Handleiding Gold- en Superstation

Procesverslag. Save Energy Leiden. Dennis Wagenaar v 1.0

Bouw snel en eenvoudig een eigen mobile Virtual Reality app

Inhoudsopgave Voorwoord 11 Nieuwsbrief 11 Introductie Visual Steps 12 Wat heeft u nodig? 13 De website bij het boek 13 Hoe werkt u met dit boek?

CrashPlan PROe installatie handleiding. Versie Mac-Up! - CrashPlan PROe Installatie Handleiding - 1

ZET DE BOXEN AAN! Kijk op de week. Inhoud. Doelgroep. Vakgebied. Materialen. Doelen STERKE SCHAKELS

28 juli 2014 Eindgebruikershandleiding Weblicity CMS

maak zelf een filmpje

In Photoshop kun je afbeeldingen bewerken en aanpassen door de diverse toevoegingen en effecten die je wilt toepassen op aparte lagen uit te voeren.

Muziek downloaden. PVGE Computerclub 5 JANUARI 2012

Een stop-motion film maken

HANDLEIDING EXTERNE TOEGANG CURAMARE

Eenvoudig een backup van je bestanden maken. G.v.Eijndhoven ( )

Cursus DropBox. Installeren. Waar haal ik het? Surf naar en klik op de grote downloadknop.

Cursus RegCleaner <freeware>

Interactief lesgeven / presenteren met Shakespeak

Opname hulp. Stap voor stap uitleg over het opnemen van een Babbel - voor kinderen. Videoverhalen over kinderboeken, voor en door kinderen, 8+

Aan de rechterkant is een werkbalk te zien. Onderaan krijg je de instructie: Dubbelklik of sleep een bestand op een plek om iets te plaatsen.

Office 365: een beknopte handleiding

Design Document If This Then That. HSP moodlight Liad Damhuis G&I1B Game Art

Inhoudsopgave. Voorwoord... 7 Voordat je begint... 8 Wat heb je nodig?... 9 Voor ouders, verzorgers en leraren... 10

Handleiding TagMyDoc

Reflex ebestel Applicatie Handleiding

Snel op weg met de PepperPlayer.

Audiobestanden. maken. Inleiding

Handleiding harde schijf wissen:

HANDLEIDING VIEW DESKTOP. Handleiding VIEW Desktop. P. de Gooijer. Datum: Versie: 1.3

Handleiding Telewerken met Windows. Inleiding. Systeemvereisten. Inhoudsopgave

Maak kennis met Linux. Dit programma heet LinuxMint13. U leest nu een korte inleiding over de mogelijkheden.

Windows Training voor 50-plussers. PC50plus trainingen Eikbosserweg AK Hilversum tel:

ICT Publisher

LegManager Mobile Handleiding

Voorbereidingen voordat je alles in een presentatie zet.

Geluidsbewerking met AUDACITY

PREZI (

Transcriptie:

Tem Bertels 1ste master CW tem.bertels@student.kuleuven.be Android Toepassing Groep 1 Andres Gutierrez 3de bach Informatica andreshumberto.gutierrezgonzalez@student.kuleuven.be Tom Mercelis 1ste master CW tom.mercelis@student.kuleuven.be Annelies Van der Borght 2de bach Informatica annelies.vanderborght@student.kuleuven.be ABSTRACT Met deze android toepassing zijn we helemaal afgestapt van ons idee van backmasking. Nu wilden we een applicatie maken waarmee je een foto van iemand kan animeren zodat de persoon danst op muziek. We hebben een werkende demo gemaakt, maar helaas niet alle features kunnen implementeren. INDEX TERMS multimedia, android 1 IDEE In het ontwerp van deze applicatie zijn we helemaal afgestapt van het concept van onze vorige applicaties. Dit na toestemming van professor Duval en omdat we niet meteen zagen hoe we typische voordelen van mobiele toepassingen (zoals GPS, fototoestel, spraakopname,...) konden toevoegen aan onze backmasking-applicatie, en hierdoor ervoor zorgen dat deze ook extra functionaliteit biedt. Omdat we nu opnieuw van nul moesten beginnen, hebben we eerst een kleine brainstorm gehouden. Hierin kwamen volgende ideeën naar boven: het menu van de dichtstbijzijnde Alma (of andere restaurantketen) tonen en als je een maaltijd aanklikt een liedje spelen dat weergeeft hoe goed andere mensen deze maaltijd vonden (bijvoorbeeld Dead Body s Everywhere afspelen als mensen deze maaltijd helemaal niet lekker vonden); mensen zelf geluiden, gesprekken/voicemail, liedjes,... laten opnemen en deze dan omgekeerd terug laten afspelen zodat ze kunnen ontdekken wat de echte boodschap is; een GPS-spelletje waarin de aanwijzingen gebackmasked worden gegeven; de gebruiker de mogelijkheid geven de barcode van een cd in te scannen met zijn/haar android en dat het programma zou teruggeven of deze cd liedjes bevat die voorkomen in de lijst van gebackmaskte liedjes (dezelfde lijst die gebruikt werd in de vorige applicatie); een danssimulatie uitvoeren op een persoon waarvan je een foto trekt. Een van deze ideeën kiezen, was niet zo eenvoudig omdat we allemaal redelijk uiteenlopende meningen hadden. Maar uiteindelijk hebben we er toch eentje gevonden dat iedereen goed vond. Hierna volgt een korte beschrijving van waarom we elk idee al dan niet gekozen hebben: Het Alma idee vonden we allemaal wel leuk, maar hebben we toch niet gekozen omdat de beoordeling van maaltijden heel subjectief is. Daarbij is het ook niet zo makkelijk om met liedjes genuanceerd weer te geven wat mensen nu juist van een maaltijd vonden. Het backmasken van geluidsfragmenten hebben we ook laten vallen aangezien de meeste features in deze applicatie reeds bestaan (geluid opnemen, afspelen...) en dit dus weinig eigen input zou toelaten. Het backmasken zelf zouden we ofwel 1

zelf moeten implementeren, maar dit leek niet makkelijk haalbaar op het toestel zelf, en het leek ons ook niet de bedoeling dat we dit op een externe server zouden doen. Dit zou daarenboven niet erg snel gaan via mobiele internetverbindingen. Het GPS-spelletje hebben we laten vallen aangezien het veel gehardcode acties zou bevatten en dat het uiteindelijk weinig qua meerwaarde met zich meebracht. Ook het inscannen van barcodes had in onze ogen niet echt veel meerwaarde en zou waarschijnlijk maar een beperkt publiek aanspreken. We kozen dus voor het laten dansen van gefotografeerde personen aangezien dit zeker een grappige applicatie kan zijn, dat dit vrij origineel lijkt. Het spreekt ook een groter publiek aan dan de backmasking. Het maakt gebruik van de camera in de smartphone. Ook de GPS zou gebruikt worden om de locatie waarop de foto gemaakt is op te slaan en mobiel internet om deze foto s te kunnen delen met andere gebruikers. 2 STORYBOARD Een afbeelding van het storyboard is te vinden in de appendix (afbeelding 1). Dit storyboard is hoe we, in het meest optimistische geval en voor we wisten hoe android werkt, wilden dat onze applicatie eruit zag. Het programma zou als volgt verlopen; de gebruiker verveelt zich en neemt een foto van iemand in zijn/haar omgeving en een foto van de achtergrond. Hij/zij kiest dan een liedje waarop hij/zij de animatie wil laten gebeuren. Het programma zal dan op een simpele manier de getrokken foto animeren. Wanneer de gebruiker genoeg heeft van die animatie, kan hij/zij kiezen om het programma gewoon af te sluiten of de foto's die hij genomen heeft, op te slaan. Dit storyboard bevat wel een aantal features die we uiteindelijk niet geïmplementeerd hebben. Dit wordt verder besproken in puntje vier ( Implementatie ). 3 SOFTWARE-ONTWERP Om het softwareontwerp te begrijpen is het noodzakelijk om iets van android te begrijpen. De basis van een use case scenario is een Activity. Een activity komt in feite overeen met een use case. Normaalgezien heb je maar één gui-layout voor één activity. De menu's en de View zijn verbonden aan een activity. Je maakt een activity door een klasse te maken die de Activity klasse uitbreidt. De activity wordt door het android systeem op de hoogte gebracht van statusovergangen in het systeem. De lifecycle van een activity kan je zien op afbeelding 3 in de appendix. Er is steeds maar 1 activity zichtbaar/running. Om een bepaalde activity te starten moet je een Intent sturen. In onze applicatie maken we gebruik van vier activities: eentje om het mannetje uit de foto te knippen, eentje om een foto te maken uit de webcamstream, eentje om een bestaande foto uit het apparaat te laden en een laatste waarin het mannetje geanimeerd wordt en de muziek kan gestart en gestopt worden. De activity om een bestaande foto te laden hebben we niet zelf geïmplementeerd, deze is reeds voorzien in het android platform. Dit is ook een van de krachtige zaken in het Activity/Intent systeem: je kan ofwel een specifieke Activity klasse starten, ofwel vragen dat het platform een Activity start die een bepaald resultaat kan geven, zoals een afbeelding. Wanneer er meerdere Activities het juiste resultaat kunnen geven, dan krijgt de gebruiker de keuze. De keuze die de gebruiker dus krijgt tussen een opgeslagen foto en een beeld van de webcam halen, komt omdat het platform twee mogelijkheden heeft om een afbeelding te vinden. Om iets weer te geven in een Activity moet je een View object gebruiken. Aangezien we een gui nodig hebben om een figuur uit te knippen en om een figuurtje te animeren, hebben we geen standaard views gebruikt, maar zelf views geïmplementeerd. De views krijgen ook de muis- en toetsevents van het systeem. De singleton klasse die we maakten dient om de gegevens tussen twee Activities door te geven. Wat ook opvalt is dat een aantal zaken in Android steeds met integers werken, bvb om aan te duiden welk menu item aangeklikt is. Ook de resultaten van een Intent worden doorgegeven aan een bepaalde methode van de Activity en geïdentificeerd op basis van een integer. Hierdoor kunnen we enkele object georiënteerde patronen ook niet gebruiken. Op afbeelding 4 in de appendix is ook het klassendiagram van onze applicatie te vinden. 4 IMPLEMENTATIE We hebben het werk van bij het begin opgesplitst en ieder van ons heeft een deel van het werk voor zijn/haar rekening genomen. Hier zullen we kort bespreken wat we exact gedaan hebben en welke moeilijkheden we hierbij ondervonden hebben. Eerst en vooral wilden we weten of het mogelijk was om de camera te gebruiken in de android emulator, dit via een webcam aan een computer gekoppeld. De emulator voorziet geen manier om de camera te emuleren met echt opgenomen beeld. Daarom hebben een http webcam streamer opgezet op een laptop met webcam. De android Activity om camera beelden op te halen haalt periodisch een beeldje op uit van de server, en toont het. Dit betekent 2

dat deze Activity moet herschreven worden indien gebruikt op een echt G1 toestel met camera. Daarna hebben we ons bezig gehouden met het spelen van muziek. Het eerste probleem was dat we een muziekbestand meegegeven hadden met het programma, maar dat dit bestand te groot was. Nu bleek dat elk programma dat geïnstalleerd wordt op de android beperkt wordt in grootte. We hebben dan simpelweg de bitrate van de muziekbestanden verlaagd. Muziek embedden in de applicatie is slechts een gemakkelijke manier om het programma te demonstreren. In een echte versie is zouden we het mogelijk kunnen maken de muziek te halen van bijvoorbeeld het SD kaartje. Het spelen van muziek gebeurt via een MediaPlayer object in android, waaraan we een muziekbestand geven. In ons uiteindelijk programma is het mogelijk om te switchen tussen verschillende liedjes. De volgende stap was het opslaan van de foto s die de gebruiker genomen heeft. Dit heeft voor vrij veel irritatie gezorgd. Omdat er geen bestanden op de emulator staan, wilden we images van op een externe server downloaden en opslaan op de emulator. Na veel fouten bleek dat het gewoon niet mogelijk is om bestanden op te slaan op het interne geheugen van android. We besloten daarom om een virtuele SD kaart aan te maken, aangezien het ook makkelijker was om hierop een aantal voorbeeldafbeeldingen te zetten, vóór de SD kaart geladen werd in de emulator. Dit gaf initieel echter fouten aangezien onze SD kaart kleiner was dan 8Mb en dit aanvaardt de emulator niet. Eenmaal de virtuele kaart groter dan (en dus niet gelijk aan, want dit gaf ook fouten) 8Mb was, werkte het laden van deze SD kaart wel. Na het opslaan kwam het ophalen van bestanden. Initieel deden we dit door een query uit te sturen naar het externe geheugen. Dit deden we via een android.uri (MediaStore.Images.Media.EXTERNAL_CONTEN T_URI) omdat we dachten dat dit het pad naar het externe geheugen gaf. Dit werkte niet op wat we wilden doen. We weten nog steeds niet of dit is omdat de Uri niet om te vormen is naar het pad, of omdat de Uri hier gewoon niet voor dient. Dit hebben we dan tijdelijk opgelost door het pad naar de SD kaart hardcoded in te geven. Uiteindelijk besloten we dan toch om een andere weg in te slaan, omdat het eerder uitgelegd systeem enkel werkt als we de exacte naam kennen van het bestand dat we willen ophalen. In plaats daarvan werken we nu met een in android ingebouwde Intent. Deze laat de gebruiker twee afbeeldingen (eentje voor de persoon en eentje voor de achtergrond) kiezen tussen alle afbeeldingen die op de android staan. De Intent geeft als antwoord een URI, die met de ContentResolver kan gebruikt worden om het bestand te openen. We wilden het uitknippen simpel houden door steeds dezelfde stukken uit een afbeelding te knippen. Het bleek echter moeilijker om een algemeen bruikbare locaties van armen, benen, romp en hoofd te vinden dan om een implementatie te maken waarin de gebruiker zelf de lichaamsdelen en gewrichten aanduidt. Daarom hebben we uiteindelijk ook voor dit laatste gekozen. Dit hield in dat we de gebruiker zelf de vakjes zouden laten trekken rond de lichaamsdelen (hoofd, armen, benen, romp) die we gaan animeren. We doen dit door twee punten in het beeld te laten selecteren door de gebruiker, en die te nemen als linkerbovenhoek en rechteronderhoek van een rechthoek waarin dit lichaamsdeel ligt. Ook de scharnierpunten van de gefotografeerde persoon worden nu door de gebruiker zelf gekozen. Dit zorgt ervoor dat we onszelf veel beeldverwerking en uitrekeningswerk (als de foto niet mooi gecentreerd is, of de persoon op de foto zijn benen niet mooi strekt bvb) besparen. We hebben ook een eigen Intent gemaakt, die de camera in de telefoon simuleert (we gebruiken in werkelijkheid een webcam van de laptop). De beelden van de laptop-webcam worden via een http-server beschikbaar gemaakt aan android. Wanneer de gebruiker een "kies foto" intent lanceert, kan de gebruiker kiezen tussen een reeds bewaarde afbeelding, of een nieuwe van de webcam. Indien de gebruiker via de webcam een foto maakt, kan hij deze draaien in de gewenste positie, en wordt deze opgeslagen voor later hergebruik. Om de animatie te maken hebben we lang gezocht naar de verschillende manieren waarop we dit in android konden doen. Android heeft zelf een paar ingebouwde methodes om afbeeldingen te animeren, maar omdat we initieel de snelheid waarmee de animatie gebeurt, wilden afstemmen op de muziek, hebben we er voor gekozen om deze niet te gebruiken. De uiteindelijke animatie bestaat uit een achtergrondfoto waarop de verschillende lichaamsdelen van de danser getekend worden met verschillende rotaties (rond de door de gebruiker aangegeven gewrichten). De rotaties gebeuren door het canvas te roteren, het lichaamsdeel te tekenen en het canvas dan weer te herstellen. De manier waarop de danser beweegt is vrij willekeurig en wordt via een aparte thread periodisch berekent. Het hertekenen gaf nog wat praktische problemen, omdat dit vanuit een aparte thread moet gebeuren: android laat namelijk niet zomaar toe dat de UI wordt aangepast vanuit een andere thread dan deze die de UI maakt. Hoewel we heel optimistisch aan het project begonnen zijn, bleek uiteindelijk dat het niet mogelijk was van alles af te werken in de gegeven tijd. Onze applicatie was vrij ambitieus en we hebben gedaan wat we in de vooropgestelde tijd konden afkrijgen. De features die we hebben laten vallen zijn uiteindelijk 3

leuke uitbreidingen maar niet kritiek voor de werking van de applicatie. Concreet de delen die we hebben laten vallen: Het animeren van de foto op het ritme van de muziek. In de plaats hebben we ervoor gekozen om de onderdelen van de persoon in de foto random te laten bewegen. De GPS uitbreiding waarbij de gebruiker ook foto's kon kiezen die andere gebruikers gemaakt hadden in dezelfde buurt. Dit deel hebben we helemaal weggelaten, hoewel het wel expliciet in het storyboard staat. Er zou daarvoor ook een centrale server nodig zijn om de foto s van alle gebruikers te verzamelen. 5 RESULTAAT We vinden het uiteindelijke resultaat nog behoorlijk goed geslaagd. Het is enkel jammer dat we niet genoeg tijd hadden om de meer fancy dingen, zoals het animeren op de muziek, ook nog te implementeren. Dit zou zeker een meerwaarde zijn aan de applicatie. Het systeem om het lichaam op te delen in de verschillende ledematen en om de scharnierpunten aan te geven is misschien ook nog een beetje omslachtig. Je moet steeds een menu en submenu doorlopen om het lichaamsdeel of scharnierpunt aan te kunnen duiden. Over de rest van onze applicatie kunnen we weinig opmerken. Deze lijkt ons goed in elkaar te zitten. 6 ANDROID Eerst en vooral zullen we bespreken welke, volgens ons, de voordelen van android zijn. Google heeft een uitgebreide, platformonafhankelijke SDK gemaakt voor android. Aangezien de Java programmeertaal gebruikt wordt, en er een Eclipse-plugin is voor android, was het voor ons niet zo moeilijk om met android van start te gaan. We hebben ook het gevoel dat het android platform heel goed gericht is op uitbreidbaarheid. Dit vooral door de mogelijkheid om Intents te schrijven en te herbruiken. We zijn ook heel tevreden over de heel uitgebreide API en tutorials die Google zelf ter beschikking stelt van android developpers. Een voordeel van de emulator waarop we werkten, was dat die in grote mate overeenkomt met hoe een echt android systeem (op een G1) werkt. Dit liet ons toe om te ontwikkelen zoals we op een echt systeem zouden doen. Maar android heeft ook nadelen, die ons duidelijk werden tijdens het programmeren. Allereerst kunnen we opmerken dat niet alle informatie die te vinden is online (gebruikerssites, fora...) even correct is. We denken dat dit vaak te wijten is aan veranderingen aan de API, aangezien android nog steeds in volle ontwikkeling is. Dit maakt het opzoekwerk er niet makkelijker op. De hoeveelheid informatie die te vinden is online is ook een stuk minder dan bijvoorbeeld voor Flex. Ook dit ligt waarschijnlijk weer aan het feit dat android nog relatief nieuw is. Een laatste ietwat negatieve opmerking is dat de emulator niet altijd even consistent is qua fouten. We hebben tweemaal de situatie gehad waar we foute code geschreven hadden, die de emulator deed crashen. Als we deze code dan in commentaar zetten, bleef hij toch dezelfde fout geven en bleef de emulator crashen. In een geval hebben we dit kunnen oplossen door de emulator simpelweg te herstarten maar in het andere (waarbij we telkens een INSTALL_FAILED_INSUFFICIENT_STORAGE kregen) konden we niet anders dan een ander project aanmaken en de code die geen fouten gaf, hierin kopiëren. Na onze ervaring met android kunnen we zeggen dat dit besturingssysteem duidelijk gemaakt is voor mobiele toepassingen en dit zou dan ook het soort applicaties zijn dat we met android zouden maken. Het kan bijvoorbeeld handig/nuttig zijn om omgevingsinformatie te gebruiken in programma's. Denk hierbij vooral aan het gebruik van de GPS, foto's maken, omgevingsgeluid opnemen. We zouden het systeem echter niet gebruiken voor grote programma's die veel CPU gebruiken omdat android nog niet volledig geoptimaliseerd is qua performantie. Ook programma's die in se een groot scherm vereisen (bvb grote games, programma's voor films te bekijken...) zouden we hier waarschijnlijk niet op ontwerpen. Dit laatste ligt voornamelijk aan het feit dat android bedoelt is om op mobiele toestellen te werken en niet noodzakelijk omdat het besturingssysteem hier niet voor geschikt is. 7 ERVARING Tijdens het implementeren hebben we geleerd dat het wel nodig is om te leren werken met android. De Intents en Activities bijvoorbeeld, waren nieuw voor ons en dit zorgde er voor dat we toch een zekere tijd nodig hadden om echt vertrokken te raken. Eenmaal we hier meer vertrouwd mee waren, bleek android wel een aangenaam en krachtig mobiel platform om mee te werken. Iets wat we zeker handig vonden was dat twee van de leden van ons team op Devoxx twee lectures van Romain Guy hebben kunnen volgen en hem nadien ook vragen hebben kunnen stellen in verband met onze applicatie. Iets dat we een volgende keer zeker anders zouden doen, is dat we waarschijnlijk een minder ambitieus storyboard zouden maken. Dit omdat de tijd die we eraan 4

konden/moesten spenderen deze keer niet evenwichtig is met de features die we in ons storyboard hebben gestoken. Het was ook minder aangenaam dat we de eerste weken van het project geen tijd hadden om veel buiten de multimedia zittingen te werken. We zijn hier pas mee begonnen de laatste week voor de deadline. Dit voornamelijk omdat we allemaal nog andere lopende projecten hadden die eerder af moesten. Uiteindelijk hebben we toch nog het nodige aantal uren in dit project kunnen steken, waardoor we een werkende applicatie hebben die we kunnen demonstreren. Verder zijn we ervan overtuigd dat we het werk weer goed verdeeld hebben en denken we niet dat we bepaalde dingen anders zouden aanpakken. 8 GLOBALE FEEDBACK Drie dingen die we graag zouden veranderd zien in dit vak zijn: Graag zouden we android vroeger op het semester gekregen hebben (aangezien hiervoor toch wel wat werk buiten de sessies verreist was). Op het einde van het semester zouden we liever een project hebben gehad waaraan minder werk buiten de sessie besteed moet worden. Dit omdat het einde van het semester voor ons meestal een hele hoop deadlines betekend. Ook zouden we het leuker gevonden hebben als sommige opdrachten iets beter voorbereid waren door het onderwijsteam. Hier denken we concreet aan SCORM, waar we de indruk kregen dat de assistente niet helemaal wist wat onze opgave voor het semester concreet inhield en dat de professor niet heel goed wist wat juist mogelijk was en wat niet in het SCORM systeem. Daardoor kregen we tijdens één zitting telkens nieuwe opgaven, die soms tegenstrijdig waren. Gelukkig werd dit rechtgezet in de volgende zitting, waar we dan wel weer op het juiste pad gezet werden. Uiteindelijk zouden we het aangenaam gevonden hebben dat we bij de presentatie voor elke opgave meer toepasselijke en aantrekkelijkere demonstraties kregen van wat het systeem ons toelaat van te doen. Bij de presentatie over Mash- Up was dit zeker het geval, bij android daarentegen minder. Een aantrekkelijkere demonstratie geeft volgens ons meer zin om aan het project te beginnen. Er zijn ook een aantal dingen die we zeker niet zouden veranderen aan hoe het vak dit jaar gegeven werd: Het feit dat er tijdens de eerste zittingen van een nieuw project, er altijd iemand aanwezig is die vertrouwd is met het systeem, zodat we vragen kunnen stellen indien nodig. Ook vinden we de manier waarop het vak gegeven wordt zeer aangenaam.. Dat elk jaar verschillende nieuwe systemen verkend worden, is ook zeker een pluspunt, aangezien dit ervoor zorgt dat de interesse in het vak niet vervaagd midden het semester. Uiteindelijk vinden we ook zeker interessant dat externe personen uitleg komen geven over hun vakgebied (zoals dit jaar bij METS het geval was). Wat we een twijfelende medestudent zouden vertellen over dit vak is voornamelijk dat het vak tof wordt gegeven en het zeker een originele manier is om met een vak om te gaan. Op zich vinden wij het groepswerk aangenaam en dit zorgt er natuurlijk voor dat de workload niet te groot wordt. Dit laatste wordt ook onderhouden door het feit dat de professor de taak bijwerkt wanneer blijkt dat de hoeveelheid werk te groot is. Ten laatste was het zeer interessant om te leren werken met systemen/platformen waar we anders niet noodzakelijk in aanraking mee zouden komen (in onze opleiding of in onze vrije tijd). APPENDIX A Tijdsbesteding Tabel 1: Overzicht van de tijd besteed aan het project Naam In de les Buiten de les Totaal Andres 11.30 uur 11 uur 22.30 uur Annelies 13.30 uur 23.30 uur 37 uur Tem 13.30 uur 21 uur 34.30 uur Tom 9.30 uur 24.30 uur 34 uur Voor een meer gedetailleerde tijdsbesteding, zie tabel 2 in appendix B. B Afbeeldingen en tabellen 5

Afbeelding 1: Het storyboard (deel 1) 6

Afbeelding 2: Het storyboard (deel 2) 7

Afbeelding 3: De lifecycle van een Activity 8

Afbeelding 4: Het klassendiagram Wanneer 28/11/2008 In de les 4.30 uur 28/11/2008 28/11/2008 2.30 uur 4.30 uur 28/11/2008 4.30 uur 28/11/2008 30/11/2008 02/12/2008 - Tabel 2: Gedetailleerde lijst van de tijd besteed aan het project Buiten de les Naam Gewerkt aan Annelies Android SDK downloaden en installeren, tutorials over android proberen + nieuw storyboard tekenen Andres Android SDK downloaden en installeren, tutorials over android proberen Tem Android SDK downloaden en installeren, tutorials over android proberen + nieuw storyboard tekenen Tom Android SDK downloaden en installeren, tutorials over android proberen + nieuw storyboard tekenen 30 minuten Tem Wiki aanpassen 1.30 uur Annelies Storyboard tekenen 30 minuten Annelies Storyboard afwerken 9

03/12/2008-1.30 uur Annelies Zoeken naar fast fourier transform 04/12/2008-2 uur Tom Camerabeelden in android emulator krijgen 04/12/2008-1 uur Andres Zoeken naar mogelijkheden voor animatie 04/12/2008-2 uur Tem Zoeken naar animatiemogelijkheden + fast fourier transform 05/12/2008 4.30 uur - Groep Camera + animatie + muziek 05/12/2008-3 uur Tem Zoeken hoe bestaan op te slaan/uit te lezen uit interne opslagruimte android 09/12/2008-2 uur Andres Werken aan animatie 10/12/2008-3 uur Andres Werken aan animatie 10/12/2008-1 uur Annelies Zoeken hoe bestanden op een server te zoeken 11/12/2008-2 uur Annelies Zoeken hoe bestanden op een server te zoeken 12/12/2008 4.30 uur - Annelies Bestanden opslaan en uitlezen op sdcard android 12/12/2008 4.30 uur - Tem Bestanden opslaan en uitlezen op sdcard android 12/12/2008 4.30 uur - Andres Werken aan animatie 12/12/2008 30 minuten - Tom Werken aan animatie 17/12/2008-30 minuten Annelies Werken aan verslag 18/12/2008-5 uur Andres Programma afwerken: animatie, alles samenvoegen, verslag 18/12/2008-15.30 uur Annelies Programma afwerken: animatie, alles samenvoegen, verslag 18/12/2008-15.30 uur Tom Programma afwerken: animatie, alles samenvoegen, verslag 18/12/2008-15.30 uur Tem Programma afwerken: animatie, alles samenvoegen, verslag 18/12/2008-4 uur Tom Programma afwerken: webcamstream implementeren in een get_content intent, bugjes verwijderen 22/12/2008-1.30 uur Annelies Verslag 26/12/2008-3 uur Tom Verslag bijwerken, klassendiagram 27/12/2008-30 minuten Annelies Verslag samenvoegen 10