mixi アプリをさわってみた

mixi アプリがβテスト開始ということで早速触ってみた。

What's mixi アプリ?

mixi アプリは mixi 上で動作する OpenSocial ガジェット。
2009.05.06 現在でβテスト中で、8月から正式公開。

Why mixi アプリ?

mixi が開発者に報酬を出すって発表したから。

アプリ開発者に対する報酬も発表された。mixiアプリの1ページビュー(PV)あたり最低0.01円が報酬となり、金額はPVに応じて上がっていく。また、アイテム課金などを行うための課金システムの仕組みも用意され、課金収入の8割は開発者の取り分となる。このほか、アプリに広告を表示することも可能で、独自の広告を表示することができるほか、ミクシィもアプリ向けの広告プログラムを用意する。

http://internet.watch.impress.co.jp/cda/news/2009/04/23/23265.html

今のうちに勉強しておけば億万長者になれる\(^o^)/

What's OpenSocial?

Facebook がアプリケーションを独自に開発できる仕組みを作って人気が出たのを
Google が気に入らなくて作った SNS 上でアプリケーションを開発するための枠組み。
XML (+ HTML + JavaScript) で記述し,実行するときは iframe として表示される。
XML を解釈して iframe に変換するプログラムを OpenSocial コンテナと呼び
オープンソースの実装では Apache Shindig がある。
mixiApache Shindig の実装を参考に独自に実装してるみたい。

How to develop?

Gadget XML というものを記述する。

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="Hello World Appli"></ModulePrefs>
  <Content type="html"><![CDATA[
    <h1>Hello World!</h1>
  ]]></Content>
</Module>


詳しい内容は
mixiアプリ << mixi Developer Center (ミクシィ デベロッパーセンター) とか
http://code.google.com/intl/ja/apis/opensocial/ とかに
ドキュメントが日本語であるからそっちを読むといいと思うよ。

How to debug?

mixi アプリの開発でまずわからなかったのでデバッグの仕方。
初めは Gadget XML を編集しては mixi の情報を更新しての繰り返しだったけど
絶対間違ってると思って調べてみた。

使えそうなのは以下の 2つ


Google Gadget Editor はブラウザ上で動作する OpenSocial ガジェットエディタ。
編集した結果を即座にプレビューで見ることができる。
しかもサンプルコードが数多く用意されていてそれらを即座にロードできるため
クックブック的な使い方までできる。
ただし、永続化データの API がうまく動かない等の問題もあり
最初の勉強と UI の開発ぐらいに使うべきだと思う。


OpenSocial Development Environment は Eclipse プラグインとして動作する
OpenSocial ガジェット開発環境。内部では Apache Shindig を利用している。
Update Site 対応なので Eclipse の UI から一発でインストールできるので楽ちん。
永続化データの API とかもちゃんと動くし、何よりローカルで完結しているので
OSDE を使うのが現時点での最適解だと思われる。
# ただし、まだ Ver.1.0 にもなっていないのでところどころ動作が怪しい部分もある

作った物

読書メーター - 最近読んだ本
http://platform001.mixi.jp/view_appli.pl?id=1819
読書メーター - 最近読んだ本


読書メーターの最近読んだ本のブログパーツを表示するだけのアプリ。
XML 一枚で実現している。最初はシンプルな方がいいと思うんだ。


ソースコード
http://gist.github.com/102017
永続化データの操作や各 view にまたがる処理をどう記述するかあたりの
サンプルコードになると思う。
ライセンスは MIT ライセンスで。使う時には gist で fork してくれると嬉しい。
少しいじれば twitter の最新の発言を表示するアプリとか
tumblr の最新の reblog を表示するアプリとか
FriendFeed を垂れ流しするアプリなんかはすぐ書けると思う。
# それらが mixi ユーザに受けるかは別として

所感

mixiOpenSocial コンテナとデバッグに使った Apache Shindig の実装が
ちょっとずつ違って両方で動くコードにするのに少しハマった。
あと例のごとく IE で動かすのも少しハマった。
クロスブラウザだけでなくクロスコンテナまで考えなければならない
OpenSocial 開発は大変だと感じた。つーかぶっちゃけ飽きた。