新しい記事を書くことで広告を消すことができます。
UIE SDK 2.2はWYSIWYGで各種デバイス向けアプリケーションを作成できる(Young risk taker.)
展示会でデモが公開されていたので知っている人もいるかと思うが、UIEvolution社が開発しているUIE SDK 2.2(仮)が興味深い。様々なデバイス向けのアプリケーションをGUIで簡単に作成できるツールで、xcodeのInterface Builderのような機能を提供する。(Wednesday, August 01, 2007 Posted by 7:29 AM)情報遅いよ、何やってんの!
と言う声が聞こえてきそうだが、
このブログにあるUIE SDK2.2は事実だろうか?
確かにここのところUIEに関するデモを見に行ってない。
事実ならば、さぁ早く出してくれと言ったところだ。
ついでに、Flash版UIEプレイヤーも出して欲しい。
そして、作ったアプリ+プレイヤーをブログパーツ化する仕組みを提供して欲しい。
手順はこんな感じで。
- UIEにデベロッパとして登録する
- 作ったUIEアプリをサーバにアップする
- UIEデベロッパ向けのMyページにアクセスする
- 作成したUIEアプリ一覧から、さっきアップしたアプリを選択
- 「ブログパーツを作成する」ボタンを押す
- コードをブログに貼って動かす
- UIEアプリをパブリッシュする
- パブリッシュのメニューに「Flash 9用」「Flash Lite2用」とかのメニューがある
- UIEアプリが、アプレット形式ではなくswfファイルできてくる
- ついでに、ブログパーツ用のHTMLコードが吐かれる
- 自分のサーバにswfファイルをアップし、コードをブログに貼って動かす
って気もする。
最近触れてないから知らんのよ。
久々にUJMLをいじってて、
ちょっとRecordSetについて知りたくなったんですが、
折角UJMLの情報源として開設されたであろうUIEngine/UJML Wikiの、
肝心のRecordSetの項目が
UIEvolution Developer Blogで公開されている、サーバークライアントでのデータを簡単にやりとりする仕組み。これだよこれ。
日本語による説明はUIEngine ださんの以下のエントリに詳しい。
UIEngine だ: UJMLサンプル137:RecordSetサンプルの超簡易サンプル
http://uiengineda.blogs.com/uiengine_/2006/07/ujml137recordse.html
参ったね。
「UIEngineだ」見れないと使えないときた。
は、早く復活してくだされ〜
でも、復活しても構成変わって、
やっぱ意味無かったみたいな話にも、
なりかねない。
UIE Japanさんは、
トラックバック・ステーションも結構スパム放置気味だったり、
Wikiも公開後1月22日以降は放置だったり、
「修羅場ってた」らしいと言う話だったり、
結構大変な職場なんでしょうかねぇ?
それとも放任主義?
UIE Developer’s Forumに、
UIEngineださんが1月14日にポストした内容を見たんですが、
それによると、
On SDK2.1, running an application.とのこと。
While edit-box is opening and it is edit mode, when I click button "one" on emulator, the event <key>1</key> is catched.
Is it the expected action?
要するに、
「Editボックスを開いてる間に、エミュレータの”1”ボタンを押すと、
キーイベントが拾われるんだが、いいの?」
ってことですな。
返信が、
Could you post some example code please? I'm not exactly sure what wyou mean by "while edit-box is opening". Maybe the state transition containing the edit-box hasn't become active yet. Sounds like it could be some kind of race condition.「言ってる事がよくわからん。サンプル貼ってよ」
で止まってました。
で、気になったんで調査してみました。
とりあえずForumの内容によれば、
テキスト入力中にエミュレータの画面の「1」を押すと、
イベントが拾われるとなっています。
つまり、
この、左上の「1」をクリックすると、
本来ならば入力画面上で1が入力されるだけのはずが、
表示画面に移るということでしょう。
今回は、左下の「*」でも試してみましょう。
てなワケで実験内容は以下。
- キーボードの「1」ボタンを押す
- キーボードの「*」ボタンを押す
- エミュレータの「1」をクリック
- エミュレータの「*」をクリック
で、調査用のソースは以下。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ujml PUBLIC "-//UIEVOLUTION//DTD UJML 2.1//EN" "http://www.uievolution.com/dtd/ujml-2.1.dtd" [
]>
<ujml>
<application>
<state-variables>
<state-var name="sShow" type="boolean"/>
<state-var name="sEdit" type="boolean"/>
</state-variables>
<variables>
<var type="int" name="mScrWidth"/>
<var type="int" name="mScrHeight"/>
<var type="int" name="mTextHeight"/>
<var type="string" name="mText"/>
</variables>
<script>
mScrWidth = _getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;);
mScrHeight = _getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;);
mTextHeight = _text_height( 0, 0, 0 );
mText = "";
sShow = false;
sEdit = true;
</script>
<display>
<!-- Display F1 function key for exiting app -->
<fn>
<text>Quit</text>
<event name="onselect">
<accelerators>
<key>F1</key>
</accelerators>
<script>
_unload();
</script>
</event>
</fn>
<!-- Display screen background color -->
<box>
<width> <eval>mScrWidth</eval> </width>
<height> <eval>mScrHeight</eval> </height>
<bg>&_COLOR_BLACK;</bg>
</box>
</display>
<states>
<state var="sShow">
<transition value="true">
<display>
<!-- Display text centered on screen -->
<label>
<text><eval>mText</eval></text>
<x><eval>(mScrWidth - _text_width( mText, 0, 0, 0 )) / 2</eval></x>
<y><eval>(mScrHeight - mTextHeight) / 2</eval></y>
<fg>&_COLOR_YELLOW;</fg>
<event name="onselect">
<accelerators>
<key>FIRE</key>
</accelerators>
<script>
sEdit = true;
sShow = false;
</script>
</event>
</label>
</display>
</transition>
</state>
<state var="sEdit">
<transition value="true">
<display>
<edit var="mText">
<width><eval>100</eval></width>
<x-caption>入力後、F2を押して下さい。</x-caption>
<event name="onselect">
<accelerators>
<key>F2</key>
<key>1</key>
<key>STAR</key>
</accelerators>
<script>
sEdit = false;
sShow = true;
</script>
</event>
</edit>
</display>
</transition>
</state>
</states>
</application>
</ujml>
- 起動すると、まずは入力画面から始まります。

- 適当に値を入力し、

- F2ボタンを押すと表示画面に移り、入力内容が表示されます。

ソースの
<edit var="mText">
<width><eval>100</eval></width>
<x-caption>入力後、F2を押して下さい。</x-caption>
<event name="onselect">
<accelerators>
<key>F2</key>
<key>1</key>
<key>STAR</key>
</accelerators>
<script>
sEdit = false;
sShow = true;
</script>
</event>
</edit>
この太字部分で指定しているように、「F2」以外にも、
「1」キー(1)、「*」キー(STAR)
でも、入力が終了し、表示画面に移ります。
実験開始。
キーボードの「1」ボタンを押す
入力画面に「1」と出ました。
イベントは拾われなかったようですね。キーボードの「*」ボタンを押す
キーボード上で「1」を押したときと同じです。
入力画面に「*」と出ました。エミュレータの「1」をクリック
イベントが拾われたらしく、
入力が終了して表示画面に移ってます。
しかも、「1」が入力されてます。エミュレータの「*」をクリック
入力が終了して表示画面に移ってます。
しかも、「1」の時と違い、「*」が入力されてません。
以上より、
基本的に入力画面でキーボードを押しても、
イベントにならないようです。
が、エミュレータの方のボタンを押すと、
ボタンにより異なる挙動をするようです。
この、「異なる挙動」の部分を鑑みるに、
多分これは、「expected action」ではないですね。
あとは、サンプルコードの日本語部分を英語にして、
「俺は質問者じゃないけど、
多分こういうことじゃない?」
と言う英語を作文してポストすれば良いわけですな。
では、NOVA行ってきます。
UIE Developerの最新版、UIE Developer2.1.0ですが、
気になる新機能がありました。
その名も「UIE Designer」!
何となく、GUIを作成するビジュアルエディタっぽい名前ですが、
どうやらまだ使えないようです・・・。
でも我慢できない!
そんなあなたに、UIE Designerをちょっとご紹介。
つか、実は使えて、使い方を知ってる人が
現れるかもしれません。
期待期待。
まず、UIE Designerとはどんなものかからご紹介。
- 全体像
全体像はこのようになっています。3ペイン型ですね。
- プロジェクト
左上には、「プロジェクト」と言う名前のビューがあります。
右クリックメニューから「新規」を選んでも何も出来ない。
この辺りが、まだ実装されてない機能っぽさを出してます。 - デバイス
左下は「デバイス」ビューです。
その名の通り、作成対象となるデバイスを
指定できると思われます。
現在のところ、何をしても無反応です。
寂しいですね。 - パレット
ビジュアルエディタには欠かせない、
「パレット」ビューです。
が、現在のところ
「パレットに表示する項目はありません。」
という、悲しい表示があるだけです。
では、UIE Designerとの出会い方を大公開!
実は、そう難しくはありません。
- メニューから「ウィンドウ(W)→パースペクティブを開く(O)→その他(O)」を選択
- 出てきたダイアログの左下、「すべて表示(S)」をチェック

- これで、一覧にUIE Designerが登場します。

Eclipse Mylarってなに? - 基礎編 体験してみる? タスク指向UIMYCOMジャーナル)
このプラグインです。
興味があったんで追加してみました。
いや、見れないんですが。
UIEngine Wikiからも多数のリンクが張られているこの「UIEngineだ」、
無くなるとUIEngine会にとって大きな損失ですよ。
英語版「Not for UIEngine But for User Experience」
によれば、
[Notice] UIEngineda is not published cause,(Not for UIEngine But for User Experience)
After I've changed some this blog's preference, Japanese version has been unpublished. I'm trying to republish all entries. Sorry for the inconvenience.(January 31, 2007)とのことで、
全エントリを作り直している所のようです。
参ったな。
UJMLというのは、
UJML Language Reference シンタックスに関するメモによれば、
UJMLは、UJMLコンテンツを定義する規定済みのXML要素と属性の集合と、 UJMLスクリプトを記述するスクリプト要素から構成されています。なわけです。
XML要素と属性の集合ってのは、
要はXMLタグです。
スクリプトとタグ。
お!アレに似てるじゃないですか。
HTMLタグとJavaScriptで構成されてるアレ。
AJAX。
AJAXなんて、
一昔前は面倒なだけで無意味な演出とか、
何かもう酷い言われようでしたが、
prototype.jsとかYahoo! UI Libraryといった、
優れたライブラリが出てきてから状況が一変しましたよね。
ライブラリを使えば、難しいアニメーションとか、
インタラクティブなメニューとか、
人間のインスピレーションを限界まで引き出すことが出来る。
まるで味の宝石箱や〜。
そんなわけで、今や猫も杓子もAJAX。
女子も弱子もAJAX。
AJAXは、Web2.0時代の必須要素です。
で、UJML。
実は昨日、久しぶりにコードを書いてみたんですが、
やっぱ関数が少ないのね。
数学関数とか。
例えば、
「あ、べき乗計算してぇ」
と思った時、UJMLには無いのね。
「pow」とか、そんな関数が。
そう言った、ユーティリティ関数的なものが欲しいわけです。
元々は組み込まれてなくても、
誰かが作った奴がネット上にあったら便利そうでしょ?
そういうライブラリが欲しいわけです。
便利な特殊ユーティリティライブラリ。
他にも、アレ。
UI部品。
例えばGoogle Mapsと連携する、
MapCanvasとか。
そんな凄いのじゃなくても、
サンプルにもあるって言う「ListBox」みたいな、
結構基本的なUI部品でいいので。
最近だと、Flash Professionalには
そういうのが搭載されてたはず。
そういうのも、あったら便利ですよね。
別に、
UIEよ、全部作ってくれ!
てなワケではないんですが、
とりあえず、CPANとかJSANみたいに、
アップロードしたりダウンロードしたりする場所が欲しいです。
あと、ユーティリティ関数群用の
テンプレートとか。
そしたら、試しに作って、
そしてアップロードしてみようかなとか、
そんな気になるかもしれません。
多分、ダウンロードのみですが。
で、ユーティリティ関数群てのは、
どーやって書いたらよろしいんですかね?
「箱入り娘」が久々に復活(Life is beautiful)
(前略)とのことですが、
ちなみに、Flash版のUIEngineは、かろうじて動き始めたばかりで、十分なテストをしていないので、まだ一般に配布はしていない。安定して動き始めたら、ベータ版として配布をする予定なので、少々お待ちいただきたい。もし、手持ちのブラウザーでこの箱入り娘がちゃんと動かない場合には、このエントリーのコメント欄にでも報告をいただけるととてもありがたい。(2006.12.13 )
俺の環境では早速エラーが出ました。
ページを開くたびにこのダイアログが出てくるので、
若干邪魔ですね。
多分箱入り娘が原因だと思いますけど。
メッセージはこんなんでした。
箱入り娘の様子はこう。ReferenceError: Error #1069: Property hasDefinition not found on flash.system.ApplicationDomain and there is no default value. at mx.managers::SystemManager/getDefinitionByName() at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::addingChild() at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_addChildAt() at mx.managers::SystemChildrenList/addChild() at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::initialize() at mx.managers::SystemManager/::initHandler()
で、ブラウザとFlash Playerの情報はこう。
Flashのバージョン情報:You have version 9,0,0,296 installed
ブラウザの情報:Firefox 2.0
そういえば、Flash版UIEngineと言うコトで、
かなり期待できますね。
FlashLite2.0くらいででもいいんで、
モバイル版の道を切り開いて欲しいです。
前回のエントリで、
「UIEngineだ」さんが取り上げていた、
ワークスペースを替えるにはどうするかについて、
IDEから行う方法を紹介しましたが、
実際問題、Eclipseにもいろいろなオプションがあるし、
他にもJava用のオプションもありますよね。(-Xmsとか)
じゃあそういうのはどうやって指定するんだ?
となるわけですが、
実はEclipseには、「eclipse.ini」なるファイルがあります。
ということで、実はこの設定ファイルを書き換えれば、
バッチファイルが不要になるはずと思い、
フォルダを調べてみました。
そしたら、eclipse.iniは無かったんですが、
よくみたら、UIE_Developer_2.1.0¥bin以下に、
UIE_Developer.ini
てのがありました。
開けてみるとこんな感じ。
おおこれだ!-vm C:¥Program Files¥UIEvolution¥UIE_Developer_2.1.0¥_jvm¥bin¥javaw.exe -vmargs -Xms128m -Xmx1024m
名前はオリジナルになってますが、
これにオプションを指定してやれば、
ワークスペースも切り替えられるはずです。
例えばこう。
そして実験。成功。-vm C:¥Program Files¥UIEvolution¥UIE_Developer_2.1.0¥_jvm¥bin¥javaw.exe -data C:¥UJML¥workspace -vmargs -Xms128m -Xmx1024m
つか、Javaも独自のを使ってたんだ。
2.0.0の時にJ2SE1.4で起動できないって話が、
結構出てたのかな?
で、対策したとか。
SDK2.1 好きなフォルダをワークスペースに指定したい(UIEngineだ)
SDK2.1からワークスペースが自動的に "Documents and Settings"以下になっているのだが、自分の好きなフォルダに指定したかったので、SDK起動時のオプションに俺はEclipseを使うときには、
-data c:¥work¥uie¥workspace
のような形で-dataオプションをつけたバッチファイルを作成して、それを使っている。
新しいプロジェクト作成時に自分で保存場所を選ぶので
コレは気にならなかったんですが、
そうなんですね。
多分ですが、
1.ファイル→ワークスペースの切り替えを選択。
2.ワークスペースを指定(画像は「C:¥UJML¥workspace」にワークスペースを設定)
で、OKをクリックするとIDEが再起動し、
以後は指定したワークスペースがデフォルトになる気がしますが。
PC自体を再起動して試したわけではありませんが、
IDEを何回か立ち上げなおした限りだと、
これでいけるはずです。
ところで、
SDK2.1対応のDojaプレイヤーが出た(UIEngineだ)
こっちは相当わかりにくいですね。
なぜデフォルトで設定されてる更新サイトで更新できないの?
って気がします。
つか、最初からこのプレイヤー用の更新サイトも、
更新サイトとして登録しとけよ!






