OpenSocialアプリを開発する上での落とし穴

仕事の関係で、今度 OpenSocial アプリを作ろうということになったのですが、OpenSocial についての知識はゼロなので、まずは OpenSocial とはどういうものなのか、調べてみました。丸一日公式ドキュメントと格闘してみたんですが、思った以上に、いろんな「ワナ」が潜んでいるなと感じたので、ここにまとめてみたいと思います。

[追記 2009-01-09]

天使やカイザーと呼ばれて: OpenSocialはオープンです」 で、OpenSocial の開発に携わっていらっしゃる、よういちろうさんより本エントリについて言及していただきました。[落とし穴3] と [落とし穴4] については、私の勝手な想像というか、気になった点だったのですが、まったくの誤解とのことです。大変失礼しました・・・

というわけで、このエントリを読まれたあとは、是非よういちろうさんのエントリをお読みいただければと思います。

OpenSocial とは?

まずは FAQ を見てみましょう。

OpenSocial とは何ですか。

OpenSocial は、各種ウェブサイトでソーシャル アプリケーションを作成するための共通 API 群です。OpenSocial は、JavaScript API と Google Data API で構成されています。

よくある質問 – OpenSocial – Google Codeより

簡潔すぎて具体的なイメージが浮かびません・・・他にもいろいろなサイトを見てみて、とりあえず、「Google が提唱して、mixi や MySpace といったサイトが採用を発表している API 群」で「Facebookアプリのようなものを作るためのもの」だということだけ理解して、先に進みました。

[落とし穴1] まずは「ガジェット」から理解するべし

普通は、OpenSocial のスタート ガイドに目を通し、次にデベロッパー ガイド を読み進めるかと思います。(だって、そういう導線になってるから。)

でも、これが失敗の元!

実は、OpenSocial API を理解する前に、まずは Gadget API なるものを理解する必要があります。というのも、OpenSocial API は、Gadgets API に対して、ソーシャル機能を利用するための API セットを追加したものだからです。(詳しくは、OpenSocial API と Gadget APIについて – OpenSocial-Japan | Google グループ をご覧ください。)

つまり、最初に理解しなければならないのは、「ガジェット」なのです。

[落とし穴2] iGoogle で Gadget API が使えない?!

「ガジェット」なら、iGoogle でいろいろ追加できるし、どういったものかイメージしやすいですよね。さらに、ドキュメントも充実していて、比較的さくさくと読めます。

ところが、これに安心して、「じゃあ、簡単なガジェットのサンプルでも作ってみようかな」と思うと、ここにも落とし穴が。試行錯誤してコードを書き、iGoogle に登録して、いざ実行してみると、JavaScript エラーが出て動かない・・・なぜだ?!

実は、現バージョン(2009/1/5現在)の iGoogle は Gadget API に対応していません。Gadget API を使ったガジェットを動かすには、iGoogle Sandbox という実験のための環境が必要になります。(詳しくは、Google Japan Blog: iGoogle Sandbox 日本語版がオープンしました を参照してください。)

ついでに言うと、ガジェットのドキュメント内で紹介されている「Google Gadgets Editor」という開発ツールも、Gadget API を完全にはサポートしていないので、プレビューでは正常に動きません。というわけで、開発が結構めんどくさい・・・

[落とし穴3] 仕様変更の可能性

現段階では、OpenSocial API のバージョンは 0.8.1 であり、正式バージョン1.0 までにはまだまだ仕様が変更される可能性があります。従って、実験的にアプリを作るのはいいですが、企業などで本格的にアプリを開発してしまうのは時期尚早かと思います。

[落とし穴4] ブラウザのような・・・

例えば、iGoogle (Sandbox) で正常に動くものができたとして、OpenSocial に対応している mixi や MySpace でも同様に動くかというと、完全に保証はできません。

なぜなら、例えば、mixi が「OpenSocial に対応する」といっても、OpenSocial の仕様に従って書かれたコードを mixi 上で動かす環境は、Google が提供するわけではなく、mixi のエンジニアが独自に開発しているからです。つまり、Google は仕様を決めるだけ、実行環境(プラットフォーム)はそれぞれのサイト側で用意しているのです。

また、各サイトが独自に拡張機能を追加する可能性もあるそうで、そうなると完全互換性が保てなくなってしまいます。

どこかで聞いたことがあるような・・・そう、これじゃまるでブラウザの開発ではないですか!頭の痛い問題だ・・・

最後に

まだ、ほとんどアプリ開発はできていないのに、えらそうなことをいろいろ書いてしまいましたが、OpenSocial 自体は、アイデア次第で面白いものがたくさん生まれる可能性は秘めていると思います。というわけで、いろいろと試してみながら、「v1.0のリリース」と「安定した実行環境の整備」を待ちたいと思います。(ときれいにまとめてみた。)

OpenSocialアプリを開発する上での落とし穴」への1件のフィードバック

  1. pools

    ひさしぶりにテクノロジーに関するエントリーで楽しかったです。
    > [落とし穴4] ブラウザのような・・・
    は気持ちは分かります。

    もちろん「仕様の共通化」に多くの方が参加しコンセンサスを取っているんでしょうけど、実装の細かい部分は、仕様の行間を埋める作業がどうしてもでてくるんじゃないかなぁ。

    あくまでも印象ですけど。
    今後どうなっていくのか注目してまーす。

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>