Parley meets Android in Cairo
29 April 2009
I’m exactly three months into my Arabic studies in Cairo, where I’ve been taking time off university studies and Amarok development. I’ve realized that acquiring a large vocabulary as fast as you can manage is a crucial part of studying a language intensively, and thanks to the awesome KDE-Edu folks I’ve been successfully barely keeping up with the hundreds of new words I’m assigned per week with Parley.
The major problem I have with Parley is that I have to be in front of my computer to use it!
I know you’re laughing. That’s like saying a major fault of beer is that you have to drink it to get drunk, after all Parley is a computer program. You’re right, just because I hardly find the time to actually use the computer doesn’t mean I should lay the blame on Parley. Technically, I should blame the denizens of Cairo and their insane traffic. Seriously, too many of my life’s hours are wasted in the smelly, stuffy, taxis of Cairo (today was particularly bad, pardon the rant).
This past weekend I ignored the towering pile of homework and whipped up a little application for Android devices that groks Parley’s kvtml2 file format, displays lessons, and provides flashcard exercises. My app is really an Android Port of the J2ME mobile application MobVoc. Michael, the MobVoc developer, did most of the hard work for me: parsing kvtml2 files into java data structures. Mad props to Michael; I definitely plan to pass along any contribute any bug fixes/optimizations I make to his code (such as sub-lessons support).
The application - unimaginatively dubbed ParleyDroid for now - is extremely bare-bones. Here is the current feature set
- Pick a kvtml2 file from the SD card
- Choose 1 or more lessons to practice
- View flashcards of the words in the selected lessons.
- Gesture support in the flashcards: Long Press marks card as known, Fling Left/Right changes to Next/Prev card.
- Each practice session has a short-term memory: i.e., if you mark a card as known you won't see it again that session but if you restart the session you will.
- Arabic Support - if the 2nd language is Arabic, it will be rendered correctly on screen
The last feature is probably the most noteworthy. Android, by default does not support RTL or non-Latin scripts, but with a little Android-trickery-that-deserves-another-blog-post I’m finally able to practice my vocabulary in the back of the taxi or while walking along the Nile.
Binary and Source: ParleyDroid Source and ParleyDroid Android Binary
Obligatory Screenshots (click for full view):