Thursday, 5 June 2014

Firefox OS KeyboardIME : Up and Running!

I was faced with a few issues, but am progressing steadily with my GSoC project. The KeyboardIME API of Firefox OS has landed in version 2.0 and my project needs the API for its functioning.

The structure of the Keyboard is based on the Built-in Keyboard App in Gaia. This has two advantages, one is that it will give a quick bootstrap for the project with the same look and feel of the default keyboard in Firefox OS and the second is that apart from being a 3rd party app for now, the code can easily be merged with the Gaia Keyboard later on.

I faced a few hiccups in setting up the development environment because the App Manager keeps closing down the  Developer tools when the Keyboard pops out of view again and again. This happens both with the simulator and on the test device, Geeksphone Keon, leaving me clueless on what's going on in the console. Perhaps I'll need to ask my mentors for help with this.

Meanwhile, I set up another test environment, this time in Firefox Nightly browser, which greatly improved the workflow since now there was no need for reloading the app, and the changes can be tested by just hitting the refresh button.

After spending some time studying the implementation of the Built-in Keyboard, I decided on making an Inscript-based Keyboard for Malayalam language, which is my mothertongue. The implementation is based on a similar layout for Hindi, which was made by Luke. It uses mobile specific features like longpress (shown in the screenshots below) to manipulate the input.




I also faced some inconsistencies and weird, unexpected errors when I tested it on the Simulator. The layouts shown by the Simulator on Windows was very different to that on Linux which is most probably due to different versions of Gaia on the two simulators.

As you may notice, the layouts do not strictly follow inscript. There is no "standard" mobile-specific  format for Indian language keyboards and to fit in all characters, some changes have been made. This is just for experimentation and are in no way the final layout. They will be heavily modified taking feedback from the community. Some of the characters are still overflowing the keys, to fit in, the font-size will have to be decreased.

In the coming weeks, I'll be shifting focus to implement the phonetic and transliteration rules from jquery.ime to the keyboard. I've started off with an experimental version for Hindi - transliteration. After perfecting it for one language, I believe it would be much easier to extend it for most of the languages supported by jquery.ime and priority will be given according to the usage data of various rules which was shared by my mentor Santhosh.

This weekend I'll be attending the Indic FirefoxOS L10n Sprint 2014 in Pune. The event has been organised by Mozilla for core localization volunteers/mozillians in India. I'd like to thank Mozilla and my mentors,  Anivar and Hrishikesh who will be accompanying me, for this opportunity. The event will allow me to get in touch with the Indian Localization team for the OS, which would be of great help for testing and reviewing the Keyboard app being made.

Check out the code on github : https://github.com/psbots/firefoxos.ime

The app can be tested on Firefox using App Manager and FirefoxOS Simulator. (Note that KeyboardIME API runs only on v2.0+)

If you know Malayalam, do check out the layout and give your feedback and suggestions in the comments below.

Looking forward for the weekend in Pune!

No comments:

Post a Comment