DMT – Drie Minuten Toets

Een van de meest succesvolle apps van HappyWorx is nog steeds FlitsWoorden. Vanwege dat succes heb ik gewerkt aan een mooiere, modernere versie. DMT is een app die gebaseerd is op hetzelfde idee, met een paar verbeteringen. In DMT kan gekozen worden voor 2 methoden van woorden tonen. De eerste is – gelijk aan Flitswoorden – door te tikken op het getoonde woord. De tweede laat na een bepaalde periode het volgende woord zien. Met behulp van een slider rechts in het scherm is in te stellen hoe snel de woorden getoond worden.

Het bouwen van DMT was ook het uitgelezen moment om meer aandacht te besteden aan de GUI. Ik heb met behulp van PaintShop Pro een aantal houten “cut outs” gemaakt, die getoond worden als knoppen. Voor het database gedeelte heb ik een methode gebruikt waar ik inmiddels goed bekend mee ben; De SQLite database, die geïnstalleerd wordt op de telefoon.

Tot slot bleek er nog een heel leuke snack in de ontwikkeling van deze app te zitten. Ik ben gaan zoeken naar een manier om spraakherkenning te doen, zonder dat daarvoor een Internet Connectie nodig is. PocketSphinx bleek hiervoor uitstekend geschikt. Ik heb een Proof Of Concept gemaakt, dat ik binnenkort ook zal publiceren. In deze PoC is instelbaar hoeveel woorden er getoond worden. Deze woordenlijst vormt ook direct het “grammatical dictionary” voor de spraakherkenning. Andere onderdelen van de engine zijn een acoustisch model en een linguistisch model. Door een fonetisch woordenboek toe te voegen kan de volledige spraakherkenning worden afgehandeld binnen de telefoon, zonder gebruik te maken van externe API’s. De resultaten zijn nog niet heel erg goed (veel valse positieven), maar als PoC is het zeker bruikbaar.

Terug naar DMT. Een echt nieuw concept – nog niet eerder toegepast in HappyWorx apps – is de Interstitial advertentie. Dit is een full-screen advertentie, die getoond wordt nadat de ingestelde lees-duur is verstreken. Pas na het wegklikken van deze advertentie wordt de leessnelheid weergegeven. Ik werk aan een in-app purchasing model, waarmee de advertenties voor de duur van een jaar kunnen worden afgekocht. Genoeg tekst, laten we eens een blik werpen op de code.

Om een Interstitial advertentie te maken, moet je uiteraard beschikken over een AdMob account. Maak een nieuwe advertentie aan. Deze codeblokken zorgen voor het inlezen en tonen van de advertentie;

        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-8205015694325849/8830088010");

        mInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                requestNewInterstitial();
                endShowResult();
            }
        });
        requestNewInterstitial();
    }

Als er – om welke reden dan ook – nog geen advertentie geladen is, dan willen we direct doorstappen naar de methode die het lees-resultaat toont. Daarom:

    public void initializeStopTimerTask() {
        myStopTimerTask = new TimerTask() {
            @Override
            public void run() {
                myTimer.cancel();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        myStopwatch.cancel();
                        tv_Word.setText("");
                        if (mInterstitialAd.isLoaded()) {
                            mInterstitialAd.show();
                        } else {
                            endShowResult();
                        }
                    }
                });
            }
        };
    }

Als de lees-tijd voorbij is en de advertentie is getoond, dan kan de endActivity worden gestart:

    public void endShowResult(){
        Intent i = new Intent(context, EndActivity.class);
        i.putExtra("ReadingTimeMin", mm);
        i.putExtra("ReadingTimeSec", ss);
        i.putExtra("NumberWordsRead", numberOfWordsRead);
        startActivity(i);
    }

In de EndActivity class worden de Integers ReadingTimeMin, ReadingTimeSec en NumberWordsRead gebruikt om de TextView te vullen. Later meer 🙂

You can leave a response, or trackback from your own site.

One Response to “DMT – Drie Minuten Toets”

  1. Armand schreef:

    Fijn app weer Kees, alleen werken de instellingen in de android versie niet. Als in, leeg scherm (m.u.v. boompje op achtergrond). Balen, want ik wil nu juist die scherm aanraak optie aanzetten.

Leave a Reply