Dropbox

本命のプログラム作っていて改行とバックスペースが効いているのに気づきました。
で、昨日のキーコード表示プログラムを眺めてると、あまりに単純なバグがありました。修正版のV1.1の発行と相成りました。結構、恥ずかしいです。よくあることとは言え、こんなんで大丈夫なんだろうか、、、

http://www.nkozawa.com/html/E61MyProgList.html
新しいファイル名はKKeyCC11.zipです。

NOKIA E61のフルキーボードのキーを押した時にどんなキーコードがMIDPのプログラムで得られるかを調べるプログラムを作りました。CanvasクラスのkeyReleaseイベントで得られるキーコードを16進数で画面に順次表示していくものです。おそらくはプログラマー以外の人には何の意味も無いものです。MIDP1.0が動くデバイスであれば、どんなものでも動くはずです。

以下のurlで公開しています。ファイルKKeyCC10.zipにソースコードと実行コードが入っています。実行コードは展開してbinディレクトリーに入っているKKeyCodeChecker.jarです。

http://www.nkozawa.com/html/E61MyProgList.html

結果として分かったのは、取得したかったEnterとかバックスペースのキーコードは得られないということでした。その他にもキーコードの得られないキーがいくつか、、、

試しにSonyEricssonのP910cでも実行してみました。なんとフルキーボードは、この方法では全く役立たずでした。TextBoxなどのOSの部品を使うような場合は、当然大丈夫でしょう。

S60-3-MIDP.jpgNOKIA E61のプログラミングは手馴れたところから始めようとJava MIDPのSDKを導入しました。手馴れていると言ってもMIDPのプログラムはひとつしか作っていません。当然、そのプログラムは問題なくE61でも動きました(JASJARでは動かすのに苦労した)。ちょっと驚いたのはP910c(おなじSymbianですがUIQのデバイス)に比べてプログラムの立ち上がりが比べ物にならないほど速いです。またE61では数多くの新しいAPIが搭載されているので、多彩なプログラムをMIDPで書くことが出来そうです。

まとまりなく雑然と感じたことを書いておきます。

SDK付属のエミュレーターは言語切り替えによって Chinese, Japanese, English, Thai に切り替え可能です(C++のSDKのものは切り替えがうまく行かないです。わたしが何かミスしてるのかな?)。

Carbide.jというプログラムでプロジェクト管理等を行います。標準MIDPの開発環境のKToolbarと同じようなものです。エミュレーターも含めて、とても重いです。わたしのThinkPad X30では、ちょっと苦しい。

Eclipse等のIDEに自動的にPlug Inを組み込んでくれます。よって普段はEclipseを使えば良いようです。ただし一部の機能はCarbide.jにしか用意されていないようです。

S60にはPersonal Profileは無いみたい。MIDPだけだとClipboardとかに直接文字をコピーすることは出来ないでしょうね。Clipboardに文字をコピーしている別のプログラムを見たのですが、ちょっと回りくどい手順を利用者にとってもらわないといけないみたい。

広州の夜は更けて

mobileGear.jpg
広州に出張に来ています。これが出張の全装備です。短い出張なのにちょっと重装備で反省中。ちょっと前までは、荷物をいかに少なくするかということに美学を感じていました。モバイル機器も、そのためのツールだったはずなのに、現状はこの有様です。

今回初めてモバイル無線ルーター(写真左端)を持参しました。以前は、その存在意義さえ疑っていたのですがJASJAR (HTC Universal)で使用するために購入しました。実際使ってみると便利なことこの上なし。テレビの見えるテーブルにThinkPadを移動してワールドカップ見ながら仕事しています。

モバイラーな方には、改めて言うまでもない新しいモノが写真に写っています。reveilさんが仕事にかこつけて仕事のついでに広州まで運んでくださいました。まだ、ちょっと触っただけですが何か出来の良さをしみじみ感じます。美しいレストランでフカヒレ料理を楽しみながらのモバイル談義も楽しかったです。多謝!

S60-3JP.jpgS60 3rd editionのSDKの中に日本語版が独立して存在しています。他のものは、ひとつのパッケージでLanguageの切り替えを行いEnglish、Chinese、Thaiに変更します(ほんとに切り替わっているかどうか今ひとつ分からない)。また、この日本語版を選んでCarbide c++ Expressのプロジェクトが何故か作成できません。

さすがに日本語版SDKのエミュレーター、英語版では豆腐だらけだった、このブログもちゃんと表示できます(UTF-8以外の文字コード試すのは忘れました)。またSMSの作成画面に入ると右上の文字の種類に漢字と表示されます。エミュレーターの中のテンキーを押すと平仮名が入り漢字に変換できそうです(まだ、今ひとつ操作方法が分かっていません)。そこでPCのキーボードを叩いてみると、漢字モードにも関わらずアルファベットが入ります。このエミュレーターは、一般電話型であってE61のものではないってことなんだと信じたいと思います ^^;)

Nokiaからのメールで知ったのですがWebブラウザーがオープンソースになっているそうです。

http://opensource.nokia.com/projects/S60browser/

これがE61とかに既に乗っているのですかね? まだ、その真意とかメリットについては良く分からないです。何となくWebCoreとかJavaScriptCoreという部分にすでにオープンソースになっているのものを取り込んだ結果、全体をオープンソースにせざるを得なかったという感じでもあります。まぁ、でも何かしらのかたちでソースコードが見えるというのは、趣味プログラマにとってはありがたいことです。

暇を見つけてはSymbian OS v9とS60 3rd editionのドキュメントをあさっています。
フォントの置き場所が変わったよという文書を見つけたので備忘録代わりに、ここに書いておきます。

Symbian FAQの How do I automatically install font files on Symbian OS? によると、
v9より前は \system\fonts\ だったのがv9からは \resource\fonts\ になったとのことです。そのほかにもOpen Font SystemのもとTrueTypeとかもサポートしているそうです。

しかし、実践がともなわないと、ちょっと寂しい。

ちょっと前から今使っているP910cの次はNokiaかなと考えていました。一時期はWindows Mobileで統一しようかとも思っていたのですがスマートフォンを始めた限りNokiaは避けて通れないです。特にE61など写真で見ただけで心が躍ります。で、本題ですが、とりあえず開発環境を調べておこうと思い立ちました。

一年前にSymbian+UIQの開発環境を作った時には、それ自体がTipになりそうな感じでした。CodeWarriorとC++BuilderXを買えば別だったのかも知れませんが、密かにサポートされていたVC6を使っていたのでSDKのヘルプだけが頼りみたいな状態でした。そんな感じなのでHello World止まりで、いつしか興味はWindows Mobileに移っていました。

NokiaのサイトでS60 3rd Editionの開発環境を調べたところ、無料のIDEパッケージCarbide.c++ Expressが一番最初に紹介されています。実際には、よくよく調べるとVisual Studio2003ベースのものも見つかります。ここは迷わず無料の物を導入しました(VS2003持ってないし)。これはJavaの開発環境として定評のあるEclipseをベースにしたものです。まだ使ってはいませんがIDEとしての出来は疑う余地がないと思います。これとS60のSDK、それにActivePerlを導入すれば開発環境は完成です。

とりあえずCarbide.c++ Expressが立ち上がることを確認しただけですが、一年前のUIQの時のことを考えると比較にならないくらい楽でした。最初は、下調べくらいに思っていたのが導入まで出来てしまいました。資料によるとCarbide.c++ ExpressはUIQもサポートしているようです。Sony Ericssonのサイトを見てみましたが、相変わらずCodeWarriorとかC++BuilderXとか書いてあります、何故なんでしょ。去年、どこかで将来はEclipseベースの開発環境になるって読んだのはソニエリのサイトではなかったかなぁ(勘違いかも)。

あとS60 3rd Editionに含まれているEmulatorは普通の電話の10キーが付いたやつでした。E61みたいなフルキーのEmulatorは無いのかな? PCのキーボードで代用できるってことかも。まだ色々な資料にまともに目を通していないので、いずれ疑問は解けるのでしょう。