2010-06-16

mixiアプリ開発 & 運用コンプリートブック の見本誌が届きました

おはようございます。なかじまんです。

6月19日 発売(予定)の mixiアプリ開発 & 運用コンプリートブック - ユーザをつかむソーシャルアプリのつくり方!育て方! の見本誌が届きました。



目次は、次のとおりです。@yoichiro さんの監修で、SAP 各社さんが、実際に世の中に送り出した mixiアプリの開発や運用の事例を解説したり、紹介する構成となっています。

* 序章
* Chapter 01 mixi アプリの基礎
* Chapter 02 『ようこそマイキッチン』の開発・運用事例
* Chapter 03 『セルフィちゃんねる』の開発・運用事例
* Chapter 04 ドリコムのアプリ開発・運用事例
* Chapter 05 『記憶スケッチ』の開発・運用事例
* Chapter 06 外部サーバ
* Chapter 07 OpenSocial jQuery による開発

当社も共著者として「Chapter 07 OpenSocial jQuery による開発」を担当しました。ミニアプリを題材として OpenSocial jQuery の使い方を説明しています。また、完動のソースコードとキャプチャを豊富に掲載して、OpenSocial jQuery を使って mixiアプリでできることを紹介しています。ので、mixiアプリの設計をしたり、コーディングをするときに、手元にあると役立つだろうと期待しています。

SAP 各社さんの Chapter は、次のような、とても興味深い内容になっています(怒られるかもしれませんが、印象を伝えたかったので、写真で紹介します)。

mixiアプリのバックエンドが、どのような構成になっていて、どう運用しているかといった話題もあります。



mixiアプリのトラフィックが、どうなっていて(どういう傾向があって)、それにどう対応したかといった話題もあります。



mixiアプリのプロジェクトが、どう進んで、どんなことをした(している)、どんなツールや文書を使ったといった話題もあります。



以上のとおり、SAP 各社さんしか知るはずのない、外からは見ることのできない話題が盛り込まれています。

広報的な意味はあるかもしれませんが、各社さんとも、自社のノウハウを公開する直接的な理由はないと思えますが、おそらく mixiアプリを含むソーシャルアプリの市場を盛り上げていこうという意思の表れなんじゃないかと思います。素晴らしいなぁ。

Amazo などのオンライン書店では予約も開始しています。ぜひお手元に。よろしくお願いいたします。

2010-06-09

OpenSocial Pages はソーシャルデータ駆動による Social Gadget の消費スタイルを提案するものです

こんにちは。なかじまんです。OpenSocial Pages ネタです。

OpenSocial Pages は、その構成例として、iPhone (iPod touch も) 向けに OpenSocial な機能を持つページ(=ガジェット)を提供できるようにしています。

さっそく OpenSocial Pages を使って iPhone 向けに、さささっと 2時間くらいで、タイムライン上でコミュニケーションするためのサンプルページを作ってみました。ページのソースコード (=ガジェット XML ファイル) は、次のサイトからダウンロードできます。

OpenSocial Pages Downloads
http://sites.google.com/a/lrlab.to/opensocial-pages/downloads

サンプルページといっても、完動品で、実用性を感じられるほどの機能を盛り込んであります。iPod touch で動いている様子を動画にしました。動画を見るとイメージが膨らむと思います。(オーディオは Google CM っぽくしてみましたw 知らない曲なので、あくまでもイメージです)



OpenSocial Pages のページは iPhone のホーム画面に追加できるようにしてあります。ので、Safari からブックマークしておけば、すぐにページを開くことができます。あと、ホーム画面のアイコンは、ガジェットXML の /ModulePrefs/Link/@rel="icon" で任意のアイコンを指定できます。



ホーム画面のアイコンからページを開くと、ローディング画面を挟むようにしてあります。現状は war/images/apple-touch-startup-image.png 固定ですので、必要に応じて差し替えてください。



認証ドメインの全メンバーのアクティビティをリスト表示しています。緑のハイライトは、タップしたときの効果です。定期的に Activites API をポーリングして、新しいアクティビティを追加しています。OpenSocial Pages の Activites API は UpdatedSince (この日時以降に更新されたもの) パラメータを備えていますので、たんなるポーリングよりもコストは抑えめにできます。



右上の Share ボタンをタップすると、スライドアップして投稿フォームを表示します。メッセージを入力して Send ボタンをクリックすると、そのテキストをアクティビティとして送信します。



タイムラインのメッセージを選択すると、スライドしてメッセージの全文を表示します。



Reply ボタンをタップすると、返信フォームを表示します。



Retweet ボタンをタップすると、RT フォームを表示します。



サンプルページの機能は、以上のとおりです。ぜひ、ページのソースコードと見比べてください。OpenSocial Pages は、ソーシャルグラフとアクティビティストリームの API を持ちます。そのため、この非常に少ないコードだけでも、これだけのソーシャルな機能を持つページが作成できてしまいます。

このように OpenSocial Pages の大きな特徴は、必要な機能を持つページを、その場でインスタントに作成できるということです。つまり、従来のように、多機能かつ汎用的なガジェットを使っていく方向性に加えて、そのときに必要な機能だけを持つガジェット(=ページ)を量産して消費して使い捨てにするという方向性も考慮に入れることができます。また OpenSocial Pages は、ソーシャルグラフとそこから発生したデータは、ページの存在とは無関係 *1 にデータとして保持します。ので、ページよりも、データに重きをおきます。

例えば、紹介したサンプルページは、Twitter のように多機能にしていくことはできますが、特定の人とだけ、タイムラインでコミュニケーションしたいなど、ある目的を持つメンバー向けのページを提供したとして、その後、そのページは使わなくなったとしても、アクティビティはそのまま残り、また別のページから別の使われ方をすることになるでしょう。

*1 ページを削除したときもデータは残りますが、AppData などページの存在が必須であるデータを、どう参照させるかは課題です。

2010-06-02

OpenSocial Pages という新しい取り組みの紹介です

こんにちは。なかじまんです。新しい取り組みのお知らせです。

OpenSocial Pages 0.9.0 を公開します。

OpenSocial Pages は Google App Engine for Java 上で動作する OpenSocial コンテナです。OpenSocial Pages は App Engine 上のアプリケーションに OpenSocial を組み込んだり、OpenSocial の上にアプリケーションを構築する、その元ネタとして提供するものです。

OpenSocial Pages は App Engine 向けに実装した完動品です。ソースコードを提供していますので、手元の環境でソースコードをビルドして App Engine にデプロイするだけで、その動作を確認できます。OpenSocial Page のソースコードは、次のサイトからダウンロードできます。

OpenSocial Pages - Nakajiman Software
http://sites.google.com/a/lrlab.to/opensocial-pages/

OpenSocial Pages は、mixi や gooホームのように、アプリの開発者がいて、SNS のユーザがいて、その間をコンテナが取り持ち、ひとつのサービスを提供するという形態を目指すものではなく、Enterprise OpenSocial Whitepaper などの新しい方向性に触発されて、今ある(これから作る)システムやサービスに OpenSocial をどう取り込んでいくかを意識して取り組もうというものです。

OpenSocial Pages は Google アカウント認証を前提としています。アプリケーションを Google Apps と結び付けることで Google Apps ドメインのアカウントに限定することもできます。つまり、信頼できる限られた範囲のユーザでの利用を想定しています。



OpenSocial Pages は、ウェブページを 1つのガジェットとして扱います。ガジェットは iframe を使って表示するのではなく、ウェブページの HTML ドキュメントにインライン表示します。つまり、ウェブページ全体が Canvas ビューになるといえます。

この特性により、例えば iPhone や iPad といった広い分野で OpenSocial アプリの仕組みを活用できます。実例も兼ねて、OpenSocial Pages のソースコードでは jQTouch を組み込み iPhone 仕様でページを表示するようにしてあります。このページ自体が 1つのガジェットになり、そのガジェットから OpenSocial API が使えます。



OpenSocial Pages は、コントロールパネルという管理機能をあらかじめ持っています。コントロールパネルは、管理者(admin) のみアクセスでき、次のリソースを管理したり、編集できたりします。

* ユーザ
* グループ
* ページ (= ガジェット)
* プロキシ



OpenSocial Pages は、人の関係性を、次のとおり、ユーザとグループで表現します。また、この関係性は、OpenSocial API にも適用しています。

* ユーザは Google アカウントに対応する
* ユーザは、他のユーザを Follow できる (友達関係)
* 管理者は、ドメインのグループを作成できる
* ユーザは、ドメインのグループに参加できる

OpenSocial Pages は、ウェブページをガジェットに見立てていますが、ガジェットの元ネタは、従来どおり、ガジェット XML です。OpenSocial Pages は、オンラインのガジェットエディタを持っていて、編集したガジェット XML は App Engine のデータストアに保持します。



また、ガジェットエディタから iPhone/iPod や iPad を選択して、特定の画面サイズでポップアップして、ウェブページを開けるようにしています。Safari を使えば、実機とほぼ同じように表示できます。

OpenSocial Pages は gadgets.io.makeRequest によるリクエスト中継をホワイトリストで制限します。許可していない URL へのリクエストは中継しません。また、次の中継方法をサポートしています。

* あらかじめ定めた User/Password による基本認証
* あらかじめ定めた User/Password による WSSE 認証
* HMAC-SHA1 による 2-Legged OAuth
* あらかじめ定めた User/Password による Zoho CRM API の呼び出し



OpenSocial Pages は OpenSocial v1.0 仕様に準じて実装を進めていて、次の OpenSocial JavaScript API をサポートしています。v0.9 や v0.8 は捨てています。

* 中継先を管理できる gadgets.io.makeRequest
* 言語選択による Message Bundle
* URLパラメータによる User Preference の適用
* User Perference は Web Storage (localStorage) に格納
* iPhone 向け User Perference エディタ
* ビューの遷移 (Canvas から Canvas のみ)

* People, Groups, Activites, AppData, Messages を JSON-RPC で実装
* People は、取得(friens, group)、更新、削除、Follow、グループ参加を実装
* Groups は、取得、作成、更新、削除
* Activites は、取得(friends, group, mentions)、作成、更新、削除を実装
* Messages は、送信(person, group)を実装

パーミッションモデルは、一般性を保持しつつ、制限を緩いものとしています。

* Viewer は、他人や他アプリも含めて、あらゆるデータを取得できます
* Viewer は、自身のデータを作成、更新、削除できます
* Viewer は、すべての他人や他グループに対して、メッセージを送信できます
* 管理者(Admin)は、他人や他アプリも含めて、あらゆるデータを取得、作成、更新、削除できます

駆け足になってしまいましたが、ざっと概略をお伝えしました。

OpenSocial Pages をきっかけとして、今後、いろいろな分野で OpenSocial が適用できないか... という話題が増えることを期待しています。もし、OpenSocial の適用を検討することがありましたら、特にお役に立てると考えますので、お声掛けいただきたく存じます。