Je bent in het archief : ‘Tutorial‘

Flash Colors – Game using seperate Sound Class

Another app in the Google Play Market. This time, I focussed on how to create a seperate class to handle Sounds. The app is quite simple. It shows colors. The user can choose one of 3 playing modes; simple, medium (remember growing series) or hard (remember random series). It was a challenge to work with a seperate Sounds class, that would handle sound playing. For this app, I used SoundPool. There is one other method to play sounds, MediaPlayer. The latter is for large sounds, music and so on. For Flash Colors, a small soundbite is sufficient, so SoundPool will do. First, we create a seperate class that we can invoke when sounds are played ;   import android.media.SoundPool; public class DoSound { private static SoundPool soundPool; private static HashMap<Integer, Integer> soundsMap; static int SoundYeah = 1; static int SoundWrong = 2; public static void initSounds(Context context) { soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 100); soundsMap = new HashMap<Integer, Integer>(); soundsMap.put(SoundYeah, soundPool.load(context, R.raw.yeah, 1)); soundsMap.put(SoundWrong, soundPool.load(context, R.raw.wrong, 1)); } /** Play a given sound in the soundPool */ public static void playSound(Context context, int soundID) { if(soundPool == null || soundsMap == null){ initSounds(context); } float volume = 1.0f; soundPool.play(soundsMap.get(soundID), volume,… >> Lees meer…

WieBenIk : Functionaliteit uitgebreid

In de Google-market maakte Chantal de opmerking dat WieBenIk te moeilijk is. Zij had het geinstalleerd, gespeeld, maar niet geraden dat ze “Google” was. Tja. Ik heb het zelf met 3 anderen 1,5 uur lang gespeeld. We hebben veel gelachen en eigenlijk vonden we het niet echt te moeilijk. Je moet wel je medespelers op het juiste moment een hintje geven … Juist daar dacht ik aan een stukje automatisering. Dit weekend ben ik dus aan de slag gegaan met het maken van 3 hints per woord. Ook de code moest daarvoor een beetje worden aangepast. Op het moment dat we een woord uit de database halen, kunnen we ook meteen de hints erbij laden. De database heeft er dus 3 kolommen bijgekregen, die ik uitlees. De resultaten plaats ik in een String Array, zodat het later makkelijk is om de variabelen te vullen met de verschillende hints. De DBHelper heeft dus een nieuwe methode gekregen : public String[] getRecord(long rowId) { SQLiteDatabase db = getReadableDatabase(); Cursor c = db.query(TABLE_NAME, new String[] { WORD, “HINT1”, “HINT2”, “HINT3” }, _ID + “= ” + rowId, null, null, null, null, null); if (c != null) { c.moveToFirst(); } db.close(); String[] result; result… >> Lees meer…

Failed to initialize Monitor Thread: Unable to establish loopback connection

Tijdens een Android training sessie kwamen we op sommige PC’s deze foutmelding weer tegen. Het heeft te maken met het feit dat Eclipse niet goed om kan gaan met IPv6 adressen voor de LoopBack adapter. Dit IPv6 adres wordt toegekend door de Toredo Interface. Je kunt deze interface makkelijk uitzetten, dan houdt je PC een IPv4 adres. Ik heb ook geprobeerd of het lukt als je de hosts file aanpast, maar omdat de meeste (zakelijke) systemen dat niet toestaan, lijkt me deze oplossing beter. Mijn eerste tutorial met een filmpje, om te kijken hoe dat bevalt (bij mezelf, maar ook vooral bij de lezers van dit blog). En ook, eerlijk is eerlijk, omdat het publiceren van zo’n filmpje bijdraagt aan mijn doel. Onderaan deze post zal ik het filmpje embedden. Ik denk dat je het wel full screen moet bekijken om alles goed te kunnen zien. Ik ben nog op zoek naar een goede ScreenCam voor dit soort doeleinden (tips, anyone?). BB Flashback lijkt ideaal.. en heeft als nadeel dat je uiteindelijk veel tijd gaat steken in het editten van het geheel. Het liefst zou ik iets hebben, waarmee je dmv een hotkey kunt in- en uitzoomen. Nog even doorzoeken,… >> Lees meer…

Cursus en tutorials online

De afgelopen week heb ik een een paar dagen cursus Android Development gevolgd (kostte me wat vrije dagen, maar was de moeite meer dan waard!). Tijdens de cursus werd mijn vermoeden bevestigd; Eigenlijk zijn het niet de specifieke Android-dingen die ik niet begrijp. Ik heb de JAVA-Basics gewoon niet onder de knie. This, Context, inner- en outer-classes en static operators. Al die termen zeggen mij eigenlijk (nog) helemaal niets. Zie ook deze blogpost. Ik heb de Apps die tot nu toe in de market staan, gebouwd door gewoon maar code kopiëren-en-plakken. Elke keer als ik een fout tegenkwam, heb ik Google geraadpleegd en met veel pleisters en extra code de boel maar weer opgelost. Dat heeft als resultaat dat mijn code niet overeenkomt met welke conventie dan ook (behalve misschien mijn eigen, haha). Tijdens de cursus leerden we onder andere hoe je een XML pagina kunt ‘parsen’ en om kan zetten in FeedItems voor in een Listview. De Listview kun je dan weer tonen in een App. Interessante technologie! Ik dacht meteen aan mijn – vaak voorkomende – ergernis: Als Mensa-lid heb ik toegang tot de ledenlijst, waar ik soms een telefoonnummer of contactgegevens in wil opzoeken. Op dit moment… >> Lees meer…

How To : Adverteren in je zelfgemaakte App

Monetizeren! Prachtig woord, volgens mij geen correct Nederlands. Engelstalige websites en blogs hebben het over “Monetizing” your App. Hoe moet dat nou precies?Als je wilt weten hoe je een App kan maken, kijk dan bij de Tutorials. Daar wordt onder andere uitgelegd hoe je een ontwikkelomgeving moet opzetten en hoe je je eerste App kunt bouwen. Er van uitgaande dat je een App gebouwd hebt; Hoe moet je die nu “Monetizeren”? ;)… Ten eertse kun je je App verkopen in de markt. Maar een eerdere post laat al zien, dat verkoop helemaal niet de meest winstgevende optie hoeft te zijn. Je kunt ook een willekeurig bedrijf bellen. Of een vakblad. En dan aanbieden dat je een bannertje in je app kan tonen (320×50 pixels). Je kunt dan een afspraak maken over het aantal keren dat de banner getoond wordt, en hoeveel dat blad daarvoor betaalt. Er zitten nadelen aan dat idee. Het belangrijkste nadeel; de advertenties zijn voor iedereen hetzelfde. Ze worden niet ‘op maat’ aangeboden. Ten tweede; Je bent afhankelijk geworden van die ene adverteerder. Natuurlijk kun je er een tweede en een derde bijzoeken, maar dan heb je daar een dagtaak aan. Je was App developer, geen advertentie-verkoper. Andere… >> Lees meer…

How-to : Een simpele Game Loop

Mijn aPpLeZ-Game is gebaseerd op een eenvoudige tutorial, Droidz . In de komende posts zal ik uitleggen hoe het raamwerk van de game eruit ziet en hoe je zelf een simpele game kunt bouwen. Daarnaast zal ik ingaan op de problemen die ik tegenkwam bij het ontwikkelen van Applez. Uiteindelijk heb ik, voor Applez, 12 vragen gesteld aan de StackOverflow community. Als je in die community even zoekt op mijn naam, kun je vrij makkelijk de vragen over Applez vinden. Goed. Een game. Hoe werkt dat eigenlijk in Android? Je moet bedenken dat er sprake is van een eenvoudige architectuur. De basis is eigenlijk : Controleer gebruikersinput > Controleer plaatsen en gebeurtenissen van objecten (Physics) > Verwerk data > Teken het scherm > Speel geluid af. Daarna begint de loop weer opnieuw. Dat alles gaat zo snel, dat je erop moet rekenen dat je bij een simpel spelletje, zoals Applez, al snel 50 keer per seconde het scherm kunt tekenen (50 Frames per Second). In de tekening bij deze post kun je de beschreven architectuur herkennen. Hieronder geef ik de code voor een simpele game-loop. CopPa (jep, CopyPaste 😉 ) maakt gebruik van een Background, een View, een Thread en… >> Lees meer…

Architect-uur : hoofdzaak, noodzaak of ver-zaakt?

Op dit moment volg ik een opleiding tot Enterprise Architect. In de opleiding zitten mooie voorbeelden van Architecturen. Ook wordt aangegeven wat de waarde is en hoe het wel en niet moet. Natuurlijk zijn de sessies bij Atos interactief en vertellen deelnemers regelmatig over eigen ervaringen. In de App-Brouwerij die ik doe, maak ik eigenlijk nooit bewust een software architectuur. Dingetjes groeien langzaam – maar zeker – uit de klauwen ;). Uiteindelijk zit ik natuurlijk met de handen in het haar als ik een keer iets wil veranderen of weghalen. Waar zit dat-en-dat ook alweer aan vast? Voordat ik de tijd neem om alsnog (reversed engineering) een soort Software Architectuurtje te maken, ben ik alweer bezig met het volgende programmeer-projectje. De afbeelding bovenaan deze post is de zogenaamde “Magic Roundabout” in Swindon. Hij is ontworpen door de Architect Frank Blackmore. Ik vind zelf de foto behoorlijk onoverzichtelijk. Wij hebben in Pijnacker een grote rotonde, die lijkt me beter ‘gearchitectuurd’ (http://g.co/maps/m8x7h). Als je kijkt naar de textuele omschrijving van de “Magic Roundabout”, valt het mee : “Vijf mini-rotondes, in een cirkel”. Een tekening ervan is weer een stuk gecompliceerder. Ik vraag me af of de asfalt-man en de stoomwals-man (of vrouw)… >> Lees meer…

Opzetten van een ontwikkelomgeving

“Waar moet ik beginnen als ik wil ontwikkelen voor Mobiele Telefoons?”, wordt mij vaak gevraagd. Na een grap over Apple en een dikke portemonnee verwijs ik dan snel naar dit blog 🙂 . Dus. Hoe gaat dat nou? Voordat je begint met de Android SDK (Software Development Kit), neem een ​​moment om te bevestigen dat je computer voldoet aan de systeemvereisten. Misschien moet je de JDK installeren, als je die niet al hebt. Ik beveel van harte aan te ontwikkelen in Eclipse IDE (Integrated Development Environment). Hier kun je Eclipse downloaden http://www.eclipse.org/downloads/ Je moet ook de Android Development Tools (ADT) Plugin installeren om voor Android te kunnen ontwikkelen. Daar kom ik straks op terug. Het SDK (Software Development Kit) startpakket is niet een volledige ontwikkelomgeving. het omvat alleen de kern SDK’s. Daarmee kun je de rest van de SDK pakketten (zoals de nieuwste Android-platforms) downloaden. Als je dat nog niet hebt gedaan, download dan de laatste versie van de SDK starter pakket van de SDK download pagina. Als je een .Zip of. Tgz pakket (in plaats van de SDK installable .exe) hebt gedownload, pak deze uit naar een veilige locatie op je computer. Standaard worden de SDK-bestanden uitgepakt in een… >> Lees meer…

Android, iOS, Java, SDK, adWords, adMob, StackOverflow, NPE..

Eenmaal besloten dat ik mijn PI zou gaan verdienen met Apps, moest ik een paar keuzes maken. De verleiding is groot om te gaan zitten wachten op HET idee. De killer-app. De app die alle andere apps overbodig maakt. Uit ervaring weet ik inmiddels, dat er weinig gebeurt als je gaat wachten. Ondernemen is ook ‘gewoon beginnen’. En vallen. En weer opstaan. In de afgelopen 10 jaar is wel mijn houding en gedrag veranderd. Voldoende om niet in dezelfde valkuilen te stappen. Ik maak me geen zorgen. Er zijn vast genoeg nieuwe valkuilen te ontdekken. 😉 Ik weet niets van JAVA. Ik weet niets van Apps maken. Ik weet niets van iOS. Ik weet niets van… Tja. Gewoon beginnen klinkt eenvoudig. En dat blijkt het ook te zijn! Google geeft je alle informatie die je nodig hebt. De keuze voor het platform was snel gemaakt. Als je voor Apple wilt ontwikkelen, moet je 99 dollar betalen.. per jaar! Als je bedenkt hoe je PI zich zal ontwikkelen, een te verwaarlozen bedrag. Bij Android (Google Play) kost een ontwikkel-account 25 dollar. Eenmalig. Een net iets meer te verwaarlozen bedrag. Apple modereert welke Apps gepubliceerd worden. Android (Google) niet. Dat betekent dat… >> Lees meer…