Affamative Way

前向きにグダグダいいながらコード書く

Google Developer Day 2008 に行ってきた。

昨日にパシフィコ横浜で行われたGoogle Developer Day 2008にいってまいりました。

朝から参加したんですが、基調講演だけでもお腹いっぱいになるくらいに濃厚で面白かったです。
特にAndroidなんかは、デモもやってくれたのでセッションいかなくても満足してたり。


基調講演の様子だけみてあとは好みで興味ある記事を探してみるといいかも知れません。*1
【Google Developer Day 2008】次世代Webのキーワードは「3つのC」:CodeZine



当日に参加したセッション


以下、ざっくりとセッションごと感想

OpenSocial

OpenSocialとは?

OpenSocial は複数のウェブサイト間で使用可能な、ソーシャル アプリケーションの共通 API を定義します。デベロッパーは、標準の JavaScript と HTML を使用して、ソーシャルネットワークの友人とコミュニケーションをとったり、フィードを更新したりするアプリケーションを作成できます。


すでに参加企業がいっぱいあって(会場では参加企業の一覧が見れたんだが、見つからなかった。。)2億人以上の潜在的なユーザがいる!ということですでにmixiは対応を表明してますし。これからサービス作る上で必須になって行くのかなーと思ったり。
中身的にはOAuthShindigが解らなかったので、ぼんやりとした印象ですが、OpenIDとの相性も良いそうなのでこれからは当たり前になっていくのかな?

今更、今後はモバイルだとどうするんだろうとも思ってみたり、世界的に見て日本は独特だからどのみち対応してもらえなそうだけど。


余談ですが、OAuthは以下のサイトの説明でとっても良くわかりました。
WebAPI のアクセス制御に使える OAuth という仕様 - まちゅダイアリー (2007-09-25)

OAuth は,第三者に対して,認証を要求するリソースへのアクセスを一時的に許可するためのプロトコルです.

たとえば,写真印刷サービスがあるとします.そして,あなたは flickr に保存してある非公開写真の印刷を依頼しようとしています.このとき,写真を "公開" 状態にすることなく,また flickr へのログイン情報を教えることもなく,印刷を依頼することができます.

Mashup から Mapplets へ

  • どんなもの?

Google マプレットとは?

マプレットは、Google マップ内で実行されるミニアプリケーションです。 Google マップに別のデータを追加したりオーバーレイするマプレットを作成できます。

マプレットは マップ API に似ています。従来のマップ API が他のウェブサイト上で地図を作成するのに使用されるのに対して、マプレットは Google マップ上で実行される点が大きく異なっています。

ようするにMashupしなくたってでiGoogleのガジェットみたいに使えるというお話。すでに日本でもいろいろと公開されている

開発者向けの話としては、Mappletの中で利用される外部のJSは小さいiFrameで読んで他のドメインのは取得してるそう。
他にもMapplet デベロッパーツールの紹介をしてくれたけど。
Mapplet Scratch Padは強力でその場で「マプレットでの "Hello World"」を実演してくれたけど、アイデアさえあればすぐにでも開発が始められるんじゃないかと。


問題は使うようなアイデアが出てこないことだが。。orz


Google Gears から Gears へ

CodeZineの記事がまとまってるので概要はそちらへ、Gearsの基本が面白かったけど乗ってなかったで乗せて見る

  • GoogleGearsから改名してGearsとなった。
    • オープンソース
    • オープンな開発体制
    • オープンスタンダードの先取り
      • GoogleのいいようにではなくHTML5などを考慮していってる。
  • Gears:インクリメンタルなアプローチ
  • Gearsのアーキテクチャ
    • あらかじめオフラインモード用のソフトウェアを追加しておく。
    • ローカルのストレージに読み書き。
    • 変更内容を保持して、オンラインになったときに同期
    • サーバーとの通信はUIの操作と完全に独立
  • Gearsを使っているWebサービス
    • GoogleReader(英語IFのみ)
    • GoogleDocs(英語IFのみ)
    • RememberTheMilk
    • などなどなど・・・
  • Gearsの基本構成
    • LocalServer
      • アプリケーションのHTML/画像/JSなどをローカルを保存
    • Database
      • 構造化されたデータをローカルに保存し、検索可能に
      • SQLite3がベースとなり、厳格なsame-originセキュリティモデルが追加されている。
    • WorkerPool
      • Javascriptをスレッドっぽい機能を追加
        • JSのインタプリンターを複数動かすイメージ
      • ブラウザのUIが固まるのを防ぎ、スムーズな動作を実行する
      • Worker同士はメッセージで通信、状態や変数は共有しない。
      • Timer、HTTP Requestのサポート(Gears0.2以降)

クライアントにインストールしてもらう敷居の高さを乗り越えれば
オフライン機能だけじゃない、基本構成の3つの機能を考えるだけですごく可能性があるようにかんじました。

Gears + GreaseMonkeyでやってたデモのソースが公開されてました。
Google Gearsを使ってはてなブックマークをインクリメンタル検索するGreasemonkey - daily gimite
もういっそいっそ、はてブにオフラインモードも追加してくれないかなーとも思ったり。



そういや、Google Gears APIではまだGoogle Gears連発で面白かったw


Google AJAX API を活用した、進化したガジェットと UI (ユーザーインターフェース)の開発

Google AJAX APIとは?

Google AJAX API では、リッチでダイナミックなウェブ サイトを JavaScript と HTML だけで実装できます。JavaScript コードを数行追加するだけで、ご自身のサイトに地図や動的な検索ボックスを追加したり、フィードをダウンロードできます。

この辺のAPIをつかってiGoogleガジェットを作成してました。


Google Web Toolkit と AJAX

Google Web Toolkit

Google Web Toolkit (GWT) を使用すると、高パフォーマンスの AJAX アプリケーションを簡単に書くことができます。フロント エンドを Java プログラミング言語で記述すると、GWT がソースを高度におプティマイズ可能な JavaScript にコンパイルします。現在、ウェブアプリの記述は退屈で、エラーが発生しやすいプロセスです。90% の時間をブラウザ固有の動作への対処に費やし、JavaScript はモジュール化できないため AJAX コンポーネントの共有、テスト、再利用を難しく、もろいものにしています。そのような方法で進める必要はありません。

セッションで言ってた気になった部分を抜粋、ただ同時通訳なので合ってるか確証がもててないけど。。

  • メリット
    • エクリプス上でJavaと同じようにデバッグできちゃうよ。
    • JunitでTDDで作れちゃう。
    • Jars使って使いまわしできちゃう。
    • Javadocでドキュメントも強力!
    • ブラウザごとに最適なロジックを選んでるから軽快だよ。
    • JavaのIDEならなんでも使えるよ。
  • 国際化対応
    • プロパティファイルに書いけばいいよ
  • 軽量
    • 120Kbyte〜80Kbyte程度
  • JavaScript Native Interface(JSNI)
    • ブラウザや言語によって、必要なファイルをDLさせて永続的にキャッシュさせている*2


GWT1.5RCがでてJava1.5サポートしたというので、ちょっと使いたくなってきました。
ただ、Javaはもうだーーーいぶ触ってないんだよなぁ。。

まとめて感想

すげー人でしたが楽しかったですー。お土産にTシャツなんかももらえたり。
プレゼンの最中にもGoogleはやっぱり布教というかプロモーションがうまいなーと細部に関心しました。

セッションを大体聞いた感触では、GearsとGWTが個人的に楽しそうと思うので近々触ってみたいなーと思いました。なんかおもしろいサービスでも作れればOpenSocialも触ってみたいなー。
同時通訳のセッションは初体験でしたが、ケッコー聞いてるのだけで疲れる。。。

そういえば、RESTful Webサービス読書会出て以来、RESTfulとかステートレスとか聞くと過剰に反応してしまう。。そういえば第3回にまだ空きがあるようす。
明日までに今抱えてる作業が片付いて空きがあったら参加申込しよう。

*1:公式であとでビデオもアップされることでしょうし

*2:どうやってるか解らなかったけど。。