Japanese keyboard for Firefox OS

tldr: You can't efficiently type in Japanese on a Firefox OS device, unless you buy a fx0 device or you build Gaia yourself and are very patient!

Firefox OS is targeting a global audience. You can set your interface in 90 different languages and there are over 70 language specific keyboards! But developing a keyboard is more challenging for some languages than others and Japanese is one of them.

I won't give much details about why is a Japanese IME hard to implement, but the main reason is that there is a massive amount of suggestions that need to be stored on the device somehow. In Japanese, any word can be usually written in several different ways. Storing such a dictionary can cause serious issues on low-end devices with limited memory and processing power.

But that's not a reason to just giving up typing in Japanese on Firefox OS.

fx0

Earlier this year, KDDI released the fx0, a Firefox OS powered device, on the Japanese market. This phone comes with a Japanese keyboard called iWnn IME and developed by Omron Software.

The implementation is efficient and powerful. It comes with many options to configure the keyboard to perfectly suit your needs and habits. Such a high quality is not really surprising as the same keyboard is already available on other platforms (Android notably).

This keyboard has been open sourced in the iwnn-ime-sample Github repo. However the licence is expiring on 30th September 2015 (not sure what's happening afterwards).

The readme file claims it's possible to flash it on a Flame running Firefox OS v2.0. So I tried and everything is working, except for the core feature: the words suggestion. To achieve this in an optimised way, a local server running on the device is used to query words. This part doesn't work. The keyboard however can still be used to input kana, but you won't get any word suggestions.

I then flashed it on a master (tried both on a Flame and Sony Z3C). I encountered the same issue with the words suggestion together with other few minor bugs. But if you use it as a kana only keyboard, then this is probably acceptable.

Drop me a comment below if you need help on how to install it.

iWnn IME for Firefox OS

Gaia jp-kanji keyboard

There is already a Japanese keyboard in Gaia. To install it, you must build Gaia yourself and flash your device. Here is the suggested command line:

$ GAIA_KEYBOARD_LAYOUTS=en,jp-kanji make reset-gaia

Once flashed, you must enable the new keyboard in Settings > Keyboards > Select keyboards.

This IME comes with words suggestion, but it is neither as user-friendly nor as fast as the iWnn IME one. That is the reason why it is not available to current builds. I love how the design fits in the Firefox OS UI though.

There are plans to build a better Japanese keyboard for Firefox OS, but nothing has happened yet.

Gaia jp-kanji Keyboard

So unfortunately, there is no easy way to install a Japanese keyboard on Firefox OS, but we're working on it! If you're wondering what I'm doing with my device, I use the iWnn IME keyboard, but because of its limitations, I avoid typing in Japanese on my mobile whenever I can :-)

Comments

The Physical Web

"Walk up and use anything" is the promise of the Physical Web. It is an open source project started by Google that allows you to access to online resource via physical objects.

The concept

The physical web is based on hardware beacons that broadcast data using Bluetooth Low Energy (BLE) without the need to pair the device. In this case, the data is an URL. For now, it requires you to install an app on your mobile device. This app will scan in the background the surroundings for beacons and will inform you whenever you come across one. You'll then be presented with a list of URL, one per beacon. If the project is successful, this feature may be built-in your mobile OS in the future, thus removing the need for an external app.

There are already some beacons available. I bought a physical web pack from Blesh, but there are more providers. You can also turn your laptop or other devices into beacons using the projects listed here. There's even an implementation for Node.js.

The Physical Web beacons by Blesh

These projects allow you do to both reading and advertising. The app required to read physical web beacons is available on Android and iOS.

mDNS support

Advertising URL on a local network is also supported thanks to mDNS. It works essentially by using a _http._tcp service with an optional TXT record for the path. As noted on the website, the advantage over BLE is that reading is limited to the devices connected to the local network and won't leak to unauthorised people. It also enables broadcasting longer URLs.

Criticism

This project is really interesting because it helps discovering content useful locally using the P2P web. Unfortunately I wish the concept had been taken further and instead of advertising URL that requires an Internet connection to be visited, it could have advertised content stored locally, on a embedded server. You can always advertise URL from a local network using mDNS, but how to make sure the visitors are connected to the correct local network if you use BLE? I understand it is probably in Google's own interest to promote Internet and force users to remain connected at all time. They're not making money on local content completely disconnected from the Internet.

Also it looks like the main use case is to advertise products and services. I strongly think the web and the Internet of things shouldn't be about consumption and profit only. The P2P Web should reinforce local communities and make people to help each other. It should enable you to connect with local people (It sounds cheesy, I know...). Anyway, the web being what you make of it, I still think the physical web is an interesting project.

Next step

I've started building an app to implement the Physical Web on Firefox OS. It will allow you to read and act as a physical web beacons. At the moment BLE is not implemented on B2G, but it's coming to v3, later this year. So in the meantime, I'm relaying on mDNS.

I've set up one of the physical web beacons to advertise the URL of this blog. I'm carrying this beacon with me most of the time. So if you come across it in the streets of London, you'll know I'm not far away!

Comments