アプリケーションサイズを気にせずにはいられない。

Sdk_request 左の写真はSDK1.5のイベントペインのリクエストタブの内容だが、携帯等の小型デバイス上で動作するアプリケーション開発の際にはアプリケーションサイズを気にしなければならないのが通常だが、もちろんUIESDKでもすぐにアプリケーションサイズがわかるようになっている。

 今日、あるアプリケーションを作成し、DOCOMO携帯で実行しようとしたところ、サイズが大きすぎて ujbc のダウンロードに失敗した。UIEngineの基本動作は次のようになっているが

1.UIEngine本体(UIEPlayer と言うらしい)をダウンロード 約30K

2.UIEPlayerがアプリケーション本体 ujbc ファイルをダウンロード

3.UIEPlayerが ujbc の中身を解釈しながらアプリケーションを実行

アプリケーションサイズが大きすぎる、つまり、2でダウンロードされる ujbc ファイルが大きすぎると、ダウンロードが途中で停止してしまい、後はうんともすんとも言わなくなってしまう。開発SDK上ではそれがわからないので、DOJAのエミュレーターで走らせて見るか、実際に携帯で実行してみるか、しか、今のところ確かめる方法は無いようだ。

 誤って、サイズが大きすぎる ujbc を配信側が作り検証もせず公開することも考えにくいが、UIESDKから実際の動作チェックまでの流れが作業ベースでちょっと面倒かもしれない。UIESDK2.0ではEclipseベースになるので、そのあたりの拡張も容易になるだろうが。

 さて、今日作成したアプリケーションに話を戻すと、アプリケーション画面中にマスを100個近く表示する必要があり、それを<template>を使わずに実装したのが問題だった。Inside UJMLを読むとわかるが、配列で実装した<stateを>を<template>化することでアプリケーションサイズを小さくする方法が掲載されている。

 比較的大きめのものを作るようになると、Inside UJMLに書いてあるようなtipsが必要になってくるのだろう。日本語化されることを望むが、それはまだ先のようだ。

DojaPTSでアプリケーションを配布する際の注意点!バージョン番号はしっかり変えよう。

Build_settings  DojaPTSでDocomo携帯向けにアプリケーションを配布する際の注意点がある。

 例えば一度配布したものの、何かの理由で修正し再ビルドし配布し直す場合だが、ビルドの設定(左画面)で、applet_versionを必ず変更する必要がある。

 applet_versionをそのままにすると、既に携帯電話にダウンロードしてあるユーザーのアプリケーションが正しく更新されないことになる。自動的にインクリメントしてくれると助かるがそうなっていない。今後のSDKには開発の生産性を向上させるアイデアだけでなく、実際のサービス配布も視野に入れたアイデアも盛り込んで欲しいものだ。

 現段階ではそのあたりは開発者・配布者が意識してしっかり管理する必要がある。

アプリを簡単にサーバー上に公開できるのは便利だが、それで満足して良いのか?

Build_multiple 無償で公開されているUIEngineのSDKには、作成したアプリケーションをサーバーにアップロードし公開できるツールが、これもまた無償でついている。UIEvolution社はアップロード用サーバーも無償で貸している。よくよく考えてみると、このようなSDKは世界初ではないかと思う。すばらしい。

 このツールの便利さには以前も何度か触れているが、最近、「?」と感じたことがある。

 例えば、一度に同じアプリケーションを異なる二種類以上のデバイスに対し公開したい場合がある。「JavaApplet」と「Docomo携帯」といった具合だ。

 SDK上ではこの二種類のデバイスを同時に選択し、ビルド&アップロードを行うことができるが、サーバーにアクセスするためのURLは2つ自動生成される。もし、三種類のデバイスを選択すれば、3つ自動生成されるだろう。100種類のデバイスを選択すれば、100個のURLが生成されるはずだ(実際はそんなに選択できないが)。

 勘のよい方はお気づきだと思うが、この仕組は極めて不便だ。アプリケーションを公開する側が、各端末ユーザー別に、「このURLにアクセスしてください」と送らなければならない。あるいは、振り分け用のサーバースクリプトを1つ自前で用意し、デバイスを適宜判断し、適当なURLにリダイレクトする仕組を用意するのだろう。

 この仕組は間違っている。

 簡単に言えば「1つのURLで複数個のデバイスに対応できるように、サーバー側を賢くすべし。」ということだ。

 UIEvolution社のCEOである中島氏は「パーベイシブなアプリケーション」の実現をビジョンとして掲げていらっしゃるが、「パーベイシブ」にするためにはアプリケーションの配布元を一点に集約すべきであり、サーバー側を賢くすべきだろう。

 ということで、改善要望を出してみた。

UIESDK2.0がようやくリリースされた Eclipseベースの開発環境、その使い心地はどうか?

Uiesdk2 まだベータ版だが、開発環境としてはまだまだ改修の余地ありだ。

ダウンロードはこちら

 もともとSDK1.5ではデバッグ環境のみあった。2.0でもその思想を受け継ぎ、デバッグ環境としては機能が充実している。コンパイルエラーの場所にすぐにジャンプできるところはありがたい。

 2.0で新たに追加されたエディター機能はお世辞にも良くできているとは言いがたい。ただのエディターだ。

 また、PushToPublishの機能(ワンクリックでサーバーにアプリケーションをデプロイできる機能)も若干使いにくくなった感がある。

 インストーラー自体が100MB以上あることや、メモリー使用量が多いこと等、UIEngineの思想の真逆を行くこのSDKが何とも憎めないが、開発環境としてはもう少し洗練する余地があるだろう。

 デバッガー自体にも若干バグがあるようだが、SDK1.5での開発環境のように

・デバッガー+PushToPublish機能→SDKで
・エディター→お気に入りのエディタで

という組み合わせが開発環境としてはベターだろう。

 ところで、Eclipse標準の設定にはエディターとして外部エディターを指定できたはずだが、どこでやるのだろうか?その設定があるだけでだいぶ変わるのだが。

 それから、PushToPublish先のサーバーに自分のサーバーを指定できるようにして欲しい。

 これらの提案は開発者フォーラムに投げておこう。

アプリを開発するために必要なSDKのインストール その2 環境変数JAVA_HOMEを設定して起動可能にする。

さて、前回はインストール成功したものの、起動に失敗した。

<前回の最後の話>ここから

Install_004_warning_setjavahome_2

スタートメニューから「UIEデバッガー起動」を選ぶと
---
You must set the environment variable JAVA_HOME to the root directory of
your JDK installation; for example:
set JAVA_HOME=C:\J2SDK1.4.0
---
とコマンドウィンドウに表示された。

どうすりゃいいんだ?次回に続く。

</前回の最後の話>ここまで

これは、「Windowsの環境変数にJAVA_HOMEというものが正しくセットされていないから、セットしてください。」ということだ。

環境変数については説明を省くが、どんな環境変数が設定されているのか見たいときは、コマンドプロンプトを起動して

・「スタートメニュー」の「ファイル名を指定して実行」で"cmd"とする。
・「ウィンドウズボタン」+「R」で、実行ウィンドウが開いたら"cmd"とする。

C:\> set

というようにすれば、良い。下の画像は結果の例。ABC順に設定されている環境変数が一覧されるので、確かにJAVA_HOMEが指定されていないことがわかる。
Install_005_setresult

環境変数を設定するには、「システムのプロパティ」の「環境変数」で行う。手順は次の通り。
Install_006_systemproperty
1.「マイコンピュータ」を右クリックし、「プロパティ」を選択する。
2.新しいウィンドウ「システムのプロパティ」が開くまで待つ。
3.「詳細」タブをクリックする。
4.「詳細」タブの「環境変数」ボタンをクリックする。
5.新しいウィンドウ「環境変数」が開くまで待つ。
6.「システム環境変数」の「新規」ボタンをクリックする。
7.新しいウィンドウ「新しいシステム変数」が開くまで待つ。
8.変数名*1、変数値*2を入力し、「OK」をクリックする。ウィンドウが閉じる。
9.ウィンドウ「環境変数」の「OK」をクリックする。ウィンドウが閉じる。
10.ウィンドウ「システムのプロパティ」の「OK」をクリックする。

*1:"JAVA_HOME" とする。(ダブルクォーテーションは入力しない。)
*2:JAVAをインストールしたディレクトリを書く。
  例:"C:\j2sdk1.4.2_08"

環境変数の設定が完了したら、スタートメニューから「UIEデバッガー起動」を選択して、起動する。

無事、起動できた。下図。
Install_007_started

アプリを開発するために必要なSDKのインストール

説明に使う環境:
・Windows2000Server ServicePack4
・Java1.4.2_08-b03インストール済み
・ブラウザはFireFox1.5

SDKの対応環境は↓(ダウンロードページから転載)
対応OS: Windows 2000およびWindows XP
必要追加ソフトウェア:Java 2 Platform, Standard Edition, (J2SE) SDK 1.4.2もしくはそれ以上

Install_001_1
SDKダウンロード・ページよりSDKをダウンロードする。

現在のバージョンは SDK1.5.2

Install_002_1

インストーラーのサイズは17.9MB、USにサーバーがあるのか、ダウンロードに結構時間がかかる。待っている間はコーヒーでも。

0_gogo_1 ダウンロードしたらインストーラー(uiesdk_1.5.2.exe)を実行する。

Install_003_install_start_1

利用規約に同意し、「次へ」「次へ」「次へ」っとクリックしてインストールが完了。

Install_003_install_finished_1

スタートメニューから「UIEデバッガー起動」を選び実行すると

Install_004_warning_setjavahome_1

---
You must set the environment variable JAVA_HOME to the root directory of
your JDK installation; for example:
set JAVA_HOME=C:\J2SDK1.4.0
---
とコマンドウィンドウに表示された。「続行するには何かキーを押してください。。。。」と書いてあるので、何かキーを押すが、ここでデバッガーの起動は停止する。

0_hatena どうすりゃいいんだ?次回に続く。

#「もし、英語が理解できなかったら」、と思うとぞっとする。

作ったプログラムをJavaApplet形式で配布する。push to publish はちょっとクールな仕組!

Build_appletSDKには、作ったアプリケーションをワンクリックでJavaAppletとしてWEB上に公開する仕組がある。これは便利だ。本ブログでは、この仕組を使用して「UJMLサンプル」シリーズを公開している。今回は、この使い方を紹介する。

◆1.ビルド条件の設定をする。

メニューから「ツール」→「設定」を選択する。

「デバッガの設定」ウィンドウが開くまで待つ。

「デバッガの設定」ウィンドウの、「ビルド」タブをクリックする。

「選択可能なターゲット」の一覧から「Java AppletPTS」をクリックし、選択された状態を確認したら、「有効」ボタンをクリックする。「アクティブなターゲット」に「Java AppletPTS」が表示されていればOKだ。

そのまま、プロパティのmain_file_name及び、package_nameを変更する。以下、変更例

main_file_name:ujmlのファイル名を拡張子無しで記入(※デフォルトで設定されるようにしておいて欲しいが手で設定する。)
package_name:何でも良い。これが、作成されるHTMLのファイル名になる。

その他、必要があればサイズを指定するwindow_width及びwindow_heightを変更する。

設定が完了したら「OK」ボタンをクリックする。

◆2.ビルドする

メニューから「ツール」→「ビルド」を選択する。

「Java AppletPTS ビルド中」ウィンドウが開き、ビルド完了するまで待つ。
※ビルドが完了すると進捗率が100%となり、メッセージウィンドウ内にFinished.と表示される。

最後の方で表示される、URL(http://pts.app.uievolution.com/で始まるもの)が公開されたURLだ。

----例:
File Uploader response:
103
http://pts.app.uievolution.com/pubserv/vfs/1811/com.uiengineda.samples070.html
Application saved
Completing...
Finished.
----

以上で、公開完了である。

実はコンパイルしたujmlのあったフォルダにbuildというフォルダが作成されている。その中にコンパイルされたujbcファイルと、UIEPlayer(JAVAApplet版のjarファイル)が入っている。これを、自前のWEBサーバーにアップロードしてもOKだ。uievolution.comのサーバー以外に配置したいときはコンパイルされたファイルを直接アップロードすることができる。