
業務用RIAの本命!? Flex+Java開発入門(最終回)
動かして試すAdobe AIR+Javaアプリの“可能性”
クラスメソッド株式会社
福田 寅成
2008/11/12
■ 【1】データの取得
そもそも、アプリケーション内にオブジェクト形式の1万件のデータがすでにサーバから取得済みですが、ここではあえてSQLiteデータベースからSQLのSELECT文でデータを取得してきています。xmlButtonClickHandlerから呼ばれるselectRecordメソッドは下記になります。
private function selectRecord():void { |
- - PR -
データ取得処理ですが、いままでのSQL実行処理と流れはまったく同じです。違いはSQLStatementオブジェクトにSELECT結果の1件1件を格納するエンティティの型を指定している部分(コメント「ここ重要!!!!!」の直下の行)です。
これにより、SELECTした結果を後続の処理で扱いやすくなるうえに、型を指定してオブジェクトを扱っているので、Object型に格納した場合に比べてパフォーマンスが向上します。
■ 【2】取得したオブジェクト形式のデータのXML化
このSELECT処理の結果、イベントでは取得したSELECT結果をselectedUserListに格納し、writeRecordメソッドを呼び出しています(この部分は省略)。
■ 【3】XML書き出し処理
次に、XML書き出し処理であるwriteRecordメソッドを見ていきましょう。
private function writeRecord():void { |
最初にオブジェクト形式の1万件のデータを1つのXMLに変換しています。詳細は実際のソースを確認してください。
次に、Fileオブジェクトとしてデスクトップ上のファイル名「users.xml」を指定しています。そして、writeXMLメソッドを呼び出して実際のXML書き出し処理を行って、成功した場合は、ダイアログ表示後、ビジーカーソルを元に戻して処理を終了しています。
実際のXML書き出し処理を行っているwriteXMLメソッドの内容は、Java言語でのファイル書き出し処理に似ていて、非常にシンプルな処理です。
private function writeXML(file:File, xml:XML):Boolean { |
FileStreamを開き、書き出しモードでストリームをオープンし、ストリームにファイルの内容を書き出して、最後に(finallyで)ストリームをクローズしています。Java言語でのファイル操作については以下の記事が参考になると思います。
以上で今回の拡張機能の部分のソースの解説は終わりです。
AIRを採用する際の問題点とは?
最後に、AIRを採用する場合によく問題点に挙げられることに触れておきます。
■ アプリケーションの配布/更新
WebブラウザベースのWebアプリケーションに比べ、デスクトップアプリケーションは“配布”の問題が常にあります。しかし、ほかのデスクトップアプリケーション構築技術同様、AIRにもアプリケーション配布やバージョン管理の仕組みが提供されています。
AIRでは「インストールバッチ」を用意することにより、Flash PlayerやAIRのインストール状況のチェックからアプリケーションのインストールまでをWebブラウザ経由でシームレスに行うことが可能です。
また、アプリケーション起動時にアプリケーションの最新バージョンをチェックし、自動更新する機能があります。
■ 本当にAIR構築時にFlex以外のノウハウは不要?
まったくのゼロとはいいませんが、ほかのデスクトップアプリケーション開発技術に比べ、学習コストは圧倒的に低いです。
AIRでは、構築技術にHTML+JavaScript(Ajax)の形式を選択することもでき、HTMLのWebアプリケーションやFlexアプリケーション開発経験者であればスムーズにAIRで開発ができます。開発ツールもFlex Builderなので、新しいツールを購入したりプラグインを導入したりといったことも不要です。
■ AIRにする必要あるの? Flexで十分じゃない?
構築したいアプリケーションの要件によってはFlexで十分であることが多いです。FlexとAIRそれぞれで実際に実現できることをよく調査し、理解したうえで、要件定義の際にFlexとAIRどちらをベースにアプリケーションを開発するべきかを検討すべきです。
可能性を秘めたAIR+Javaペア
今回は、これまでのFlex+Javaとはクライアントの動作環境が変わったAIR+Javaに関してお届けしました。Flexのアプリケーション開発技術に加えて、今回ご紹介したSQLite連携やファイル連携の機能を持ち合わせたデスクトップアプリケーション開発環境がAIRです。
もちろんAIRはサーバサイドのJavaとの連携も自由自在です。Webの世界からデスクトップの世界に進出したAIRはまだまだ技術的には新しく、どのような形で開発者の型に料理されるかはまだまだ未知数のところが多く、それでいて可能性を感じさせてくれるアプリケーション開発環境です。
Flex+Java同様、AIR+Javaも今後さまざまなシーンで利用されると思いますので、読者の皆さんも今回のサンプルアプリケーションをきっかけにいろいろなAIR+Javaアプリケーションを作成してみてください。
■ 最後の最後に
まだFlexは若い技術です。FlexとJavaを組み合わせた開発もまだ世に登場したばかりです。一方で、Flex+Javaペアを用いたRIA開発は間違いなく今後のRIA開発シーンを牽引していく技術の1つであるのは確かです。そんな若くて魅力的なRIA開発の世界にこの連載をきっかけに1人でも多くの開発者の方がチャレンジしていただければ幸いです。長い間連載を読んでいただきありがとうございました。
■@IT関連記事
| いまさら聞けないFlex、そして、いまこそ入門のとき!? Flex 3正式版リリース! Flexの過去・現在・未来 先日ついに正式リリースされたFlashベースのRIA技術Flex 3。いまが入門に最適なFlexの過去・現在・未来を一挙に解説 「リッチクライアント & 帳票」フ ォーラム 2008/3/31 |
||
| 作って学ぶAIRウィジェットの基礎→応用 最近よく聞くAdobe AIRって何だっけ? ウィジェットを簡単に作れるらしいけど…… と曖昧な知識のあなたに贈る超入門連載。楽しいサンプルを作って基礎から応用まで学ぼう |
||
| Flex/AIR開発でデザイナとの協業を楽にする「yui」 デザイナとプログラマを“結”ぶオープンソース(前編) Flex/AIR開発でデザイナと協業することになったら、ぜひ試してみてほしいオープンソースのフレームワークがあります 「リッチクライアント & 帳票」フォーラム 2008/10/1 |
||
| yuiを使ったFlexアプリを作って、便利さを体感しよう デザイナとプログラマを“結”ぶオープンソース(後編) ChartやDataGrildでデータが編集できるグラフアプリを実際に作成しながらyuiのさまざまな便利機能を体感しましょう 「リッチクライアント & 帳票」フォーラム 2008/10/30 |
||
| プロフィール:福田 寅成(ふくだ ともなり) クラスメソッド株式会社 エンタープライズサービス部門 システムエンジニア 大手SIerでの長いJava開発経験を経てクラスメソッドに。 Java、JavaScript/Ajax、Flex、AIR、C#など、さまざまな分野に関する技術調査研究、および業務アプリケーション開発に携わる。 FlexやAIRの開発依頼はコチラ |
| 1-2-3-4 |
| INDEX | ||
| 業務用RIAの本命!? Flex+Java開発入門(最終回) 動かして試すAdobe AIR+Javaアプリの“可能性” |
||
| Page1 AIR+Java:新しいアプリケーションの形 FlexとAIRの違い:次世代デスクトップRIAの可能性 いままでのFlex+JavaアプリをAIR+Javaに移植! |
||
| Page2 AIR独自の機能を1万件データ表示アプリに追加 サーバから取得したデータをローカルDBへ挿入 注意! 「SQL内のテーブル名を小文字に」 |
||
| Page3 データをXML形式ファイルとしてデスクトップへ保存 |
||
| Page4 AIRを採用する際の問題点とは? 可能性を秘めたAIR+Javaペア |
||
| リッチクライアント&帳票 全記事一覧へ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|
