<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>つくるぶガイドブログ</title>
      <link>http://www.tkrb.jp/guide/</link>
      <description>つくるぶガイドの7人がお届けする、Web開発にチョット役立つブログです。</description>
      <language>ja</language>
      <copyright>Copyright 2008</copyright>
      <lastBuildDate>Mon, 31 Mar 2008 14:30:00 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Adobe AIRでAjax！(その２) AIR APIを利用してWebとLocalを繋ぐマッシュアップ サンプル</title>
         <description><![CDATA[こんにちは、JavaScript担当の<a href="http://www.ark-web.jp/" target="_blank">（株）アークウェブ</a>の竹村です。

前回はAdobe AIRの制作環境構築と、ユーザに配布するまでの流れを説明しました。

<ul class="icon-list"><li><a href="http://www.tkrb.jp/guide/2008/03/just_shift_to_adobe_air_by_html_and_javascript.html" target="_blank">Adobe AIRでAjax！HTMLとJavaScriptでそのままAIRに移行できるサンプル</a></li></ul>

今回もマッシュアップサービスを利用しつつ、AIR APIをいくつか使ったサンプルを用意しました。

<h4 class="large-tit">ホットペッパーのマッシュアップサンプル『オヒルダ！』</h4>

ホットペッパーのAPIに「ランチ」というフラグがあるのに着目し、ランチを提供しているショップリストを表示するサンプルです。ショップ検索をする際に、予め自分の住所や
指定した緯度経度などを設定できるようにしています。

オヒルダ！の構成は↓このようになります。

<img alt="01organize.jpg" src="http://www.tkrb.jp/guide/2008/03/31/01organize.jpg" width="470" height="400" />

最初にWeb版を作ります。Web版には下記の機能を盛り込みます。

w-1. ホットペッパーAPIを通して検索結果一覧を表示する
w-2. 検索で使用する地域/ジャンルを設定できるようにする
w-3. 設定をAIRアプリ用にエクスポートできるようにする

AIR版には下記の機能を盛り込みます。

a-1. ホットペッパーAPIを通して検索結果一覧を表示する
a-2. Web版の設定をインポートできるようにする

今回利用するAIR APIは『ローカルファイル選択ダイアログの表示』と『ファイルの内容の読み取り』と『SQLiteへのアクセス』の 3点です。

完成版は↓こちらからアクセスできます。
<h5 class="small-tit">オヒルダ！ (Web版)</h5>
<a href="http://okra.ark-web.jp/~takemura/public/js/adobe_air/ohiruda/" target="_blank">
<img alt="02image.jpg" src="http://www.tkrb.jp/guide/2008/03/31/02image.jpg" width="470" height="548" />
</a>
<h5 class="small-tit">オヒルダ！ AIR版 インストーラー</h5>
<iframe src="http://okra.ark-web.jp/~takemura/public/js/adobe_air/ohiruda/installer/" width="470" height="240">
<a href="http://okra.ark-web.jp/~takemura/public/js/adobe_air/ohiruda/installer/" target="_blank">iframeをご覧になれない場合はこちらをどうぞ</a></iframe>


今回のレジュメは↓このようになっています。

<ul class="common-list">
<li>w-1. ホットペッパーAPIを通して検索結果一覧を表示する</li>
<li>w-2. 検索で使用する地域/ジャンルを設定できるようにする</li>
<li>w-2-1. GoogleMapsで住所から緯度/経度を取得する</li>
<li>w-2-2. GoogleMapsで円を描く</li>
<li>w-2-3. 設定内容を保存する</li>
<li>w-3. 設定をAIRアプリ用にエクスポートできるようにする</li>
<li>a-1. ホットペッパーAPIを通して検索結果一覧を表示する</li>
<li>a-2. Web版の設定をインポートできるようにする</li>
<li>a-2-1. ローカルファイル選択ダイアログを表示して選ばせる</li>
<li>a-2-2. ファイルを開いて内容を読み込む</li>
<li>a-2-3. SQLiteに設定を保存する</li>
<li>a. SQLiteから設定を読み込むには</li>
<li>オヒルダ！AIR版のソース一式ダウンロード</li>
<li>まとめ</li>
</ul>
]]></description>
         <link>http://www.tkrb.jp/guide/2008/03/mashup_sample_which_joins_web_and_local_together_using_air_api.html</link>
         <guid>http://www.tkrb.jp/guide/2008/03/mashup_sample_which_joins_web_and_local_together_using_air_api.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">AIR API</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Adobe AIR</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">CookieManager</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">GoogleMaps</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">SQLite</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">ホットペッパー</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">マッシュアップ</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">ローカルサーチ</category>
        
         <pubDate>Mon, 31 Mar 2008 14:30:00 +0900</pubDate>
      </item>
            <item>
         <title>失敗しない Rails が動かせるホスティングサービス選びと環境構築</title>
         <description><![CDATA[Ruby（とRails）を担当している石原です。

ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) を作る過程をレポートしてきましたが、10回目の今回をもって終わりとさせていただきます。

最後は、いよいよリリースしようという段階で必要な、ホスティングサービス選びと環境構築について書きたいと思います。

参考までにこれまでのエントリーはこちらです ↓

<ol>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/10/ruby_on_rails_1.html">つくるぶガイドブログ: Ruby on Rails を使ってひとりでサービスを作ってみよう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/post_2.html">つくるぶガイドブログ: ひとりサービスの雛型をつくる(リキッドレイアウト、GetText、Acts as Authenticated)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/scriptgen.html">つくるぶガイドブログ: Rails で楽々ソーシャルブックマークの仕組みを作る</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/12/rails_acts_as_taggable_redux.html">つくるぶガイドブログ: Rails プラグイン acts_as_taggable_redux でタグクラウドを作ろう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_ajax.html">つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_rcov.html">つくるぶガイドブログ: Rails + rcov でテストカバレッジを調べる</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/02/capistrano_rails.html">つくるぶガイドブログ: capistrano で本番環境にデプロイ</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/02/rails_yahoo_api_widgets_tabnav.html">つくるぶガイドブログ: Rails で Yahoo 検索 API + Widgets Tabnav でタブナビゲーション</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/03/14.html">つくるぶガイドブログ: ひとりサービスをリリースするまでやっておくこと10個</a></li>
</ol>
]]></description>
         <link>http://www.tkrb.jp/guide/2008/03/_rails.html</link>
         <guid>http://www.tkrb.jp/guide/2008/03/_rails.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Ruby</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Rails</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">ホスティング</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">環境構築</category>
        
         <pubDate>Wed, 19 Mar 2008 12:35:00 +0900</pubDate>
      </item>
            <item>
         <title>JiftyでWebアプリをつくる - JiftyからMVCを考える</title>
         <description><![CDATA[お久しぶりです、Perl担当の西山です。

前回に続きDRY(Don't Repeat Yourself)を追求するWebフレームワークJiftyを取り上げます。
手元の環境にPerlの実行環境やJiftyをインストールされていない方はこれまでの記事を参照してください。
今回はJiftyと一緒に配布されている"ShrinkURL"というサンプルアプリケーションを題材に、
Jiftyに従ってアプリケーションを開発する場合のモジュール構造や考え方を見ていきたいと思います。

これまでの記事：
<ol class="number-list">
<li><a href="http://www.tkrb.jp/guide/2008/01/jiftyweb_windows.html" target="_blank">JiftyでWebアプリをつくる - Windowsにインストール</a></li>
<li><a href="http://www.tkrb.jp/guide/2008/02/jiftyweb.html" target="_blank">JiftyでWebアプリをつくる - ログイン機能を作る</a></li>
</ol>

<h4 class="large-tit">Jiftyの考え方</h4>
一般的にWebアプリケーションのフレームワークなどで使用されるアプリケーション構造はMVC(Model-View-Controller)と呼ばれる形に機能は分類されますが、
Jiftyでは本家サイトの<a href="http://www.jifty.org/view/BasicConcepts" target="_blank">Basic concepts of Jifty</a>で説明されているように「Dispatcher」「Action]
「Template」「Model」という4つの要素でアプリケーションを構成しています。
それぞれの要素は主に以下のような役割で開発するように設計されています。

<ul class="common-list">
<li><b>Dispatcher: URLに対してActionやTemplateへのマッピングを定義。</b></li>
<li><b>Action: 画面内での操作やリクエストなどをトリガーに発生するビジネスロジックを定義。</b></li>
<li><b>Template: 表示系のデータ取得処理や、UIのレイアウト情報を定義。</b></li>
<li><b>Model: 操作対象となるデータモデルの構造や操作を定義。</b></li>
</ul>

通常のMVCではControllerでまとめて扱われることの多いDispatcherとActionの役割を、Jiftyではフレームワークレベルで明確に分けています。
また、表示系の処理もViewが使用するhtmlテンプレートやControllerに分散しやすいですが、JiftyではTemplateのPerlモジュール内で一括管理するように設計されているのが特徴だと思います。


<h4 class="large-tit">サンプルアプリShrinkURLを見る</h4>
新しいモジュールやフレームワークの使い方を理解するには
サンプルをてっとり早く動かしてみていろいろいじってみるのが早いと思います。
サンプルアプリケーションであるShrinkURLを見てみましょう。

<h5 class="small-tit">セットアップ</h5>
先ほどサンプルはJiftyと一緒に配布されていると書きましたが、
Windows版のPPMには含まれていないようです。
TortoiseSVNなどのSubversionクライアントをインストールしている方は下記レポジトリから、
チェックアウトしてください。
<pre style="line-height:1.5em; overflow:auto; border:1px solid #269000; font-size:10px; padding:0px 10px 0px 10px;">
http://svn.jifty.org/svn/jifty.org/jifty/trunk/examples/ShrinkURL
</pre>

ブラウザ経由でも<a href="http://search.cpan.org/CPAN/authors/id/S/SA/SARTAK/Jifty-0.71129.tar.gz" target="_blank">CPANのJiftyのページから</a>ダウンロードできます。
解凍後のフォルダのexamples\ShrinkURLが今回使用するアプリケーションフォルダです。
適当な作業フォルダにShrinkURLをコピーしてください。

また、ShrinkURLが依存するモジュールとしてNumber::RecordLocatorが必要になります。
別途Package Managerを使ってインストールしてください。

最後に、以下のようにコマンドプロンプトから
ShrinkURLフォルダ配下でコマンドを実行するとセットアップ完了です。
<pre style="line-height:1.5em; overflow:auto; border:1px solid #269000; font-size:10px; padding:0px 10px 0px 10px;">
C:\tmp\ShrinkURL>perl bin\jifty schema --setup
</pre>


<h5 class="small-tit">動作確認</h5>
まずは素の状態の動作を見てみます。
以下のようにjiftyコマンドにserverオプションを指定して実行するとアプリケーションサーバが起動し、
デフォルトでは<a href="http://localhost:8888/" target="_blank">http://localhost:8888/</a>のURLで
アクセスできるようになります。
<pre style="line-height:1.5em; overflow:auto; border:1px solid #269000; font-size:10px; padding:0px 10px 0px 10px;">
C:\tmp\ShrinkURL>perl bin\jifty server
</pre>

ShrinkURLは、入力されたURLにユニークなキーを割り当て、短縮したURLでサイトにアクセスできるようにするアプリケーションです。
登録したURLはDBに登録され、短縮したURLはいつでも利用することができます。


1.URLを入力してShrink it!ボタンをクリック

<img alt="sc0000.png" src="http://www.tkrb.jp/guide/2008/03/19/sc0000.png" width="480" height="267" />

2.短縮したURLが生成される

<img alt="sc0001.png" src="http://www.tkrb.jp/guide/2008/03/19/sc0001.png" width="480" height="267" />

生成されたURLにブラウザからアクセスすると、元の入力したURLへリダイレクトされます。
]]></description>
         <link>http://www.tkrb.jp/guide/2008/03/jiftyweb_jiftymvc_1.html</link>
         <guid>http://www.tkrb.jp/guide/2008/03/jiftyweb_jiftymvc_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Perl</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Webアプリケーション</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Windows</category>
        
         <pubDate>Tue, 18 Mar 2008 10:18:28 +0900</pubDate>
      </item>
            <item>
         <title>アプリケーションとサーバサイドマッシュアップの統合</title>
         <description><![CDATA[この連載の<a href="http://www.tkrb.jp/guide/2007/11/struts_1.html">第2回</a>、<a href="http://www.tkrb.jp/guide/2007/12/ajax.html">第3回</a>、<a href="http://www.tkrb.jp/guide/2008/01/post_5.html">第4回</a>でStrutsとAjaxを組み合わせてサーバへの通信と比較的リッチなUIを作成しました。また、<a href="http://www.tkrb.jp/guide/2008/01/stru.html">第5回</a>、<a href="http://www.tkrb.jp/guide/2008/02/java_apiweb.html">第6回</a>、<a href="http://www.tkrb.jp/guide/2008/02/restletjsonlib_web.html">第7回</a>ではマッシュアップについて説明し、実際にサーバーサイドマッシュアップの実装を行いました。

 今回は、題材のアプリケーションにサーバーサイドマッシュアップを統合します。]]></description>
         <link>http://www.tkrb.jp/guide/2008/03/struts.html</link>
         <guid>http://www.tkrb.jp/guide/2008/03/struts.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Java</category>
        
        
         <pubDate>Wed, 12 Mar 2008 18:45:14 +0900</pubDate>
      </item>
            <item>
         <title>Adobe AIRでAjax！HTMLとJavaScriptでそのままAIRに移行できるサンプル</title>
         <description><![CDATA[こんにちは、JavaScript担当の<a href="http://www.ark-web.jp/" target="_blank">（株）アークウェブ</a>の竹村です。

2008年2月25日にAdobe AIR 1.0 (英語版)がリリースされましたね。

<ul class="icon-list"><li><a href="http://www.adobe.com/jp/products/air/" target="_blank">Adobe AIR</a></li></ul>


AIRはHTMLやJavaScriptなどWebの技術をそのまま利用してクライアントサイドのデスクトップアプリケーションの開発ができるので、今までのWebデベロッパーには親しみやすいと思います。

今回は、このAIRでHTMLとJavaScriptを使ったWebアプリをAIRに変換してユーザに配布するまでについて、書いていきます。


レジュメは↓このようになっています。

<ul class="common-list">
<li>AIRアプリケーションを制作できる環境構築</li>
<li>ユーザに配布するまでの流れ</li>
<li>アプリケーション記述ファイルの作成</li>
<li>AIRコンテンツの制作</li>
<li>AIRコンテンツの確認</li>
<li>電子署名の作成</li>
<li>インストールパッケージの作成</li>
<li>Webにアップする (インストールバッジの作成)</li>
<li>おまけ：JavaScriptライブラリを利用したフォーム入力チェックのAIR化</li>
<li>フォーム入力チェックのWeb版を制作</li>
<li>AIRアプリをWebにアップするまで一気におさらい</li>
<li>まとめ</li>
</ul>

今回作る2つのサンプルは↓こんな感じです。

<ul class="icon-list">
<li><a href="http://okra.ark-web.jp/~takemura/public/js/adobe_air/ajax_sample/ajax_sample_for_web.html" target="_blank">外部ファイルを読み込んで表示するサンプル<br />
<img alt="img_sample02.jpg" src="http://www.tkrb.jp/guide/2008/03/12/img_sample02.jpg" width="470" height="256" /></a></li>
<li><a href="http://okra.ark-web.jp/~takemura/public/js/adobe_air/form_sample/form_sample_for_web.html" target="_blank">フォームの入力チェックサンプル<br />
<img alt="img_sample01.jpg" src="http://www.tkrb.jp/guide/2008/03/12/img_sample01.jpg" width="470" height="179" /></a></li>
</ul>

まずは、Windows環境にAIRアプリケーションを構築できる環境を作って、
パブリッシュした swf をサーバにおいて動作できるようにしてみましょう。]]></description>
         <link>http://www.tkrb.jp/guide/2008/03/just_shift_to_adobe_air_by_html_and_javascript.html</link>
         <guid>http://www.tkrb.jp/guide/2008/03/just_shift_to_adobe_air_by_html_and_javascript.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">AIR+HTML+JavaScript</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Adobe AIR</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">入力チェック</category>
        
         <pubDate>Wed, 12 Mar 2008 14:00:00 +0900</pubDate>
      </item>
            <item>
         <title>ひとりサービスをリリースするまでやっておくこと10個</title>
         <description><![CDATA[Ruby（とRails）を担当している石原です。

ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) を作る過程をレポートしています。

今回は、開発はひとやすみにして、サービスをリリースする前にやっておくべき細々としたことを紹介したいと思います。

これらは筆者がひとりサービスをリリースするときに、毎回なんとなく思い出しながらやってきたことで、サービスによっては忘れてしまっているものもあります。

ですから、次からはこれをチェックリスト代わりに使おうと思っています。

Rails に限った話とWebサービス一般の話が混ざっています。ほかの言語やフレームワークを使っている方にも、Rails に限った話を自分の使っている環境に読み替えれば、いくらか参考になるかもしれません。

参考までにこれまでのエントリーはこちらです ↓

<ol>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/10/ruby_on_rails_1.html">つくるぶガイドブログ: Ruby on Rails を使ってひとりでサービスを作ってみよう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/post_2.html">つくるぶガイドブログ: ひとりサービスの雛型をつくる(リキッドレイアウト、GetText、Acts as Authenticated)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/scriptgen.html">つくるぶガイドブログ: Rails で楽々ソーシャルブックマークの仕組みを作る</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/12/rails_acts_as_taggable_redux.html">つくるぶガイドブログ: Rails プラグイン acts_as_taggable_redux でタグクラウドを作ろう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_ajax.html">つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_rcov.html">つくるぶガイドブログ: Rails + rcov でテストカバレッジを調べる</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/02/capistrano_rails.html">つくるぶガイドブログ: capistrano で本番環境にデプロイ</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/02/rails_yahoo_api_widgets_tabnav.html">つくるぶガイドブログ: Rails で Yahoo 検索 API + Widgets Tabnav でタブナビゲーション</a></li>
</ol>
]]></description>
         <link>http://www.tkrb.jp/guide/2008/03/14.html</link>
         <guid>http://www.tkrb.jp/guide/2008/03/14.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Ruby</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">exception notifier</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">google adsense</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">google analytics</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">montastic</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">rails</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">slow query log</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">バックアップ</category>
        
         <pubDate>Wed, 05 Mar 2008 11:20:29 +0900</pubDate>
      </item>
            <item>
         <title>lightboxをカスタマイズしてみよう（中編）- 角丸対応ライブラリとCanvas</title>
         <description><![CDATA[<img alt="image_main.jpg" src="http://www.tkrb.jp/guide/2008/02/29/image_main.jpg" width="480" height="303" />

※このエントリは「<a href="http://www.tkrb.jp/guide/2008/01/post_6.html" target="_blank">Lightboxのデザインをカスタマイズしてみよう（前編）</a>」のつづきです。

こんにちは、HTML+CSS担当の小森です。
ずいぶん間が空いてしまいましたが、<a href="http://www.tkrb.jp/guide/2008/01/post_6.html" target="_blank">前回</a>の続きです。前回は、CSSだけでlightboxを角丸にする方法をいろいろと模索したものの、サイズ可変に対応できなかった…というところで終わりました。]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/lightbox_canvas.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/lightbox_canvas.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">HTML/CSS</category>
        
        
         <pubDate>Fri, 29 Feb 2008 22:33:32 +0900</pubDate>
      </item>
            <item>
         <title>Restletとjson-lib を使ったWebサービスへのアクセス</title>
         <description><![CDATA[<a href="http://www.tkrb.jp/guide/2008/02/java_apiweb.html">前回の内容</a>は、標準Java APIを使用を使用してテクノラティのWebサービスにアクセスしました。今回は、<a href="http://www.tkrb.jp/guide/2008/01/stru.html">前々回</a>で紹介した標準Java API以外のライブラリを利用して、Webサービスにアクセスしてみたいと思います。]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/restletjsonlib_web.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/restletjsonlib_web.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Java</category>
        
        
         <pubDate>Mon, 25 Feb 2008 22:50:22 +0900</pubDate>
      </item>
            <item>
         <title>楽天API＋SWFAddress2.0を利用したストアのマッシュアップ</title>
         <description><![CDATA[こんにちは、JavaScript担当の<a href="http://www.ark-web.jp/" target="_blank">（株）アークウェブ</a>の竹村です。


前回の『<a href="http://www.tkrb.jp/guide/2008/02/state_control_that_used_swfaddress2.html" target="_blank">SWFAddress2.0を利用した「状態」による機能制御</a>』でSWFAddressのによるディープリンクの作り方と、通常のイベント駆動との違いについて理解いただけたと思います。

今回はこれを利用して、JavaScriptだけで楽天APIとマッシュアップしたストアのサイトを作ってみたいと思います。

レジュメは↓このようになっています。

<ul class="common-list">
<li>Ajaxストア つくるぶ店</li>
<li>楽天のAPI</li>
<li>状態の設計</li>
<li>初期化と状態制御部分</li>
<li>楽天APIでJSONを取得するまで</li>
<li>取得したJSONの出力は<em>テンプレート</em>を外部ファイルで</li>
<li>詳細側も同じ要領で出力</li>
<li>ディープリンクにアクセスしてみる</li>
<li>まとめ</li>
</ul>

<h4 class="large-tit">Ajaxストア つくるぶ店</h4>

どういうアプリか完成品を見てみてください。
名づけて『Ajaxストア つくるぶ店』ですっ！

<p class="url"><a href="http://okra.ark-web.jp/~takemura/public/js/swfaddress2_store_demo/#/detail/?category=100317&product=wineya:664477" target="_blank">▼Ajaxストア つくるぶ店
<img alt="ajax_store.jpg" src="http://www.tkrb.jp/guide/2008/02/24/ajax_store.jpg" width="450" height="351" />
http://okra.ark-web.jp/~takemura/public/js/swfaddress2_store_demo/#/detail/?category=100317&product=wineya:664477</a>
</p>
]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/swfaddress2_store-mushup_demo_with_rakuten-api.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/swfaddress2_store-mushup_demo_with_rakuten-api.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">RIA</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">SWFAddress</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">外部テンプレート</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">楽天API</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">状態制御</category>
        
         <pubDate>Mon, 25 Feb 2008 10:30:00 +0900</pubDate>
      </item>
            <item>
         <title>Rails で Yahoo 検索 API + Widgets Tabnav でタブナビゲーション</title>
         <description><![CDATA[Ruby（とRails）を担当している石原です。

ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) を作る過程をレポートしています。

これまでのエントリーはこちら ↓

<ol>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/10/ruby_on_rails_1.html">つくるぶガイドブログ: Ruby on Rails を使ってひとりでサービスを作ってみよう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/post_2.html">つくるぶガイドブログ: ひとりサービスの雛型をつくる(リキッドレイアウト、GetText、Acts as Authenticated)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/scriptgen.html">つくるぶガイドブログ: Rails で楽々ソーシャルブックマークの仕組みを作る</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/12/rails_acts_as_taggable_redux.html">つくるぶガイドブログ: Rails プラグイン acts_as_taggable_redux でタグクラウドを作ろう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_ajax.html">つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_rcov.html">つくるぶガイドブログ: Rails + rcov でテストカバレッジを調べる</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/02/capistrano_rails.html">つくるぶガイドブログ: capistrano で本番環境にデプロイ</a></li>
</ol>

今回は API との連携、マッシュアップをおこなってみたいと思います。

手前味噌ではありますが、筆者が以前作成した

&raquo; <a target="_blank" href="http://blog.champierre.com/archives/504">Rails で Yahoo 検索 API を使うためのプラグイン YahooSearchApi : 僕は発展途上技術者</a>

を使います。

ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) は、みんながOSを入れた直後にどんなアプリケーションをインストールするのかを、そのアプリケーションの Web ページをブックマークすることで共有するサイトです。

アプリケーション名をキーワードに、API を使って Yahoo 検索の結果を表示することで、そのアプリケーションの関連情報を表示してみます。

後半では Widgets というプラグインの Tabnav 機能を使って、タブナビゲーションを実現します。
]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/rails_yahoo_api_widgets_tabnav.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/rails_yahoo_api_widgets_tabnav.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Ruby</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">API</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Rails</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Tabnav</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Widgets</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Yahoo</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">タブ</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">プラグイン</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">検索</category>
        
         <pubDate>Wed, 20 Feb 2008 10:00:00 +0900</pubDate>
      </item>
            <item>
         <title>標準Java APIを使用したWebサービスへのアクセス</title>
         <description><![CDATA[昨今のJavaは、大規模なWebアプリケーションを構築するための技術として、すっかり定着しました。サーバサイドでの処理としては、データベースへのアクセスが大半を占めることでしょう。しかし最近では、一般公開されている多くのWebサービスを利用する機会が増えてきています。それは一部のマッシュアップサイトにとどまらず、企業システムの中でも採用されることが多くなってきています。Javaエンジニアにとって、サーバサイドマッシュアップというキーワードは、今後どんどん身近なものになります。

<a href="" target="_blank">前回の内容</a>は、典型的なマッシュアップの形態や、SOAPやRESTなどのWebサービスの種類についても取り上げました。今回は、実際にWebサービスにアクセスして情報を得るためのコードを紹介しようと思います。何らかのライブラリをいきなり使っても良いのですが、まずは堅く、標準Java APIのみで試してみたいと思います。といっても、とっても面倒な手順というわけではありませんので、ご安心ください。]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/java_apiweb.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/java_apiweb.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Java</category>
        
        
         <pubDate>Tue, 12 Feb 2008 20:03:12 +0900</pubDate>
      </item>
            <item>
         <title>SWFAddress2.0を利用した「状態」による機能制御</title>
         <description><![CDATA[こんにちは、JavaScript担当の<a href="http://www.ark-web.jp/" target="_blank">（株）アークウェブ</a>の竹村です。

以前、「<a href="http://www.tkrb.jp/modules/feature0/index.php?id=12" target="_blank">Flash|Ajaxベストサイトセレクション２０</a>」でご紹介していた
「Gucci」のサイトですが、今もなお、Ajaxによる画面遷移を行っています。

<ul class="icon-list"><li><a href="http://www.gucci.com/us/index2.html" target="_blank">Gucci</a></li></ul>

さて、この「Gucci」のサイトを語る上で外せないのが、オンラインショッピング ページのURLです。

例えば、↓こちらのバッグのURLへアクセスすると、バッグの詳細画面が表示されます。
<a href="http://www.gucci.com/us/us-english/us/spring-summer-08/web-exclusives/#0-179859-197020BCB1G7007" target="_blank">http://www.gucci.com/us/us-english/us/spring-summer-08/web-exclusives/#0-179859-197020BCB1G7007</a>

# 以下に商品を表すIDが振ってあります。

これを取ってアクセスすると、↓このカテゴリトップが表示されます。
<a href="http://www.gucci.com/us/us-english/us/spring-summer-08/web-exclusives/" target="_blank">http://www.gucci.com/us/us-english/us/spring-summer-08/web-exclusives/</a>

このように商品詳細へ直接リンクを張ることを「ディープリンク」と呼ぶようです。
今回は、このディープリンクを実装する概念とライブラリをご紹介します。

レジュメは↓このようになっています。

<ul class="common-list">
<li>SWFAddress2.0</li>
<li>タブ切り替えのサンプル</li>
<li>初期化処理</li>
<li>イベントハンドラの処理</li>
<li>イベント駆動との違い</li>
<li>状態の中のパラメータ</li>
<li>ディープリンクにアクセスしてみる</li>
<li>次回予告</li>
</ul>


まず、SWFAddress2.0というディープリンクをお助けするライブラリがありますので、
このライブラリを使いながら、概念を理解していきましょう。
]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/state_control_that_used_swfaddress2.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/state_control_that_used_swfaddress2.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">JavaScript</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">PopBox</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">SWFAddress</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">状態制御</category>
        
         <pubDate>Fri, 08 Feb 2008 15:00:00 +0900</pubDate>
      </item>
            <item>
         <title>capistrano で本番環境にデプロイ</title>
         <description><![CDATA[Ruby（とRails）を担当している石原です。

ソーシャル「OSを入れた後にインストールする10のアプリケーション」(仮) を作る過程をレポートしています。

これまでのエントリーはこちら ↓

<ol>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/10/ruby_on_rails_1.html">つくるぶガイドブログ: Ruby on Rails を使ってひとりでサービスを作ってみよう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/post_2.html">つくるぶガイドブログ: ひとりサービスの雛型をつくる(リキッドレイアウト、GetText、Acts as Authenticated)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/11/scriptgen.html">つくるぶガイドブログ: Rails で楽々ソーシャルブックマークの仕組みを作る</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2007/12/rails_acts_as_taggable_redux.html">つくるぶガイドブログ: Rails プラグイン acts_as_taggable_redux でタグクラウドを作ろう</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_ajax.html">つくるぶガイドブログ: ドラッグアンドドロップで並べ替え(Rails + Ajax)</a></li>
<li><a target="_blank" href="http://www.tkrb.jp/guide/2008/01/rails_rcov.html">つくるぶガイドブログ: Rails + rcov でテストカバレッジを調べる</a></li>
</ol>

まだ開発途中ではありますが、今回はアプリケーションを本番環境にデプロイしてしまおうと思います。

開発環境で開発したアプリケーションを本番環境に移すデプロイの作業は、それぞれの環境によって千差万別なやりかたがあるため、ときにはかなりてこずることがあります。

リリース間際ではなく、なるべく早い段階で本番環境でも開発環境と同じように動くことを確認しておくと安心です。

capistrano はデプロイの作業を楽にしてくれるおすすめのツールです。

&raquo; <a href="http://www.capify.org/">Capistrano: Home</a>

本番環境には筆者が契約している VPS(Cent OS 5) を例に、capistrano のデプロイ作業の流れを紹介します。

アプリケーションサーバーには Mongrel Cluster、Web サーバーには Apache という定番の構成をとることにします。]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/capistrano_rails.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/capistrano_rails.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Ruby</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">capistrano</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">rails</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">デプロイ</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">本番環境</category>
        
         <pubDate>Thu, 07 Feb 2008 22:30:01 +0900</pubDate>
      </item>
            <item>
         <title>JiftyでWebアプリをつくる - ログイン機能を作る</title>
         <description><![CDATA[<pre style="line-height:1.5em; overflow:auto; border:1px solid #269000; font-size:10px; padding:0px 10px 0px 10px;">
<b>
※2008/02/09 
Jifty::Plugin::Authentication::Passwordについて追記しました。
</b>
</pre>

こんにちは、Perl担当の西山です。

前回に引き続き、DRY(Don't Repeat Yourself)をとことん追求する
WebフレームワークJiftyの話題です。
今回からJiftyを使ったWebアプリケーションの作り方について書いていこうと思います。
手元の環境にPerlの実行環境やJiftyをインストールしていない方は
<a href="http://www.tkrb.jp/guide/2008/01/jiftyweb_windows.html" target="_blank">前回のエントリー</a>を参照してください。

<h4 class="large-tit">ログイン機能を付ける</h4>
さてサンプルアプリのお題は・・・と考えてみましたが、<br>
Jifty自体がRailsを少なからず意識していることもありますし、<br>
本ガイドブログのRubyのエントリーに勝手に(汗;)連動して<br>
パスワード認証によるログイン機能をまずは実装してみようと思います。<br>
<a href="http://www.tkrb.jp/guide/2007/10/ruby_on_rails_1.html" target="_blank">Ruby on Railsを使った作り方はこちら</a> を参照して比較してみるのも面白いのでは？<br><br>
なお、ここでは説明の簡単の為にDBはMySQLではなく標準添付のSQLiteを使用します。
]]></description>
         <link>http://www.tkrb.jp/guide/2008/02/jiftyweb.html</link>
         <guid>http://www.tkrb.jp/guide/2008/02/jiftyweb.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Perl</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Perl</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Webアプリケーション</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Windows</category>
        
         <pubDate>Tue, 05 Feb 2008 19:34:15 +0900</pubDate>
      </item>
            <item>
         <title>Javaによるサーバサイドマッシュアップ</title>
         <description><![CDATA[<a target="_blank" href="http://www.tkrb.jp/guide/2008/01/post_5.html">前回</a>までに、Strutsアプリケーションの一部機能がAjax対応になりました。ビジネスロジックがJavaBeansになっていることで、それが持つ処理の再利用が実現でき、さらにDWRを使うことによって、Webブラウザ上からJavaScriptでのサーバサイドの処理を比較的簡単に利用することができました。多くのStrutsで作られたシステムは、このようにAjax対応を進めていくことができますので、積極的にAjaxに対応して、よりリッチな操作感を利用者に提供していきましょう。

さて今回からは、Javaでのマッシュアップに関する話をしていきたいと思います。元々Javaは「ネットワークに強い」という特徴がありますので、インターネット上に存在するどんなWebサービスでも、マッシュアップを行って自分のサービスに統合することが可能です。他の言語と違い、Javaの世界は、無数のOSSが次々と登場しています。それらをうまく活用することで、よりマッシュアップが手軽なものになります。]]></description>
         <link>http://www.tkrb.jp/guide/2008/01/stru.html</link>
         <guid>http://www.tkrb.jp/guide/2008/01/stru.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Java</category>
        
        
         <pubDate>Mon, 28 Jan 2008 19:55:35 +0900</pubDate>
      </item>
      
   </channel>
</rss>
