InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

AsWing、ActionScript狂のJava開発者?

作者 Moxie Zhang , 翻訳者 渡辺 裕之 投稿日 2009年3月10日

セクション
デベロップメント
トピック
RIA ,
Java
タグ
ActionScript

Java Swingは何年にも渡り、開発者がJavaでグラフィカル・ユーザ・インタフェース(GUI)を作るブロックとしてメジャーなものとなった。Java Swingの経験とスキルをActionScript 3ベースのリッチ・インターネット・アプリケーション(RIA)システムの構築に応用することは出来るだろうか。AsWing Framework(リンク)はまさにこのゴールを目指して始まった。InfoQではAsWing開発の先頭に立つiiley Chen氏とAsWingがどのようにRIA開発に貢献するのかについて話をした。

他のUIフレームワークを使わずにAsWingを作成した理由について聞いたところ、以下のような回答を得た。

確かにFlex以前にもよく出来たフレームワークがありましたが、ほとんどの製品が使い易くなかったり機能が不足していました。多くの製品で、ツリー、データグリッド、そして強力なレイアウト・マネージャなどの重要なコンポーネントが欠けていました。Flashに関するオンライン・コミュニティに際して私が初めて大規模なアプリケーションを開発しようとしていたとき、強力なUIフレームワークを必要としていました。私にはJava Swingの利用経験があり、Swingの採用しているアーキテクチャやデザイン・パターンを気に入っていました。そして、Swingに似ているFlashのUIフレームワークがあれば私達が作ろうとしているアプリケーションのUIを素早く快適に構築することが出来ると信じていました。そこで、ActionScript2という言語を使ってAsWingの開発を始め、そのAPIのほどんどをSwingと同じようにしたのです。AsWingは現在ActionScript3で開発されていて、再設計とリファクタリング*を繰り返しています。ある人がAsWingはSwingやFlexよりも使い易いと言ってくれました。AsWingを開発する努力が報われた気がしてとても感謝しています。

AsWingの主な利点と独自性について、Chen氏は以下のようにコメントしている。

主な利点は変化しやすく動的なUIを純粋にActionScriptのコーディングだけで構築できるということです。AsWingの中核部分は単にActionScriptのクラスなので扱い易く管理し易いのです。もしJava Swingの経験があれば、そのスキルはほとんどが活用できるでしょう。

さらに、AsWingは専門的なColorMixiersやJLabelButton、Form、Folder、そしてGridListといった特別なコンポーネントを含む40以上もの近代的なUIコンポーネントを提供しています。.

加えて、よく出来たMVCパターンによってデータの更新を簡単にUI画面に反映できます。Flexにデータ・バインディングがあるように、AsWingにも様々なデータ・モデルがあり自動的に更新があったことを画面に通知します。

(AsWingに)含まれているSkinBuilder?(スキン・ビルダ)ツールは開発者がコンポーネントの画像やFlashのシンボルを用意するだけで完全に独自のスキンを作成するのに役立ちます。さらに、GuiBuilderはUIのレイアウト設計を補助し、後でActionScriptのソース・コードを生成することが出来ます。

Finally最後に、AsWingは重たくありません。他のアプリケーション・フレームワークも兼ねているUIフレームワークとは異なり、純粋にUIのためのものです。AsWingを好きなアプリケーション・フレームワークと組み合わせることが出来ます。

開発環境に関しては、AsWingは融通がきく。これについてChen氏は以下のように説明した。

開発に際して何か特別に必要なものはありません。Flex Builder、FDT、FlashDevelopといったどのようなActionScript開発環境でも平気です。AsWingはあなたのプロジェクトに関連付けられる単なるActionScriptのライブラリです。AsWingアプリケーションはFlexコンパイラ、Flashコンパイラのいずれでもコンパイルすることが出来ます。ただし、GuiBuilderツールはAIRアプリケーションなので実行するにはAIRの実行環境が必要となります。

AsWingのロードマップについてChen氏は以下のように語った。

私は現在次のメジャーバージョンとなるAsWing 2.0に取り掛かっています。デフォルトのルック・アンド・フィールは見直され良くなっています。最も重大な新機能は新しいスキン技術の導入です。透明度、色調、角の丸みや影といったプロパティについてほんの数行のコードを書くだけで、複雑なComponentUIクラスを開発することなく、コンポーネントの見た目を変えることが出来るようになります。さらに、Numeric Stepper、Date Chooser、Advanced TextArea、そしてAdvanced Tableなどの新しコンポーネントが追加されます。

Chen氏は以下のHello Worldを表示するAsWingアプリケーションのコードを提示した。

package{
import flash.display.Sprite;
import org.aswing.*;
public class HelloWorld extends Sprite{
    public function HelloWorld(){
        AsWingManager.initAsStandard(this);
        JOptionPane.showMessageDialog("Title", "Hello World!");

    }
}
}

Java Swing開発者には見慣れたコードだろうか。

 

原文はこちらです:http://www.infoq.com/news/2009/02/AsWing

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。