<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>davinci’s notebook &#187; RIM</title>
	<atom:link href="http://stargrads.net/blogs/davinci/tag/rim/feed/" rel="self" type="application/rss+xml" />
	<link>http://stargrads.net/blogs/davinci</link>
	<description>everything is an experiment</description>
	<lastBuildDate>Mon, 21 Mar 2011 18:31:14 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Mock-up of a Yudit-like mobile application</title>
		<link>http://stargrads.net/blogs/davinci/2009/09/mock-up-of-a-yudit-like-mobile-application/</link>
		<comments>http://stargrads.net/blogs/davinci/2009/09/mock-up-of-a-yudit-like-mobile-application/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 02:50:41 +0000</pubDate>
		<dc:creator>davinci</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[programming and technical issues]]></category>
		<category><![CDATA[BlackBerry]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Cangjie]]></category>
		<category><![CDATA[cellphone]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Devanagari]]></category>
		<category><![CDATA[Farsi]]></category>
		<category><![CDATA[g11n]]></category>
		<category><![CDATA[globalisation]]></category>
		<category><![CDATA[globalization]]></category>
		<category><![CDATA[Hindi]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[input methods]]></category>
		<category><![CDATA[internationalisation]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[L10n]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[localisation]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[National Language Support]]></category>
		<category><![CDATA[Native Language Support]]></category>
		<category><![CDATA[NLS]]></category>
		<category><![CDATA[Persian]]></category>
		<category><![CDATA[porting]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[SCIM]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[Unicode editor]]></category>
		<category><![CDATA[Yudit]]></category>

		<guid isPermaLink="false">http://stargrads.net/blogs/davinci/?p=1265</guid>
		<description><![CDATA[
In this post, I describe a brief experiment to write a Yudit-like application for a mobile environment.
]]></description>
			<content:encoded><![CDATA[<p>One application that I always look for in a mobile device is a multilingual dictionary.  If one is not available, I can make do with support for multiple input methods (such as through <a href="http://en.wikipedia.org/wiki/Smart_Common_Input_Method">SCIM</a>), access to the internet, and a decent web browser (one that handles non-Latin fonts and right-to-left scripts).</p>
<p>I often end up using a program called <a href="http://www.yudit.org/">Yudit</a>, a Unicode editor written by Gáspár Sinai, even on a system that has native integrated support for multiple input methods, because it&#8217;s available on a wide range of systems and I&#8217;m familiar with the input methods bundled with it.  For example, even though the same input method is supposedly available on both Microsoft Windows and through SCIM, there may be slight differences in the keyboard layouts that can result in typos if one is not careful.</p>
<p>It seems that the majority of wireless handheld devices ship with only one input method.  Yudit does not appear to run on any of the major mobile operating systems<span id="more-1265"></span>, but it would be overkill anyway, since people aren&#8217;t likely to want to edit entire Unicode documents on their cell phones.  On the other hand, it would be useful to be able to switch input methods, even if only to type a few words into an e-mail, or to look something up in an online dictionary.</p>
<p>In adapting input methods designed for personal computers to cellphones, one immediately runs into the problem that what would have been a single keystroke on a full-sized keyboard becomes a key combination or a series of taps on a keypad.  With the <a href="http://en.wikipedia.org/wiki/Predictive_text">predictive text</a> systems used on some cellphones, one also runs into the problem of <a href="http://en.wikipedia.org/wiki/Predictive_text#Textonyms">textonyms</a>.</p>
<p>I wanted to see if I could port some of Yudit&#8217;s input methods to a mobile environment, so I ignored these problems for the moment and assumed, for the sake of simplicity, that the device had a full-sized keyboard.  I also decided to write a Java <a href="http://en.wikipedia.org/wiki/MIDlet">MIDlet</a>, because these can be run on a number of different mobile platforms.  (Yudit itself is written in C++.)</p>
<p>Even this simplified version of the problem turned out not to be so easy.  I tried using the <a href="http://java.sun.com/javame/reference/apis/jsr037/javax/microedition/lcdui/TextField.html"><code>TextField</code></a> and <a href="http://java.sun.com/javame/reference/apis/jsr037/javax/microedition/lcdui/TextBox.html"><code>TextBox</code></a> classes in the <a href="http://java.sun.com/javame/reference/apis/jsr037/javax/microedition/lcdui/package-summary.html"><code>javax.microedition.lcdui</code></a> package, and while I was able to capture the user&#8217;s input and replace it with the appropriate Unicode, neither class handled bidirectional text very well.  </p>
<p>I tried mixing the Chinese-CJ (Cangjie), Devanagari, and Farsi input methods (used for entering Chinese, Hindi, and Persian text, respectively), and the result was that my little program became very confused.  On some emulated devices, the left and right arrow keys would move the cursor left and right, respectively, while within the Persian text; but on others, the effects of these keys were reversed, as were the effects of the backspace and delete keys.</p>
<p>It would probably take a lot more work to get any of these input methods working properly, but this was only a first attempt, which I wanted to document in case anyone else wanted to try something similar.  Also, it&#8217;s possible that I would have been more successful if I had used UI libraries specific to a company or manufacturer, such as RIM&#8217;s <a href="http://www.blackberry.com/developers/docs/4.2api/net/rim/device/api/ui/package-summary.html"><code>net.rim.device.api.ui</code></a> package, rather than the generic (and hence not as powerful) <code>javax.microedition.lcdui</code> package. </p>
<p>I&#8217;ve included several screenshots of what my little experiment looks like when run on Sun&#8217;s Java ME SDK mobile emulator with a generic device, as well as on RIM&#8217;s BlackBerry emulator with two different devices.  The Devanagari did not render at all on the emulated BlackBerry devices.  There were also some small layout problems, which I didn&#8217;t fix since this was only supposed to be a quick experiment.</p>
<p>Screenshots of experiment on Sun&#8217;s generic emulated mobile phone:<br />
<a href="http://img26.imageshack.us/img26/946/sun1a.jpg" target="_blank"><img src="http://img26.imageshack.us/img26/946/sun1a.th.jpg" border="0" /></a> <a href="http://img25.imageshack.us/img25/5093/sun2g.jpg" target="_blank"><img src="http://img25.imageshack.us/img25/5093/sun2g.th.jpg" border="0" /></a> <a href="http://img527.imageshack.us/img527/821/sun3.jpg" target="_blank"><img src="http://img527.imageshack.us/img527/821/sun3.th.jpg" border="0" /></a> <a href="http://img527.imageshack.us/img527/5495/sun4w.jpg" target="_blank"><img src="http://img25.imageshack.us/img25/1512/sun4x.th.jpg" border="0" /></a></p>
<p>Screenshots of experiment on RIM&#8217;s emulated <a href="http://na.blackberry.com/eng/devices/blackberrycurve8300/">BlackBerry Curve 8300</a>:<br />
<a href="http://img26.imageshack.us/img26/9814/blackberry83001.jpg" target="_blank"><img src="http://img26.imageshack.us/img26/9814/blackberry83001.th.jpg" border="0" /></a> <a href="http://img25.imageshack.us/img25/8673/blackberry83002.jpg" target="_blank"><img src="http://img25.imageshack.us/img25/8673/blackberry83002.th.jpg" border="0" /></a> <a href="http://img26.imageshack.us/img26/9484/blackberry83003.jpg" target="_blank"><img src="http://img26.imageshack.us/img26/9484/blackberry83003.th.jpg" border="0" /></a> <a href="http://img26.imageshack.us/img26/806/blackberry83004.jpg" target="_blank"><img src="http://img26.imageshack.us/img26/806/blackberry83004.th.jpg" border="0" /></a></p>
<p>Screenshots of experiment on RIM&#8217;s emulated <a href="http://na.blackberry.com/eng/devices/blackberrytour/">BlackBerry Tour 9630</a>:<br />
<a href="http://img26.imageshack.us/img26/1907/blackberry96301.jpg" target="_blank"><img src="http://img26.imageshack.us/img26/1907/blackberry96301.th.jpg" border="0" /></a> <a href="http://img26.imageshack.us/img26/5524/blackberry96302.jpg" target="_blank"><img src="http://img26.imageshack.us/img26/5524/blackberry96302.th.jpg" border="0" /></a> <a href="http://img25.imageshack.us/img25/6650/blackberry96303.jpg" target="_blank"><img src="http://img25.imageshack.us/img25/6650/blackberry96303.th.jpg" border="0" /></a> <a href="http://img25.imageshack.us/img25/927/blackberry96304.jpg" target="_blank"><img src="http://img25.imageshack.us/img25/927/blackberry96304.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /></a></p>
<p>Considering the size of the mobile device markets in China, India, and the Middle East, getting different input methods to work in a mobile environment is an important (and potentially financially rewarding) problem to tackle.</p>
<p>&#8211; davinci</p>
<img src="http://stargrads.net/blogs/davinci/?ak_action=api_record_view&id=1265&type=feed" alt="" /><p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://stargrads.net/blogs/davinci/2009/09/mock-up-of-a-yudit-like-mobile-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

