Dropbox

E90でキー入力で不思議な点があるとは最初から感じていたのですがE71で少しテストをする機会を得て、その正体が分かりました。たまたま、そのE71の入力が中国簡体字になっていたので気づいたのですが一部の記号キーからユニコード(UTF-16LE)の記号(文字幅が全角相当の記号)が入力されていました。私のE90も同様で簡体字入力にすると一部の記号キー(全てではないのが何とも)UTF-16LEで入力されます。

これで不都合なのは+JやKKJConvなどで一部の記号や句読点、長音が入力出来ない点です。実はE90の場合はCtlキーを併用すると入力出来ていたので、あまり深くは考えていませんでした。まさかUTF-16LEのコードが発生しているとは思いませんでした。

以下E90で入力される主なUTF-16LEな記号キーです。

記号 / キーコード
! / 0xFF01
” / 0xFF02
, / 0xFF0C
– / 0xFF0D
. / 0xFF0E

MIDPから見たキーコードですが+Jで同じキーが入力出来ていないのでNativeな環境でも同じと推測されます。他にもあるかも、、、

KKJConvでは、これらのコードは今のところ捨てられています。対応するASCIIコードの記号にマッピングするのが適当な処理と思われますので、その方向で対処しようと考えています。

Pyhton使いの人には今更な話ではありますが、、、

とあるアプリーケーションの都合でSQLeit3のデータベースを作り込むことになり、 最初は手慣れたPerlを使うつもりでした。ところが私の開発環境であるMac OS X Leopard上でCPANがうまく動かず必要なモジュールが組み込めませんでした(ソースを取ってきてもperl Makefile.plでエラー、CPANの不具合と根は同じかも)。で、調べてみると最近のPythonには標準でSQLite3のモジュールが付いているとのこと。因みにPythonはMac OS Xに標準で組み込まれています。

斯くして、にわかPythonプログラマーは誕生しました。といっても、テキストファイルを読み込み必要な部分を切り出してSQLite3のDBに仕立てるだけなので、サンプルコードに手を少しいれただけで出来上がりました。

もともとS60でのPythonが元気が良くて興味を持っていたのでPythonチュートリアルという教科書を一つだけ持っていました。これも、軽く流した程度です(訳者まえがきに、読者のレベルにより、どの辺りを読めば良いかのガイドがあるのが親切です)。後はグーグル先生のおかげで必要な情報は得られました。まだ、自分の必要とした部分しか資料も読んでいませんが、それがスクリプト言語らしい使い方かもしれません。

SQLiteも手軽で良いです。ちゃんとしたSQLが使えますが、他のDBエンジンと違いサーバーが動いているわけではありません。Pythonなどの処理系の中だけで動くものです。それだけに単独で使用する場合には余計な手間が必要なくお手軽に使えます。有る程度まとまったデータを保管するときに、今までだとフォーマットを工夫して自前でファイルに保管していましたがSQLiteを使うとコード量がかなり減らせそうな気がします。

余談ですが、Pythonチュートリアルの表紙の蛇の絵が家内に不評で表紙を裏返して使っています。

実は、まだ一行もコードは書いていません。そんな状態で何かを人に勧めるなどおこがましいのですがObjective-Cの解説書の紹介です。もっとも選択肢の少ない状態ですので、私がお勧めなどしなくても良いのも事実です(はっきりとブログネタ切れと言え>自分)。

iPhoneとMac OS XのプログラミングにはObjective-Cという物を使います。始める前からC++と違うので面食らうみたいなことは聞かされていました。実際、本を読み始めると頭がくらくらするほどです。 細かいことは書きませんが全く別世界です。

iPhone SDKをダウンロードした人は、おそらくサンプル・プロジェクトを眺める所から始めると思います。ここで有る程度の知識が無いとmainを読むことさえままなりません。とりあえが何かしらObjective-Cのドキュメントを読むことをお勧めします。

ADCのiPhoneのページにもObjective-C: A Primerという文書がありますが、これでは全然足りません。その中にリンクされている”The Objective-C 2.0 Programing Language”くらいを読み通す必要があると思います。これは英語ですしボリュームもかなりあるので、日本語で読める本が楽で良いです。実のところ本屋さんでObjectve-Cに書かれた本は、上の写真のObjective-C 2.0しか見かけませんでしたので他の本との比較は出来ませんが、とても分かりやすい本だと思います。これからiPhoneのプログラムを書こうという人は購入を検討して損はありません。

昨年、初めてのS60 3rdプログラムとして公開した簡単なゲーム「サイモン」のソースコードの改訂版を普通的生活工作室のサイモンのページにアップロードしました。

機能的な変更はありません。ソースコードを見直してサンプルとして不適切な部分を変更したものです。したがってバイナリーの方は変更していません(ソースのZIPには含まれています)。

主な変更点は、

  • ローカル変数にもかかわらず変数名の最初がiで始まるものがあった(iで始まるのはクラス変数です)ので変更。
  • タイマーの停止でActive ObjectのDoCancel()を呼んでいた。これは禁止事項です。代わりにCancel()を呼ぶようにした。
  • FsSessionを新たにオープンする代わりにCCoEnv::Static()->FsSession();を使用。

です。もし、S60 3rdのサンプルコードとして、これを利用される場合には新しいsimon120.zipをご利用ください。

PiClipでお馴染みのあやまどりさんの所で知りました(タイトルも拝借)。

PicClipと同様MIDPによる10キー端末の漢字入力システムでツータッチ入力を採用したTTInputというプログラムが「TTInput 開発日記(仮名)」にてプレビュー版として公開されています。

一時期KKJConvに10キー入力を搭載しようと考えていた事があります。その時、どうせなら普通の携帯打ちでは無い方法をと頭をひねって考え出した物が結局の所、ツータッチに似た方法でした。ということもあって、どのように実装されているかと早速TTInput 0.0.1をダウンロードし705NKで試してみました。今のところ私の環境では漢字変換が出来ていませんがツータッチの入力方法を体験することは出来ました。メニュー構成や設定画面なども良い感じです。また記号入力画面での10キーの使い方なども効果的で参考になります。

PiClip, Qiiと並んで海外版10キー端末でのMIDPによる日本語入力の新たな選択肢となりそうな予感です。

PS. KKJConvの10キー入力ですが、やるとなると予測変換もどきが欲しいとか、普通の携帯打ちはイヤだとか色々考えているうちに中断中です。まぁ、一番の原因は私がQWERTYキーボードでしか文字入力したくないと思っていることかも(10キーデバイスは705NKしか持ってないし)。

追記) 漢字変換出来ました。単純に操作の問題でした。

以前S60の数少ない日本語によるアプリケーション開発のための情報源として紹介したPC Viewの「S60アプリケーション開発ガイド」に久しぶりにアクセスするとPC Viewは11月30日をもって閉鎖しましたと表示されます。一部の情報はNTT PCの公式サイトに移転するようなことが書かれていますが、そちらを見ても全然要領を得ません。

とりあえずGoogleのキャッシュで内容を見てみようと検索したところ何やら移転先らしいURLが見つかりましたのでリンクを張っておきます。

E61の初期のファームでEmakiを使っている時に最初に気がついたのですがエディターに文字をペーストするとプログラムが落ちます。その時は深く考えなかったのですが、自分で作ったプログラムでも同じ現象が発生したので調べたところKIS000354 – Application panic when using Ctrl+V (paste)という文章がForum NOKIAで見つかりました。

E61ファームウェア・バージョン1.0610.04.04でエディターにpasteするとWSERV 66というpanicが発生する。それでSolutionの所にはなんとSwEvent capabilityが必要と書かれています。うーむ、バグのwork aroundでcapabilityの付与とは、、、 まぁ、本当の対策はファームの更新なんでしょうね。

Android Emulator Screen

Googleの携帯電話プラットフォームAndroidのSDKがダウンロード出来るようになっています。とりあえず、という感じで入手してみました。

エミュレーターでブラウザーを動かしたのが左のスクリーンショットです。

Androidのデモビデオを見た感想がNo Mobil, No Lifeで述べられています。まったく同感です。

エミュレーターは簡単に動くので多くは語りません。興味のある方は試してみてください。SDKをダウンロードし適当なところに展開し、toolsフォルダーのemulator.exe(Windowsの場合です)を実行するだけです。SDKのダウンロードに当たって登録などもありません。

感心したのはSDKがWindows, Mac OS X, Linux(i386)の三種類用意されていることです。開発環境のためだけにWindows機を用意している人たちも多いことですし、これはウケが良いでしょう。

E90 Emulator Test

S60 C++ SDK向けにEseries SDK Plug-inが11月1日にリリースされました。これによりE61やE90向けのアプリケーションのテストが容易になります。

さっそく導入して試してみたのが上のプログラムです。E90の横長画面を生かして左半分にリスト、右側にエディターを配置してみました。余談ですが、これがS60 UI designの作法に則っているかどうかは不明です。おそらくE90の組み込みアプリケーションでリストの右に情報が表示されるものはPreview popupという別の手法を使っています。

E90 Emulator Japanese Mode深い意味はありませんが、Emulatorを日本語モードにすると、まだ見ぬE90日本語版?

このモードで上のプログラムを走らせるとAKNFEPでパニックになってしまうのは何故だろう?

E61 モードのエミュレーターもあって、キーボードもE61風のものになっています。

それにしても、私の本物のE90は何時になったらやってくるのか。eXpansysのE90在庫状況が本日再び20個になっていますので、少しは期待できるかも。

Nokia S60 3rdアプリケーション開発に必要な情報源のまとめです。C++を知っていてもSymbianのソースコードを見ると面食らいます。UIに関しては違ったプラットフォームで開発を始めるときには、それなりの準備が必要です。ということで、S60 3rdでプログラミングを始めたばかりの私が参考にしている情報源の紹介です。

[ Symbian OS/C++ プログラマのための Nokia Series 60 アプリケーション開発ガイド ]
私にとっては、ほとんどバイブルと言っても良いでしょう。高いですが、その値段に見合う価値があります。対象はS60 2ndなので、S60 3rdとの違いを別の情報で補う必要があります。ただしAPI、フレームワーク等「中身」に関しては、ほとんど差がないのでサンプルコードもルーチン単位では活用可能です。

文中のサンプルコードのダウンロード先URLが既に存在していません。サイモンを書いていた頃は仕方なく本文中に出てくるコードのみを参考にしていましたが、本文読んでいると後はコードを見れば分かります、みたいな所も多く困っていました。探してみたらForum Nokiaのココにサンプルコードが置いてありました。

[ DIGIらいふ〜スマートに行こう!〜 ] wikiサイト
M-FEPのま〜さんのwikiサイトです。Symbianの開発情報がまとめられつつあります。開発環境の構築手順、ケイパビリティと認証、開発者証明についてなど必読です(苦労の跡が伺えますm(__)m)。

[ PC View – S60アプリケーション開発ガイド ]
S60の開発を解説した連載ものです。S60 2ndからS60 3rdへの移植に関する情報は貴重です。

[ Symbian OS開発の勘所 ]
S60ではなくSymbianを解説した連載です。最初に書いた「面食らう」部分を分かりやすく独特な口調で説明しています。モバイルデバイスを以下に堅牢に作り上げていくかというSymbianの思想を学ぶのに最適です。

[ Forum Nokia ]
ご本家です。SDK等の入手先でもあります。押さえておくべき所はForum Nokia WikiDeveloper Discussion Boardsでしょう。Googleで検索してもこの二つに行き着くことが多いです。

[ NewLC ]
S60に限らないSymbianの情報源です。コラム、サンプルコード、フォーラムなど幅が広いです。Symbian Signedの変更などもかなり前に情報が掲載されていました。

[ Google Code Search ]
ソースコード専門の検索エンジンです。すごく役に立ったというわけではありませんがS60のAPIとか検索かけて、それなりにコードが見つかります。

[ SDK ]
SDKにも色々と情報が付いてきます。SDK Help以外にもSDKを導入したディレクトリーにPDFドキュメントやサンプルコードが沢山入っています。SDKのバージョンによって内容は様々です。

[ 普通的生活工作室 – Crabide.c++のメモ ]
最後に私個人の覚え書きを紹介しておきます。