Finnish Verbs

A native Windows Phone app

Details

This was my first mobile phone app, I used the experience to study for the Microsoft mobile phone certification exam. The exam was Pro: Designing and Developing Windows Phone Applications (70-599), which I passed on March 5th 2012.

At the time of writing, the exam webpage can be found at https://www.microsoft.com/en-gb/learning/exam-70-599.aspx.

The app still works fairly well, even on newer versions of Windows Phone, however some of the platform implementations are a little outdated. In particular the jump list looks wrong when compared to the current platform implementation.

Despite being a very niche app, it still gets downloads almost daily, racking up several thousand in total since it's launch, which I think was in November 2011. It also, amazingly, reviews well across each of it's release regions, almost all are 4-5 star.

Below is the link to the US store page:

https://www.microsoft.com/en-us/store/apps/finnish-verbs/9nblggh0d7fw

Challenges

The main challenge with this app was data, with over 7,400 verbs and 985,000 conjugations in the system it quickly become a problem with load times and searching.

I ended up storing the data in XML files, with each file contain 25 verb definitions. Each definition includes the conjugations so the file size was between 10 - 200 KB per file

As well as definition files, I had category files, which listed all the verbs in that category, with a key, an example below is for a small category:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <ArrayOfVerb>
 3   <Verb v="taajentaa" p="1" />
 4   <Verb v="taajeta" p="2" />
 5   <Verb v="taamoa" p="3" />
 6   <Verb v="taantua" p="4" />
 7   <Verb v="taapertaa" p="5" />
 8   <Verb v="taaplata" p="6" />
 9   <Verb v="taarata" p="7" />
10   <Verb v="taata" p="8" />
11   <Verb v="tabuloida" p="9" />
12   <Verb v="taeta" p="10" />
13   ...
14   <Verb v="tömistä" p="487" />
15   <Verb v="töniä" p="488" />
16   <Verb v="tönäistä" p="489" />
17   <Verb v="töpeksiä" p="490" />
18   <Verb v="törmätä" p="491" />
19   <Verb v="törmäyttää" p="492" />
20   <Verb v="törröttää" p="493" />
21   <Verb v="törsätä" p="494" />
22   <Verb v="töykkiä" p="495" />
23   <Verb v="töytäistä" p="496" />
24   <Verb v="tööttäillä" p="497" />
25   <Verb v="töötätä" p="498" />
26 </ArrayOfVerb>

This system allowed me to easily search the category files for a verb and then work out what file the definition was in from it's p index. For example on the above list töykkiä is 495 so it must be in definition file 20.

App Screenshots

Screen 1

Screen 2

Screen 3

Screen 4

Screen 5

Screen 6

Screen 7

Screen 8