Apollo mini Camp @ Tokyo に行ってきた

[apollo][adobe]Apollo mini Camp @ Tokyo に行ってきた
本当は行く予定なかったんですが急遽代理で参加することに。

以下にその内容とコメントを書きます。ちょっと辛口コメントに見えるかもしれませんが、実際はとても面白く刺激的でした。これまでにない新しいアプリケーションの可能性を感じました。すぐにでも触っていろいろ作りたい衝動に駆られています。


名称:Apollo mini Camp @ Tokyo
日時:5/23 18:00 〜 20:00
場所:ゲートシティ大崎 ゲートシティホール
内容
・Mike Chambers によるApollo紹介とデモ
・Daniel Dure(Dany Dure) によるデモ
・質疑応答

Mike Chambers によるApollo紹介とデモ

WPFとの比較
WPFC++などと同じ low levelで開発を行うものである。Apollo はそうではなく、high level で開発を行うものなので開発者のターゲットが全く異なる。技術者によってWPFApolloは分けられるので競合しない。Apolloのコンセプトは「webをデスクトップに持ってくること」WPFはその逆である。

p-nix解説:誰が、という観点からApolloWPFの比較。ApolloはHTML、Javascriptだけしか知らない開発者でも作れるよ、という意味だと解釈した。しかし、実際使い物になるApolloを作るにはFlex Builderくらいは使えなくてはならず(つまりオブジェクト指向言語のAction Script3も)だれでも簡単に作れるというものではないのではないか。そう考えるとある程度のプログラムスキルを持った開発者もApolloの開発に適しているのではないか。


これまでのブラウザベースの問題
・ブラウザを閉じると情報が失われる。
・画面に対して結構広めの面積を占有してしまう。


Apolloの強み
☆非定形ウィンドウ
  p-nix解説:これをやらないとブラウザの問題点である面積の問題を解決したことにならないでしょう。
・ローカルファイルに対するアクセスが可能。
・HTML、JavascriptCSSFlash、PDFなど言語のマッシュアップが可能。
p-nix解説:「言語のマッシュアップ」(あれ?テクノロジのマッシュアップだったっけ?)という語句が気に入りました。具体的には、FlashオブジェクトとJavascriptオブジェクトの相互呼び出しなどが可能らしい。関数の引数でオブジェクトの参照を渡すことが可能らしい。これはすごいこと。



動作スタイル
Flash Player9で動かす
  AS3が使える
Flex2を使う
  これもAS3が使える
・HTMLを使う。
  p-nix解説:HTMLのレンダリングは実はSafariのエンジンを使っています。
FlashとHTMLを組み合わせることももちろん可能。PDFも使えるよ。(現時点のアルファ版では未実装?)


デモ

Flex上でGoogle Mapsを表示。レイヤーを使ってGoogle Maps上に半透明なFlexコンポーネントを表示。
・ローカルファイルへのアクセス
  VCard情報を読み込む。そしてGoogle Mapsに渡す。
Finetune
  実際に稼働しているApolloを使ったサイトの紹介。音楽系サイト。プレイリストを公開してSNS要素もある。ブラウザ版もあるがApollo版もある。ブラウザからApolloに対して情報を送ることもできる。
  (p-nix私見:ここでおおーっと歓声が上がったがこれってサーバ側でどうやっているかだけの問題な気がした。もしかしてローカル上で情報のやりとりをしていたとしたらそれはすごいこだけど実際のところは分からず)
RSSリーダ
  オフライン状態でも稼働するよ。(p-nix私見:そりゃWindowsアプリだと考えればそれは当然。自分が使っているWindowsアプリのRSSリーダもオフライン状態でも動くし。)
JavascriptとAS3のオブジェクトの受け渡し
  画面上半分にGoogleのトップページを読み込んでレンダリング。下半分はFlex(AS3)で作ったDOMインスペクタ。HTML側のDOMオブジェクトを下半分のAS3が参照してHTMLの構造をツリー構造で表示。さらにすごいのは下半分のツリー構造の値を変えると即時に上半分のHTMLが書き換えられること!(p-nix私見:これ自分で作ってみたい)

あと細かいApolloの特徴
・バイナリソケット、XMLSocketの実装


Daniel Dure によるデモ

2007年初夏にリリース予定のベータ版日本初公開!!


ベータ版新機能
ドラッグアンドドロップ
クリップボードへのアクセス
・MultiWindow (p-nix疑問:Windows同士の通信できるのかな?)
・PDFの読み込み(p-nix私見:実務では結構重宝するかも)
・ネイティブファイルダイアログ
・指定した拡張子をApolloと関連づけ(私見:いまいち使い道分からず)


デモ

ドラッグアンドドロップ
  コードも割と短め。TransferableオブジェクトをCreateしてDragManager.doDrag メソッドに渡す。クリップボードのアクセスも同じクラスでいけるのがセンスを感じた。

Amazon のS3(ストレージサービス)にアクセス
  ドラッグアンドドロップで簡単にサーバにファイル転送


質疑応答

Q1:現在ランタイムのインストールが必要である。これを普及させるには。
A1:策を練っている段階。インストーラにランタイムを含ませるという線もある。(p-nix解説:これについては明言を避けた)


Q2:ローカルのDBにODBCなどでアクセする手段はないのか
A2:今のところ無い。やるならミドルウェアがやるべきであろう。とりあえずMySQL用のドライバは作った。その他は皆さんが作って。笑)


Q3:複数バージョンのランタイムの共存は可能か
A3:可能である。さらに同一バージョンの複数ランタイムのバインディングもできるよ。(解説:よく分からなかったのでこれで合ってるか自信なしです。)


Q4:インストール、アンインストールはどのくらい簡単か。
A4:OSによる。MACならゴミ箱にD&Dとか。方針としてはインストール、アンインストールに特別な知識が必要なことにはならないようにしている。


Q5:ランタイムが大きいし、インストール作業が面倒なんですけど。これじゃお客さんに入れてもらうことは難しい。
A5:p-nix解説:A1と同じくぼかしつつ、というかランタイムといってもたった5MBだから今時気にするほどの大きさでないと思う。.net Framework 3.0のランタイムたしか40MBくらいあったよ。。


Q6:特定ユーザ向けにDLLなどでカスタマイズ可能か。
A6:ver1.0では無理。今後の検討課題。


Q7-1:コードネームの変更はいつ?
A7-1:βが控えているのでそろそろいい頃かな。。


Q7-2:Flex Bulderの日本語版は?
A7-2:OK


Q7-3:swfが入ったHTMLが動かない。
A7-3:βでは無理。ver1.0ではOK


Q7-4:ファイルIOに対するセキュリティは?
A7-4:OSのセキュリティ層の上にApolloが乗る。ネイティブアプリのセキュリティに近い。だからサンドボックスというものはない。


Q8:ビデオカードによってパフォーマンスは変わる?
A8:Flashのビデオの部分でハードウェアアクセラレータを使っているのでYes


Q9:ネットワークでListenするサーバとして動くのか
A9:検討して盛り上がったけど盛り下がった。。1.0の次のバージョンで入る。(p-nix私見:これができれば画期的なこと。ColdFusion売れなくなったりしない?)

参考サイト

Mike Chambersさんのブログ
Dany Dureさんのサイト
MXNA Apollo系の記事のフィードをまとめたサイトです。



以上。