Headline About TechLog Download Java VBA Link

January 29, 2008.

オフィシャル登録完了


アプリ★ゲットさんからオフィシャル登録完了の連絡をもらいました。結局自分の中で引いたプロジェクトの線表から半月遅れとなってしまいましたね。どっちにしても英辞郎を販売しているアルクさんに正式な許可をもらおうと思っているので、一般公開は思い切って2月末ぐらいにするかもしれません。

 

取り合えず現状のα版を携帯に転送して試してみたところ、無事機能しています。これで一気にモチベーションが上がりました。追加予定の機能が一つ。あとはデザインをどうするか。可愛くする予定だったけど、思ったより動作が軽快なので、このまま機能や性能で勝負しても良いのかなぁと思ってみたり。機能と性能で勝負する気が無いプログラマはちょっと問題だぞ!とか言いつつ、本当はそんな事思ってません。デザインがよければ、細かい機能・性能なんて瑣末な問題なのです。まぁ、適当に落とし所を検討しましょう。

 

どちらかというと目下の課題はコンバータの方。辞書データを携帯で読み取りやすいよう、分割整形するツールなのですが、今のプロトタイプはJavaでできています。でもね、一般人ってJavaの実行環境を自分でインストールして整えられるのかなぁ??CやVBでexeを作って配布すべきでしょうか?Java以外の言語はさほど得意では無いので、携帯アプリ本体よりそっちに工数がかかってしまいそうです。Excelマクロ版なんかを作っても良いのかもしれませんが、パフォーマンス悪そうなんで変換に時間がかかりそうだし、あまりMSの肩を持ちすぎるのも...。いずれにせよJava版は確実に公開します。UnixやMacしか持って無いSoftbankユーザにも利用可能ですからね。

 

 

【携帯アプリのイベント処理】

通常のアプリケーションを開発する場合、ボタンなどにイベントリスナをセットし、リスナのactionPerformed(Event e)の中などでEventにあわせた処理を実装する。イベント始動の処理は即時復帰する必要がある(そうで無いと次のイベントが処理できない)し、再描画に問題が発生するため、SwingアプリなどではinvokeLater()などを用いて、別スレッドで処理を行なうよう設計する。

軽い処理しか行なわない場合(うちのBadminton Scorerがそう)、面倒なのでイベント内で全処理を行なう。FormではなくCanvasアプリなので、描画に必要な情報を更新→repaint()と実装することとなる。辞書アプリも今のところこの方式で大丈夫そうなので、手を抜くつもり。

一方、ゲームなどを作る場合、再描画は一定時間ごとに行なわれる必要がある。したがって、イベントによって処理するのはキーの押下状態フラグを切り替えるだけとし、TimerかThreadで作成したタイマースレッドにより、情報更新()→repaint()という処理を呼ぶようにする。この際、常に一定時間sleep()して次のコマの処理を行なうようにすれば、遅延はあってもコマ落ちの無いアプリができるし、実時間との比較によりコマを決めて、処理が間に合わなければ一つ飛ばすようにすれば、コマ落ちはするが、リアルタイムなアプリが作成できる。シューティングゲームを作るなら前者の手法だし、時計を作るなら後者にしないとどんどん時間が狂う。


名前: 意見: パス:

※パスにはこの日記のタイトルをコピペして下さい。


January, 2008
SUN MON TUS WED TUR FRI SAT
12345
6789101112
13141516171819
20212223242526
2728293031