Building “Indian language learning” apps; Why I Chose 'Windows 8' Platform
Being one of the early adopters for developing Windows 8 applications (currently available on Windows Store under Hashia Labs), I am glad to share my experiences. Currently, I have 11 Indian or broadly speaking South-Asian language learning apps published in Windows Store that run on the Windows 8 platform. The languages currently supported are Hindi, Urdu, Bengali, Tamil, English, Telugu, Marathi, Gujarati, Punjabi and Kashmiri. These apps allow users to learn, read and write these Indian languages. These are especially suited for native English speaking children who want to quickly learn Indian languages and scripts. There are both trial version and paid versions available. Trial version is free without expiration but has only first 3 out of 14 available features enabled. Links to these apps have been provided at the end for users to download and try it on their Windows 8 PC.
This article primarily covers reasons behind choosing Windows 8 platform for developing my Windows 8 Indian language learning apps.
Background and inspiration
I have a deep interest in Indian(or Indic) scripts and languages and have been learning about them since my childhood. I am software developer by profession and have always been thinking about writing language learning apps ever since the concept of regulated app store for various mobile platforms hit the marketplace. Around six months back, I decided to teach my 6 year old son Hindi language and my plan was to subsequently teach him other languages and scripts that I am familiar with including my mother tongue Kashmiri. I didn’t find the right mobile application that met all my requirements and eventually ended up using actual physical flashcards; the old-school way. Plus there was no Kashmiri learning software app that I came across in the marketplace. This led me to seriously think about developing Indian language learning apps and in the process also contribute to UNESCO’s mother language initiative.
Inspiration also came from an unlikely source- a book, “The Story of My experiments with Truth” by Mahatma Gandhi which by sheer coincidence I was reading around the same time frame. In that book, Gandhiji mentions in one chapter that encouragement to be provided to all major Indian languages including English and vernaculars. He also describes his own effort to learn multiple languages to connect with the people of various Indian regions for understanding their issues and concerns. It also struck me as I came to know that the book was written by Gandhiji in Gujarati (his mother tongue) and was subsequently translated in English by his noted personal secretary Mahadev Desai. What I was actually reading was the translated English version.
As I evaluated competing platforms for my app design I eventually chose Windows 8 for following five main reasons.
1)Modern UI (aka Metro) design
Windows 8 introduces Modern UI design also known as Metro design for User Interaction Experience (UX) on PC’s. Metro design lays emphasis on beautiful typography and uses that typography as a structure for User Interaction (UI) design. Beautiful text content with varying size conveying navigation structure coupled with colors in the background is upfront and central in whole Metro design user interaction experience. In Microsoft’s tech speak it is “Content before chrome” i.e. Content (app’s text and images) takes precedence over graphical UI elements like wireframes which fade to the background and are not needed in many cases. Application themselves are full screen and immersive with no close and minimize buttons. Developer can use the whole screen for app’s functionality.
When I learnt about Metro UI design, the first thing that came to my mind was how Indian scripts would render on a Metro platform especially with neat default sans-serif Segoe UI font used in Windows 8 platform. Apart from diversity of languages, India also has diversity of scripts. In many cases to learn a new Indian language, one has to also learn the associated script with that language.
Given my interest in languages and scripts, I wanted to beautifully showcase Indian scripts and languages and provide opportunity to young folks especially children to learn Indian languages and scripts either as their mother tongue or just as a subject of interest. I wanted them to see text written in Indian script as a work of art that is laid out beautifully and hence I spent extra time making sure I provide appealing visual layout in apps which is text centric with excellent topography.
I found Windows 8 platform with its emphasis on typography and clean text for User Interaction design as a perfect platform to surface my passion.
2) Support for all major Indian languages
Windows 8 with display language in English includes font support for all major Indian languages. That means while developing your application in English you don’t have to install any special fonts or language packs for manipulating Unicode text in Indian scripts. In my design, I used default Segoe UI font for typography for Hindi, Punjabi, Gujarati and Bengali to blend well with default English text font on Windows 8 English typography. For writing feature, I used the associated fonts with these scripts that come with the platform. Below image is created from cut and paste of my Windows 8 apps.
Showcasing South Asian scripts on Windows 8
On the right half of above image is the screen shot of the tiles (app icons) associated with these applications that you will see on your Windows 8 start screen after installing these applications. “Learn Sanskrit” app is in progress.
Windows 8 doesn’t support Indian regional language Kashmiri. But since Kashmiri uses either Devanagari or Perso-Arabic script I was able to work around this problem with some limitations.
Windows 8 also introduces Nastaliq style using “Urdu Typesetting” font. This font is inbuilt in the platform. Since my two language applications namely Learn Urdu and Kashmiri use Nastaliq style Perso-Arabic script, this really helped me to develop the application in the original script style of these languages.
3) Stylus for writing
For writing, I was looking for a platform which treats stylus as a first class citizen as the method of inputting information. Personally, I find it difficult to conceive that one can practice serious writing of language script on a computer with sketching using finger touch. For a purist like Urdu calligrapher, even stylus may not make the cut especially with Nastaliq script of Urdu where font width varies in the stroke at start and end.
Windows 8 supports stylus (pen) for writing or note-taking on hardware platforms that support stylus. Upcoming Microsoft Surface Windows 8 Pro (x86) tablet using Intel Core i5 showcases the use of stylus and digital inking. Since I wanted to layout lot of emphasis on penmanship while writing, Windows 8 platform provides a perfect choice as it has stylus and digital inking capability as an important feature of the platform.
4) Includes existing PC hardware
Windows 8 can run on wide range of PC devices including existing laptops and desktops that are currently running Windows 7. Though Windows 8 is touch-optimized and great for touch screen PC’s you can still use the entire functionality using keyboard ora mouse on a PC that doesn’t support touch. My applications were developed on HP desktop PC that I had purchased way back in 2008 and it had Windows Vista pre-loaded on it at that time. I updated it to “Windows 8 Enterprise Evaluation” version for my app development. It is estimated that 600 million licenses have been sold for Windows 7. That means all these Windows 7 PC’s are potential candidates for upgrade to Windows 8. For example, my dad has low-end Acer laptop running Windows 7 and he doesn’t seem interested in buying a separate tablet device as this point in time. But I do see a big possibility of him upgrading to Windows 8.
Expect for writing where I would recommend stylus capable Windows 8 tablet device, all the other features of my Windows 8 applications can be used on existing PC hardware that can be upgraded to Windows 8.
5)Programming language choices
I have spent most of time in my professional career either writing or debugging device drivers. Device drivers is mainly C/C ++ code. Windows 8 provides variety of programming choices from native C++ to C# and JavaScript. I do have some familiarity with C#/XAML (managed code) but in end I chose JavaScript/HTML5. All my applications are developed in JavaScript/HTML5/CSS.
The reason for choosing JavaScript/HTLM5 was that I wanted to use this opportunity to learn something related to web application development so that I can broaden my overall programming skills. It took me 2-3 weeks to be familiar with JavaScript and to be at a point where I could start developing my Windows 8 JavaScript applications. Microsoft provides msdn documentation and samples to bring developers up to speed for building JavaScript applications using Windows 8 JavaScript library.
If you are a web application developer having familiarity with JavaScript, then JavaScript may be your preferred choice. Think of my applications as bunch of HTML pages styled with CSS with JavaScript control in them. But instead of running inside an internet browser it is full-fledged client application running on a PC.
One more thing, I want to add is related to development tools. If you are already familiar with previous versions of Visual Studio then you can quickly start building with MS Visual Studio Express 2012 for Windows 8 using GUI interface and commands that you are already familiar with. Furthermore, VS Expression 2012 comes with a Blend for VS 2012 and is covered in detail in blend insider web site and is great authoring tool for declarative programming to lay out visual UI elements. I found Blend’s ability to provide live view and live Document Object Model (DOM) for my JavaScript applications time saving and powerful. It really helped me to quickly iterate to the nice visual layout that I was targeting for.
Simulator that comes with VS 2012 also comes handy for testing for various screen sizes, orientations and different views.
Features of the apps
All of my applications follow same navigation and layout design with home page listing all the available features. Every word has audio playback and English translation to help native English speaking user to quickly learn Indian language. More than 150 words have been added in each application with audio playback with pronunciation. Features are laid out in 3 distinct groups with functionality as described below.
- BasicsLearn Vowels.
- Learn Consonants.
- Learn Pronunciation.
- Practice writing using stylus.
- Categories7 categories namely Relations, Colors, Numerals, Fruits, Vegetables, Animals and Days of the Week.
- Flash Cards3 categories of flash cards. These 3 categories are Fruits and Vegetables, Animals and Colors.
- Random selection of the words in the list of four selection options.
- Provides scoring of your attempts.
These Windows Store apps work both in portrait and landscape orientation of the tablet PC and adjust the layout in a snapped view for multitasking. They also automatically adjust to screen sizes from tablet screen size to larger desktop screen sizes. They include Zoom in and Zoom out feature for quick navigation of the collection of the words.
Links to the apps on Windows 8 Store
1.) Learn Hindi in Devanagari script
2.) Learn Urdu in Perso-Arabic script using Nastaliq style
3.) Learn Bengali in Bengali script
4.) Learn Tamil in Tamil script
5.) Learn Telugu in Telugu script
6.) Learn English in Latin script
7.) Learn Marathi in Devanagari script
8.) Learn Gujarati in Gujarati script
9.) Learn Punjabi in Gurmukhi script
10.) Kashmiri in standardized Perso-Arabic-Kashmiri script Nastaliq style
11.) Learn Kashmiri in standardized Devanagari-Kashmiri script
User can download and install these Windows Store apps and try them for free on Windows 8. As mentioned in the beginning, trial version is free without expiration but has only first 3 out of 14 features enabled.
If possible please take time to review and rate the applications on Windows Store so that these apps can be further improved.
Author’s Disclaimer: Views expressed in this article are author’s personal views and are not endorsed by any company or any individual. Links (URL’s) provided by the author in this article have been provided as a reference.
To know more about HashiaLabs, follow them on Facebook - http://www.facebook.com/HashiaLabs
About Author
Anil Hashiais a software developer by profession and has 15 years of software development experience working in various IT companies. He did his B.Tech in Comp Science and Engineering from NIT Jalandhar and Masters in Software Engineering from Seattle University. He also holds certification in Project Management.He currently lives in Seattle, WA with his wife and 2 kids. He is a history buff and likes to hike in his spare time.
For any comments or feedback please e-mail the author at [email protected]