<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>プロジェクト</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/" />
    <link rel="self" type="application/atom+xml" href="http://mdlab.jp/project/atom.xml" />
    <id>tag:mdlab.jp,2011-08-10:/project//2</id>
    <updated>2012-05-17T04:05:18Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.12</generator>

<entry>
    <title>ブレークスルーキャンプ by IMJに協力して認知的ウォークスルーのワークショップを開催しました。</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/report/10.html" />
    <id>tag:mdlab.jp,2012:/project//2.49</id>

    <published>2012-05-17T03:11:58Z</published>
    <updated>2012-05-17T04:05:18Z</updated>

    <summary>IMJグループのIMJインベストメントパートナーズが主催しているブレークスルーキャンプ by IMJで支援が決まった5社に認知的ウォークスルーのワークショップを開催してきました。
</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="活動報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<p>こんにちは。マルチデバイスLab.の和田です。</p>

<p>IMJグループの<a href="http://www.imj-ip.co.jp/" target="_blank">IMJインベストメントパートナーズ</a>が主催している<a href="http://www.imj-ip.co.jp/btcamp/" target="_blank">ブレークスルーキャンプ by IMJ</a>で支援が決まった5社に認知的ウォークスルーのワークショップを開催してきました。</p>

<p>各社ともユーザビリティには詳しくないため、始めに分かりやすい表現や実例を踏まえつつ、ISO9241-11で定められているユーザビリティの定義からユーザビリティテストするさいの注意点を説明しました。</p>


<div class="center">
    <div class="imgLFL">
        <div class="img">
            <img src="/project/report/images/usability1.jpg" class="halfImg" alt="講義中の画像" />
        </div>

        <div class="img">
            <img src="/project/report/images/usability2.jpg" class="halfImg" alt="ユーザビリティの説明に使ったスライド" />
        </div>
    </div>
</div>

<p></p>
<p>ワークショップでは各社に１名、マルチデバイスLab.のメンバーが入って認知的ウォークスルーを進めます。</p>

<p>各社の状況はワイヤーフレームレベルからサービスをすでに開始してるなど、進捗状況が異なっていたため、各社の状況に合わせてPCを操作してユーザビリティを評価したりペーパープロトタイピングでユーザビリティを評価しています。</p>

<div class="center">
    <div class="imgLFL">
        <div class="img">
            <img src="/project/report/images/usability3.jpg" class="halfImg" alt="ワークショップ中の画像" />
        </div>

        <div class="img">
            <img src="/project/report/images/usability4.jpg" class="halfImg" alt="ワークショップ中の画像" />
        </div>
    </div>
</div>
<p></p>

<p>ワークショップ終了後は懇親会を開催し、ワークショップの感想を話しながらピザとビールです！</p>

<div class="center">
    <div class="imgLFL">
        <div class="img">
            <img src="/project/report/images/usability5.jpg" class="halfImg" alt="懇親会中の画像" />
        </div>

        <div class="img">
            <img src="/project/report/images/usability6.jpg" class="halfImg" alt="懇親会中の画像" />
        </div>
    </div>
</div>
<p></p>

<p>「今まで作ってきたサービスを客観的に見直すきっかけになった」「メンバーの意識が高まった」など、ユーザビリティ以外にも色々と発見のあるワークショップになったようです。</p>

<p>Lean Startup中の会社でも実践しやすいように、事前準備の負担が少ない認知的ウォークスルーのワークショップを開催しました。<br />
今回のワークショップを学んだことを生かして、認知的ウォークスルーやユーザテストを繰り返し実践してもらえたら嬉しい限りです。</p>


<p>一般的な内容ばかりの資料ですが今回のワークショップで使用したスライドを公開しています。<br />
※一部スライド(事例など)は削除しています。</p>

<div class="taC">
<div id="__ss_12953297"><iframe src="http://www.slideshare.net/slideshow/embed_code/12953297" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank">PowerPoint</a> from <a href="http://www.slideshare.net/MultiDeviceLab" target="_blank">MultiDeviceLab</a> </div> </div>
</div>

<div class="topicBox">
<h3>関連サイト</h3>
<ul>
<li><a href="http://breakthroughcampbyimj.blogspot.jp/" target="_blank">ブレークスルーキャンプ by IMJ ブログ</a></li>
<li><a href="https://www.facebook.com/BTCampByIMJ" target="_blank">ブレークスルーキャンプ by IMJ facebookページ</a></li>
</ul>
</div>

<hr />
<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Web&amp;モバイルマーケティングEXPO2012にブースを出展してきました。</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/report/09.html" />
    <id>tag:mdlab.jp,2012:/project//2.48</id>

    <published>2012-05-11T08:11:58Z</published>
    <updated>2012-05-14T02:48:04Z</updated>

    <summary>2012年5月9日（水）から11日（金）までの3日間、東京ビックサイトで開催されている「Web＆モバイルマーケティングEXPO2012」に参加し、株式会社アイ・エム・ジェイのブースを出展してきました。たくさんのお客様にお立ち寄りいただきましたので、ごご報告させていただきます。
</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="活動報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<p>みなさんこんにちは。マルチデバイスLab.の加茂 春菜です。</p>

<p>2012年5月9日（水）から11日（金）までの3日間、東京ビックサイトで開催されている「Web＆モバイルマーケティングEXPO2012」で株式会社アイ・エム・ジェイのブースに参加してきました。たくさんのお客様にお立ち寄りいただきましたのでご報告します。</p>

<div class="center">
	<div class="imgLFL">

		<div class="img">
			<p><img src="/project/report/images/expo1.jpg" class="halfImg" alt="EXPO出展時の画像" /></p>
		</div>

		<div class="img">
			<p><img src="/project/report/images/expo2.jpg" class="halfImg" alt="EXPO出展時の画像" /></p>
		</div>
	</div>
</div>
<p>株式会社アイ・エム・ジェイのブース。マルラボメンバーも解説中。</p>


<p>今回、IMJが開発したマルチデバイス活用に最適な柔軟なCMS、「JellyCMS」をブースでご紹介するにあたり、マルチデバイスLab.としてデモ用コンテンツを開発し、展示させていただきました。</p>

<p>こちらが会場でデモしたｉPadとPCを使った店舗向けインタラクティブ映像コンテンツ"体感ディスプレイ"です。</p>

<div class="taC"><img src="/project/report/images/expo3.jpg" class="fullImg" alt="体感ディスプレイ画像" /></div>
<p></p>

<p>以前コラムでもご紹介した<a href="http://mdlab.jp/project/report/05.html">年賀コンテンツ Multi-Device Dragon</a>と同じAdobe <span class="caps">AIR3</span>を使って作られたコンテンツで、手元のiPadの女性に服を着替えさせると、上部のモニターに移ってる映像の女性の服も変わる、という仕組みにっています。モデルさんがかわいかったから？だけではないとおもいますが、多くの皆様が足をとめて体験してくださいました。</p>

<p>この体感ディスプレイについて、もっと詳しく話が聞きたい等のご要望がございましたら、ぜひマルチデバイスLab.までお問い合わせください。</p>

<p>ご来場いただきましたみなさま誠にありがとうございました。</p>

<hr /><br />
<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br /><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&amp;utm_medium=web&amp;utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a><br />
</p>]]>
        
    </content>
</entry>

<entry>
    <title>デバイス別Google Analytics導入ガイドライン</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/cat19/01.html" />
    <id>tag:mdlab.jp,2012:/project//2.46</id>

    <published>2012-04-09T02:08:52Z</published>
    <updated>2012-04-12T06:49:28Z</updated>

    <summary>★ガイドラインの人気は強い！★

他の内容に比べてガイドライン系のコラムは、リリースしたときだけではなく長くアクセスが続く傾向があるようです。
ということで、人気コラムランキングに私のコラムがランクインするべく、安直な考えでGoogle Analyticsの導入ガイドラインを作成しました。
</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="解析" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="googleanalytics" label="Google Analytics" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ガイドライン" label="ガイドライン" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="解析" label="解析" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img src="/project/cat19/imagaes/ga_guidelines_pic.jpg" class="fullImg" /></div>

<h2>はじめに</h2>
<p>皆元です。私のマルチデバイスLab.の活動のひとつに、「マルチデバイスLab.のサイトの分析」があり、その活動の一環として2011年の末に、その時点の人気コラムのランキングを書かせていただきました。</p>
<div class="topicBox">
<p>人気コラムランキング(～2011年12月)<br />
<a href="http://mdlab.jp/project/report/05.html">http://mdlab.jp/project/report/05.html</a></p>
</div>

<p>マルチデバイスLab.のサイトを分析している中で、分かったことがあります。</p>

<p><span class="fb">★ガイドラインの人気は強い！★</span></p>

<p>他の内容に比べてガイドライン系のコラムは、リリースしたときだけではなく長くアクセスが続く傾向があるようです。<br />
ということで、人気コラムランキングに私のコラムがランクインするべく、安直な考えでGoogle Analyticsの導入ガイドラインを作成しました。</p>


<p>様々なデバイスにGoogle Analyticsを導入する際に参考になるガイドラインになっているので、ご活用ください。</p>


<p>Google Analyticsで「何を解析」するのか、具体的なイメージが思い浮かばない人は、ガイドラインをダウンロードする前に「Gogle Analyticsを導入する前に」をお読みください。</p>

<h2>目次</h2>
<ul>
<li><a href="#pre">Gogle Analyticsを導入する前に</a></li>
<li><a href="#gaGuideLine">Google Analytics導入ガイドライン</a></li>
</ul>


<hr>
<a id="pre"></a>
<h2>Gogle Analyticsを導入する前に</h2>

<h3>デバイスごとの分析項目</h3>

<p>Google Analyticsを導入する前に、何を分析するのか検討します。<br />

よく、次のような質問を受けます。</p>

<div class="topicBox">
<p>フィーチャーフォン特有の計測の項目を教えてください</p>
<p>スマートフォンを分析するにはPCとは違うと思うのですがどうすればいいですか</p>
</div>

<p>フィーチャーフォンなら、機種名、画面サイズや解像度、搭載しているFLASHのバージョン、GPS対応かどうかなどの端末のスペックを取得。<br />
など、確かにPCサイトの分析をする時とは異なる指標もあります。</p>

<p>取得できる指標を考える前にこう考えるのはどうでしょうか。<br />
<span class="fb">それらのサイトでは何を目的にしていますか。</span></p>

<h3>サイトの目的</h3>

<p>デバイスを問わず、分析をする上でとても重要なことが、<span class="fb">サイトの目的</span>です。</p>

<p>もしも、サイトの目的が、デバイス問わず一緒なら、分析する項目は同じになるでしょう。<br />
ただし、デバイスが異なるということは</p>

<ul>
<li><span class="fb">●ターゲットユーザーが異なる</span></li>
<li><span class="fb">●利用シーンが異なる</span></li>
<li><span class="fb">●閲覧可能な情報量が異なる</span></li>
</ul>

<p>など、異なることが複数あります。</p>

<p>デバイスの特徴を理解した上でのサイト作りが必要になります。<br />

そこで、異なるサイトの目的をデバイスごとに設定できたなら、分析する項目も異なってくるでしょう。</p>

<h3>例）スマートフォンサイトの最適化</h3>

<p>スマートフォンサイトの最適化＝PCサイトをスマートフォンで見ても見やすいようにする。<br />
ではもったいないと常々思っています。</p>

<h3>1.スマートフォンの特徴を思いつく限り書き出す</h3>

<ul>
<li><span class="fb">●画面が小さい（フィーチャーフォンよりは大きいがPCよりは小さい）</span></li>
<li><span class="fb">●縦画面と横画面を考慮する必要がある</span></li>
<li><span class="fb">●いつでも持ち歩く</span></li>
<li><span class="fb">●おさいふ機能があるものある</span></li>
<li><span class="fb">●GPS機能があるものもある</span></li>
<li><span class="fb">●回線速度は3GからWi-Fi高速回線まで様々</span></li>
<li><span class="fb">●通勤時や空き時間に使うこともある</span></li>
</ul>
<p>などいろいろ、思いつくままにあげていきます。</span></p>

<h3>2.その上で、スマートフォンサイトにはどのようなことを掲載するべきか検討</h3>

<p>例えば、小売店があり、PCサイトでは売っている商品とその詳細、店舗情報を記載しているとします。<br />
その場合は、</p>
<ul>
<li><span class="fb">●地図アプリを起動して、店舗までのナビゲーション</span></li>
<li><span class="fb">●おさいふ機能を利用して売上と会員情報を管理</span></li>
<li><span class="fb">●商品購入者に事後アンケートを空き時間に回答してもらう</span></li>
</ul>
<p>など、PCサイトとは異なる目的をスマートフォンサイトに与えることが出来ます。</p>

<p>そうなると、それぞれどのくらい利用されているのか、迷わず利用されているかなど分析したい項目が見えてきます。<br />
これは、フィーチャーフォンサイトでもタブレットサイトでもPCサイトでも同じです。</p>

<h3>分析をはじめる前のまとめ</h3>
<div class="topicBox">
<p>デバイス別の解析をするには、デバイス別に作るサイトの目的を明確化することが大事。</p>
</div>
<hr/>

<a id="gaGuideLine"></a>
<h2>Google Analytics導入ガイドライン</h2>
<p>サイトの目的から分析したい内容が決まったら、いよいよGoogle Analyticsの導入です。<br />
タグの導入だけではなく、よく使う設定をまとめました。内容は以下になります。</p>

<h3>1.デバイス別導入方法</h3>
<p>PC・スマートフォン・フィーチャーフォンのGoogle Analyticsの導入方法を記述しています。一番基本的な内容になります</p>

<h3>2.複数ドメインのトラッキング</h3>
<p>トップドメインの異なるサイトのトラッキング方法やサブドメインの異なるサイトのトラッキング方法をデバイス別にまとめています</p>

<h3>3.フィーチャーフォンのSSLページ計測</h3>
<p>そのまま設置するとセッションがページ毎切れてしまう（ドコモ、ソフトバンク）フィーチャーフォンのSSLページの計測をするための方法をまとめています</p>

<h3>4.バーチャルページビュー</h3>
<p>実際のURLと異なるURLで計測するバーチャルページビューの設定方法をデバイス別にまとめています</p>

<h3>5.イベントトラッキング</h3>
<p>JavaScriptを利用して計測するイベントトラッキング。フィーチャーフォンでは利用できないため、PC・スマートフォンで計測すための方法をまとめています</p>

<h3>6.カスタム変数</h3>
<p>Google Analyticsの機能の中で自由度が高く設定できるカスタム変数の設定方法をデバイス別にまとめています</p>

<h3>7.キャンペーンの計測</h3>
<p>広告の分析も可能なGoogle Analytics。そのキャンペーンの設定方法をまとめています。無料ツールなのに本当に凄いと思います</p>

<h3>8.ログがあがらないと思ったら</h3>
<p>電化製品でいう「故障かなと思ったら」をイメージしています。自分で設定する場合は起こらないような導入に関するトラブルも、大きな会社では設定を担当する方にお願いすることも多々あります。<br />
そんなときに起こりうる設定時のトラブルをまとめました。</p>

<h2>ガイドラインのダウンロード</h2>
<p>以下リンクからPDFデータのダウンロードが出来ます。</p>

<div><p class="taC"><a href="/resources/data/20120409Google_Analytics_introduction_Guideline.pdf" onclick="javascript:_gaq.push(['_trackEvent', 'download', 'googleanalyticsguide']);" target="_blank" class="btnTxtL">PDFデータをダウンロード</a></p></div>

<p>slideshareにも公開しているのでWEB上からでも確認できます。</p>

<div class="taC">
<div id="__ss_12297178"><iframe src="http://www.slideshare.net/slideshow/embed_code/12297178" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/MultiDeviceLab" target="_blank">MultiDeviceLab</a> </div> </div>
</div>

<hr />
<p>マルチデバイスラボ　ガイドライン一覧</p>
<div class="topicBox">
<p><a href="http://mdlab.jp/project/ui_guideline/01.html">スマートフォン・タブレット UIガイドライン</a></p>
<p><a href="http://mdlab.jp/project/ui_guideline/02.html">フィーチャーフォン UIガイドライン</a></p>
</div>
<p><span class="fcNote">最後に：マルチデバイスラボサイトティザーサイト制作前から携わってまいりましたが、3月31日卒業することになりました。ただ、ガイドラインには、今後スマートフォンアプリへのGoogle Analytics導入方法も追記予定と書いてありますので、新メンバーが引き継いでくれることでしょう。お楽しみに！</span></p>
<hr />
<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>スマホ女子は写真と共有がお好き</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/investigative_report/02.html" />
    <id>tag:mdlab.jp,2012:/project//2.47</id>

    <published>2012-03-28T01:29:07Z</published>
    <updated>2012-03-28T07:52:05Z</updated>

    <summary>IMJモバイルが実施した調査では、スマートフォンユーザー（女性）の写真の撮影が95%、SNS系サービスへの共有56%と、スマートフォンを使った写真の撮影と共有が頻繁におこなわれていることがわかり、数値からスマートフォンとSNS系サービスの相性の良さが実証されました。
</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="調査レポート" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="インフォグラフィックス" label="インフォグラフィックス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="スマートフォン" label="スマートフォン" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="調査データ" label="調査データ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<p>IMJモバイルが実施した調査では、スマートフォンユーザー（女性）の写真の撮影が95%、SNS系サービスへの共有56%と、スマートフォンを使った写真の撮影と共有が頻繁におこなわれていることがわかり、数値からスマートフォンとSNS系サービスの相性の良さが実証されました。</p>

<p>また条件付ではあるものの写真を共有する61%の女性が顔写真を共有している事実が浮き彫りになり、SNS系サービスとスマートフォンの普及により匿名性が強かった日本のインターネット文化が変わりつつあることを実感する調査データです。</p>

<div class="taC"><a href="/project/investigative_report/images/camera_infographics_v05.jpg" target="_blank"><img class="fullImg" src="/project/investigative_report/images/camera_infographics_v05.jpg" class="mt-image-center" alt="ライフスタイルの変化を表したインフォグラフィックス画像" /></a></div>
<p> </p>

<div class="topicBox">
<h3>参照元の調査データ</h3>
<p>データは2月2日にIMJモバイルが発表したスマーフォンユーザーの、写真撮影やWebサービスへの共有方法を調査した「<a href="http://www.imjmobile.co.jp/news/report_20120202-329.html" target="_blank">スマートフォンユーザーの写真投稿に関する調査</a>」をもとに作成しています。</p>
</div>

<hr />

<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>

<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Flash を HTML5に変換するアプリ 「SWF Animation Converter」 を利用して、キーボード操作できるキャラクターアニメーションを作成する</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/tool/02.html" />
    <id>tag:mdlab.jp,2012:/project//2.42</id>

    <published>2012-02-07T01:00:23Z</published>
    <updated>2012-02-07T01:31:12Z</updated>

    <summary>去年公開させて頂きました、「SWF Animation Converter」 (以下SAC) がお陰様で多くDLいただき有難い限りの糸数でございます。

しかし、「アプリで変換はできたけど、マウスアクションとか付けられないの？」
「キーボード操作したいけどどうすれば？」
などの質問をよく受けます（受けるということにしておいて下さい）。
確かにそういうケース多々ありますよね。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="ツール" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="airアプリ" label="AIRアプリ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flash" label="flash" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="html5" label="html5" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javascript" label="javascript" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swfanimationconverter" label="SWF Animation Converter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ツール" label="ツール" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[

<div class="taC">
<img alt="swf_animation_converter_mainimage.png" src="/project/tool/images/swf_animation_converter_mainimage.png" class="fullImg" />
</div>

<p><br /><br />

去年公開させて頂きました、「<a href="http://mdlab.jp/app/sac/index.html" target="_blank">SWF Animation Converter</a>」 (<strong>以下SAC</strong>) がお陰様で多くDLいただき有難い限りの糸数でございます。<br /><br />

しかし、<br />
<strong>「アプリで変換はできたけど、マウスアクションとか付けられないの？」</strong><br />
<strong>「キーボード操作したいけどどうすれば？」</strong><br />
などの質問をよく受けます（受けるということにしておいて下さい）。<br />
確かにそういうケース多々ありますよね。<br /><br />

<strong>しかしそこはご安心を！</strong><br /><br />

実は、SACにはJSのAPIが用意されており、ただflashアニメーションを変換するだけでなく、<strong>変換後に比較的自由にカスタマイズできるよう設計されています</strong>（したつもりです）。
<br /><br />

今回はSACの出力ファイル（スプライトシート等）を利用し、<br /><strong>キーボード操作できるキャラクターアニメーションを作成する方法</strong>をご紹介し、最終的に<a href="samples/keyEvent.html" target="_blank">このようなHTMLサンプル</a>を作成する手順を書いていこうと思います。<br /><br /><br />




</p>

<hr />

<h2>ますはswfを変換しよう！</h2>


まずは、アプリのダウンロードとベース素材を用意。<br />

<br />
<h3>[1] SACのダウンロード</h3>
<a href="http://mdlab.jp/app/sac/index.html" target="_blank">SWF Animation Converter | マルチデバイスLab.</a>
<br /><br />
<h3>[2]サンプルflaをダウンロード (CS4形式)</h3>
<a href="http://mdlab.jp/app/sac/sample/1/sample4_api.zip" target="_blank">sample4_api.zip</a>
<br />
<br />
上記がそろったら下記の動画を参考に、変換してみて下さい。<br /><br /><br />
<div class="taC">
<iframe width="444" height="331" src="http://www.youtube.com/embed/Z4iNwUzo274?rel=0" frameborder="0" allowfullscreen></iframe>
</div><br />
<br />
できましたでしょうか？
<br /><br />ここまでがSACの基本的な役割で、スプライトシートとJSを吐き出しています。<br /><br />
SACは特にこのように、<strong>「Flash Proで設定したラベル名を、JSに変換し、サクッとアニメーション制御ができる」ので、簡単なゲームやインタラクションを作成するのに、お役に立てる（？）</strong>かと思います。
<br />
<hr />

<h2>カスタマイズする！</h2>

結論から言うと、<strong>SAC自体はシンプルなDIVなので、それにユーザーイベントを付加すればカスタマイズできる</strong>という事になります。<br /><br />

SAC化したいDIVを用意しクラス名をつけ、SWFACObjectの第一引数に渡してやればOK！（ここでは SACArea）<br />
第二引数には画像パス。第三以降は初期値なので無視してもらってOK<br />
<script type="syntaxhighlighter" class="brush: js" title="">
// 略
SACObj = new SWFACObject("SACArea","images/animation2012123125117.png",{"fps":30,"loop":true,"w":150,"h":210,"total":80,"td":40,"frames":{'walk':{'start':1,'end':40},'jump':{'start':41,'end':60},'punch':{'start':61,'end':80}}});
//略
<div class="SACArea"></div>
</script>
<br /><br />

<h2>クリックイベントを付加してみる</h2>

例えば、SACに<strong>クリックイベントを付加するサンプル</strong>はこうです。<br />
<a href="samples/clickSample.html" target="_blank">[SAMPLE] クリックイベント</a><br />
<script type="syntaxhighlighter" class="brush: js" title="">
// クリックイベントを付加する
$(function(){
	$(".SACArea").click(function(){alert("click sample")});
});
</script>
<br />

というように、クラス名に対して、カスタマイズしてやればよいわけです。


<hr />



<h2>SACの JS API を利用し タイムラインを操作する</h2>


SACで書き出した index.html 内 23行目あたり、下記の部分は、再生スタートの命令です。<br />
<script type="syntaxhighlighter" class="brush: js" title="">
SACObj.start();
</script>
<br /><br />

このように<strong>SACインスタンスには様々なメソッドが用意されています</strong>。<br />
<br /><br />


<h3>どんなメソッドがある？</h3>
<br />
<h4>[1] flashライクに再生/ストップ</h4>
<a href="samples/playSample.html" target="_blank">[SAMPLE] gotoAndPlay() / gotoAndStop()</a><br />
<script type="syntaxhighlighter" class="brush: js" title="">
gotoAndPlay("フレーム番号");
gotoAndStop("フレーム番号");
</script>
<br />

<br /><br />

<h4>[2] flash側で設定したフレームラベルを再生</h4>

<a href="samples/labelSample.html" target="_blank">[SAMPLE]  gotoLabel() </a><br />


<script type="syntaxhighlighter" class="brush: js" title="">
gotoLabel("frameName");
</script>

gotoLabel() は第二引数に<br />
<strong>true を渡すとラベルをループ。<br />
false でラベルを1回だけ再生。</strong><br />
と指定出来ます。<br /><br />


<h4>[3] コールバック関数</h4>


たとえば<strong>画像のロード完了をまってから1フレーム目で静止</strong>したい場合は<br />
コールバック関数、setLoadCompleteCallbackを利用し下記のようにします。<br />

<a href="samples/loadCompleteSample.html" target="_blank">[SAMPLE]  setLoadCompleteCallback() </a><br />
<script type="syntaxhighlighter" class="brush: js" title="">
SACObj.setLoadCompleteCallback(
	function(){
		SACObj.gotoAndStop(1)
	});
</script>
その他、ループ時、エンターフレイム時、ラベル再生完了時など、さまざまなコールバックが用意されています

<br /><br />

<h3>その他</h3>
<h4>[4] フレームレートを変更したい</strong>場合、</h4>
<script type="syntaxhighlighter" class="brush: js" title="">
    setFps(24);
</script>

<h4>[5] divの幅、高さを取得</strong>したい場合、</h4>
<script type="syntaxhighlighter" class="brush: js" title="">
    getWidth();
    getHeight();
</script>
<br /><br />
などなど<br />
すべての機能は、<a href="http://mdlab.jp/app/sac/document/" target="_blank">APIドキュメントにあります</a>ので参照してみてください。
<br />
※SACで吐き出されたindex.htmlを開くと、APIのサンプルコードが、
下部にコメントアウトされているので参考にしてみてください。<br />


<hr />

<h2>SACファイルにキーイベントを付加するサンプル</h2>


では実際<a href="samples/keyEvent.html" target="_blank">冒頭のサンプルファイル</a>のカスタマイズ例を解説します。<br /><br />
<br /><br />
<h3>画像ロードコールバック登録</h3>
まず、画像のロード完了コールバックで、walkアニメーションを設定します<br /><br />

<script type="syntaxhighlighter" class="brush: js" title="">
//画像ロードコンプリートコールバック登録
SACObj.setLoadCompleteCallback(startWalkAction);
/**
* 歩く動作
*/
function startWalkAction(){
	status="stop";
	SACObj.gotoLabel("walk",true);//第二引数trueで、walkラベルをループする
}
</script>
<br /><br />
<h3>キーイベント設定</h3>
次に、jQueryでキーイベントを取得し「A、←、↑、→」キーの押下イベントを取得しそれぞれアクションをつけていきます。<br />
<script type="syntaxhighlighter" class="brush: js" title="">
$('html').keydown(function(e){
		switch(e.which){
			case 39: // [→]
				walkActionRight();break;
			case 37: // [←]
				walkActionLeft();break;
			case 38: // [↑]
				jumpAction();break;
			case 65: // [A]
				punchAction();break;
		}
});
</script>

<br /><br />
<h3>パンチ動作</h3>

パンチ動作の終了で、<strong>walk動作に自動で戻りたいため</strong>、<br />
setLabelCompleteCallback() 関数に、終了時のアクションを登録します。<br />
これはラベルアニメーションの再生がストップしたときに呼ばれる関数です。<br />

<script type="syntaxhighlighter" class="brush: js" title="">
function punchAction(){
	
	//パンチアクション
	SACObj.gotoLabel("punch",false);

	//すでにパンチ中なら以降何もしない
	if(status =="punch") return ;
	status = "punch";
	
	//終了コールバック登録
	SACObj.setLabelCompleteCallback(
		function(){
			//console.debug("punch finish callback");
			//コールバックを空に
			SACObj.setLabelCompleteCallback(null)
			//walkアニメーションに移行
			startWalkAction();
		}
	);
}
</script>

同様に、移動や、ジャンプも設定していきます。<br /><br />



最終的には下記のコードを参考にして見てください。<br />
<a href="samples/keyEvent.html" target="_blank" >SACキーイベントカスタマイズサンプル</a>


<hr />

以上、SACのカスタマイズのご紹介でした。<br />


ご意見ご質問は<a href="https://twitter.com/#!/md_lab">@md_lab</a>までよろしくお願いします！<br /><br />

最後まで読んでいただきありがとうございました!<br /><br /><br /><br />

<hr />]]>
        
    </content>
</entry>

<entry>
    <title>[page2012]オープンイベント「スマートフォンビジネスの変化と展望～女子が語るスマホはカオス～」に参加します。</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/report/08.html" />
    <id>tag:mdlab.jp,2012:/project//2.44</id>

    <published>2012-02-01T07:15:05Z</published>
    <updated>2012-02-01T07:36:37Z</updated>

    <summary>このたび、モバイルマーケティングソリューション協議会さんのご紹介で 印刷、メディア業界のコンベンション[page2012]で行なわれるパネルディスカッションに参加することになりましたので、ご案内させていただきます。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="活動報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="イベント" label="イベント" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[みなさんこんにちは。マルチデバイスLab.の加茂 春菜です。<div>このたび、モバイルマーケティングソリューション協議会さんのご紹介で
<span style="font-family: 'MS PGothic'; line-height: 20px; font-size: small; ">印刷、メディア業界のコンベンション[page2012]で行なわれるパネルディスカッションに参加することになりましたので、ご案内させていただきます。</span></div><div><font face="'MS PGothic'" size="2"><span style="line-height: 19px;"><br /></span></font><div><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">今回、スマートフォンビジネスの変化と展望</span><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">『女子が語るスマホはカオス』と題しまして、</span><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">スマートフォンビジネスをめぐる現状と将来を女子目線でお</span><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">話しさせていただく予定です。</span></div><div><span style="font-family: 'MS PGothic'; font-size: small; line-height: 20px; ">page2012では、「PAGE からpage へ　―― ePower で新領域へ」という全体テーマを通じ、</span><span style="font-family: 'MS PGothic'; font-size: small; line-height: 20px; ">印刷、メディア業界ならではの興味深いイベントもそろっておりますので、みなさまのご来場をお待ちしております。</span></div><div><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; "><br /></span></div><div><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; "><br /></span></div><div><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">[詳細はこちらから]</span></div><div><a href="http://www.jagat.or.jp/PAGE/2012/session/session_detail.asp?sh=5&amp;se=41">http://www.jagat.or.jp/PAGE/2012/session/session_detail.asp?sh=5&amp;se=41</a>
</div><div><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; "><br /></span></div><div><font color="#000000" face="'MS PGothic'" size="2"><br /></font></div><div><font color="#000000" face="'MS PGothic'" size="2">◆イベント概要</font></div><div><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【タイトル</span>
<span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">】</span>&nbsp;<span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">スマートフォンビジネスの変化と展望　</span><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">『女子が語るスマホはカオス』</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【開催日時】　2012年2月9日（木）12:45～14:15（開場12:40）</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【開催場所】　文化会館7F710号室</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【参加費】　　無料</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【お申込み】　以下の申込みフォームよりお申込ください。</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　　　　⇒</span><a href="http://www.mmsa.jp/regi_sem120209.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'MS PGothic'; font-size: small; ">http://www.mmsa.jp/regi_sem120209.html</a><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【開催内容】</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">スマートフォンビジネスをめぐる現状と将来をテーマとして、第</span><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">一線で活躍する女子がスマートフォンを巡る「アレコレ」をパネ</span><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">ルディスカッションでご紹介していきます。</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　・女子から見たスマホブームと企業の反応</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　・スマホをめぐるクライアントの誤解と勘違い</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">など、データより肌感、女子力で語ります！</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【出演者】　※社名５０音順</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　◆株式会社　IMJモバイル</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　クリエイティブ本部 マルチデバイスLab マネージャー　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　加茂 春菜　氏</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　◆グランドデザイン&amp;カンパニー株式会社</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　事業推進部　アカウントエグゼクティブ　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　公文 紫都　氏</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　◆株式会社スパイア</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　モバイル広告事業本部　第２セールスグループ　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　鹿島 美由　氏</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　◆株式会社mediba</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　メディア事業本部メディア事業企画部メディア推進グループ　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　プロデューサー　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　河面　久美子　氏</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">【問い合わせ先】</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　鄭平文　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　　E-mail：info@mmsa.jp　　</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; " /><span style="color: rgb(0, 0, 0); font-family: 'MS PGothic'; font-size: small; ">　　　　　TEL 03-6804-3538<br /></span></div><font color="#000000" face="'MS PGothic'" size="2"><br /></font></div><div><font color="#000000" face="'MS PGothic'" size="2"><br /></font></div><div><font color="#000000" face="'MS PGothic'" size="2"><br /></font></div>]]>
        
    </content>
</entry>

<entry>
    <title>【Google Analytics】2012年賀サイトで検証－WebGL対応状況</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/report/07.html" />
    <id>tag:mdlab.jp,2012:/project//2.43</id>

    <published>2012-02-01T04:30:14Z</published>
    <updated>2012-02-01T04:41:06Z</updated>

    <summary>寒い日が続きますが如何お過ごしでしょうか。皆元チナ(JWDA WEB解析士マスター)です。
2012年があけて、早くも1ヶ月が過ぎようとしています。
1月1日にワンソースでマルチデバイスコンテンツを実現。IMJグループ2012年賀「Multi-Device Dragon」というコラムがありました。
マルチデバイスを活用した新しい表現を体験いただけたかと思います。
</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="活動報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="webgl" label="WebGL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="アクセス解析" label="アクセス解析" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="年賀サイト" label="年賀サイト" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<p>寒い日が続きますが如何お過ごしでしょうか。皆元チナ(JWDA WEB解析士マスター)です。<br />
2012年があけて、早くも1ヶ月が過ぎようとしています。<br />
1月1日に<a href="http://mdlab.jp/project/report/06.html">ワンソースでマルチデバイスコンテンツを実現。IMJグループ2012年賀「Multi-Device Dragon」</a>というコラムがありました。<br />
マルチデバイスを活用した新しい表現を体験いただけたかと思います。</p>
<hr />
<h3>ただ、私たちはIMJGの年賀サイトだけではなく、マルチデバイスラボ独自の年賀サイトも作成しました。</h3>
<div class="topicBox">
<p><a href="http://mdlab.jp/nenga2012/">マルチデバイスラボ 2012年賀サイト<br />
http://mdlab.jp/nenga2012/</a></p>
</div>
<p>技術的なことなどは別途コラムでご紹介しますが、今回は、Google Analyticsを利用した検証結果を紹介します</p>
<hr />
<h2>WebGLについて少しだけ</h2>
<p>マルチデバイスラボの年賀サイト、立体的に見えたり、マウスを動かすと変化したりするのですが、<span class="fb">「WebGL（ウェブジーエル）」</span>という技術を使って制作されています。<br />
<br />
この技術の注意事項として、ブラウザや搭載しているグラフィックボードなどによって閲覧が限られているという点があります。</p>
<div class="topicBox">
<p><a href="http://ja.wikipedia.org/wiki/WebGL">参考：WebGL|wikipedia</a></p>
</div>
<p>
そのため、WebGLに対応しているかを確認して、表示するコンテンツを変えていました。<br />
今回はマルチデバイスラボ年賀サイトを閲覧した方がWebGLに対応しているか（コンテンツを見ることができたのか）の割合を調査しました</p>
<hr />
<h2>結果</h2>
<p>次の3つに分けて計測しました。</p>
・パソコンからアクセスして、WebGL対応のブラウザで閲覧<br />
・パソコンからアクセスして、WebGL非対応のブラウザで閲覧<br />
・スマートフォンからの閲覧
<p>結果は以下</p>
<img src="http://mdlab.jp/project/nenga01.gif" class="fullImg" />
<p>48%およそ半分の方にコンテンツをお楽しみいただくことが出来ました。<br />
なお、本年賀サイトの告知は主にツイッターで行ったため、一般的というより、普段からマルチデバイスラボが発信するような新しい技術などに興味がある人がアクセスをしているという前提があります</p>
<hr />
<h2>計測方法</h2>
<p>Google Analyticsはデフォルトでいろいろな指標を計測することが可能です。<br />
オペレーティングシステムや、ブラウザも取得することが出来るのですが、WebGL対応非対応の判断はそれらの指標を掛け合わせても難しいことが判明したため（加えて集計を容易に行いたかったため）<br />
<span class="fb">カスタム変数</span>に値を入れて集計しました。<br />
<br />
まず何らかの方法で、WebGL対応非対応を判断します。詳細は、別コラムで紹介予定です。<br />
サンプルは、flgに入れて、それを送っています。<br />
<span class="fcNote">具体的な対応非対応の判断方法は割愛しています。</span>
</p>

<script type="syntaxhighlighter" class="brush: js" title="JavaScript">
var flg = "";
if ( Detector.webgl ) {
    flg = "PC_OK";}
else{
    if ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') == -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0) {
        flg = "SP";
    }
    else{
        flg = "PC_NG";
    }   
}
</script>

<p>続いて、Google Analyticsにデータを送ります。</p>
<script type="syntaxhighlighter" class="brush: js" title="JavaScript">
_gaq.push(['_setCustomVar', 1,'OPEN_GL',flg,2]);
</script>
<p>セッションレベルで指定しています。<br />
nameがOPEN_GLなのは特に深い意味はありません。<br />
カスタム変数の詳細は</p>
<div class="topicBox">
<p><a href="http://code.google.com/intl/ja/apis/analytics/docs/tracking/gaTrackingCustomVariables.html">カスタム変数|Google アナリティクス　Google code<br /></a></p>
</div>
<p>こちらでご確認いただけます。<br />
<br />
これからも、マルチデバイスラボから発信する様々な新しい技術について分析していきます。</p>
<span class="fcNote">実は今回、WebGL対応の方が何秒見て離脱（ブラウザを閉じるなどでサイトから離れる事）したのかも調べようとしたのですが、パソコンのスペックにより速さが違うということと、リリースまでの時間の問題、さらにワースト1位になってしまったメンバーが気の毒なのでやめました。</span>

<hr />


<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>「cocos2d x」の開発環境が更に快適に！ -Xcode4対応版</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/framework/02.html" />
    <id>tag:mdlab.jp,2012:/project//2.41</id>

    <published>2012-01-31T07:00:00Z</published>
    <updated>2012-05-15T04:58:30Z</updated>

    <summary>前回のコラムではXcode3を前提とした導入についてご紹介しましたが、現在はiOS5にも対応したXcode4がスタンダードとなりつつあります。cocos2dxはXcode4にも対応していますが、iPhoneとAndroidの同時開発を行うためにはXcode3より複雑な手順が必要となりますので、今回はXcode4での導入方法についてご紹介いたします。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="Framework" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cocos2dx" label="cocos2dx" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="framework" label="Framework" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img src="/project/cocos2dx/thmBig.png" class="fullImg" /></div>
<p></p>

<h2>はじめに</h2>
前回のコラムではXcode3を前提とした導入についてご紹介しましたが、
現在はiOS5にも対応したXcode4がスタンダードとなりつつあります。
cocos2dxはXcode4にも対応していますが、iPhoneとAndroidの同時開発を行うためには
Xcode3より複雑な手順が必要となりますので、今回はXcode4での導入方法についてご紹介いたします。

<hr />

<h2>Xcode4での相違点</h2>
<h3>(1)フォルダ構成</h3>
Xcode4でcocos2dxを導入する際、最も大きな問題となるのがプロジェクトのフォルダ構成です。

Xcode3では下図のように、プロジェクト名フォルダの直下にClassesフォルダが配置されており、
Android用プロジェクトと同じフォルダ構成になっています。
そのため前回のコラムで紹介したように、Android用プロジェクトと共通のClassesフォルダを使うことができました。


<a href="http://mdlab.jp/project/assets_c/2012/01/xcode3_proj-195.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/xcode3_proj-195.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/xcode3_proj-thumb-300x227-195.png" width="300" height="227" alt="xcode3_proj.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


ですがXcode4では、プロジェクト名フォルダの下にさらにプロジェクト名フォルダが作られ、その中にClassesフォルダが配置されています。
つまりAndroid用プロジェクトよりも1階層深い位置にClassesフォルダが存在しています。


<a href="http://mdlab.jp/project/assets_c/2012/01/xcode4_proj-198.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/xcode4_proj-198.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/xcode4_proj-thumb-300x227-198.png" width="300" height="227" alt="xcode4_proj.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


これにより、共通のソース(Classesフォルダ)を使用したiPhoneとAndroidの同時開発を行うことが
Xcode3と同じ導入手順ではできなくなってしまいました。

<p></p>

<h3>(2)重複プロジェクト名の削除</h3>
Xcode3での導入手順では、まず最初にAndroid用プロジェクトを作成し、
次にXcode3で同名の新規プロジェクトを立ち上げ、Android用プロジェクトフォルダに上書きして作成していました。
ですがXcode4で同様の手順を行うと、上書き時にそれまで存在していたフォルダは削除されてしまいます。
そのため先に作成したAndroid用プロジェクトが消えるようになってしまいました。


<hr />

<h2>対応策</h2>
これらの相違点による問題を解決する方法をご紹介いたします。

まずはcreate-android-project.shでAndroid用プロジェクトを作成します。
今回はプロジェクト名を「example2」としました。
前項(2)の通り、Xcode4で同名のプロジェクトを作成すると、
今作成したAndroid用プロジェクトフォルダが消えてしまいますので、
一旦フォルダ名を「example2_bak」のように変更します。

<a href="http://mdlab.jp/project/assets_c/2012/01/column2_xcode3-232.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_xcode3-232.html','popup','width=728,height=491,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_xcode3-thumb-300x202-232.png" width="300" height="202" alt="column2_xcode3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

続いてXcode4でのiPhone用プロジェクト作成です。


<div class="topicBox">
<p>※Xcode4用テンプレートのインストールをしていない場合、事前に「install-templates-xcode.sh」でのインストールを行ってください。<a href="/project/framework/01.html">詳しくは前回のコラムを参照</a></p>
</div>

<p>まずXcode4を起動して「Create a new Xcode project」をクリック。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_xcode1-201.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_xcode1-201.html','popup','width=802,height=521,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_xcode1-thumb-300x194-201.png" width="300" height="194" alt="column2_xcode1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>iOS内の「cocos2d-x」を選択するとcocos2dx用のテンプレートが表示されますので、「cocos2dx」を選択して「Next」ボタンをクリック。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_xcode2-204.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_xcode2-204.html','popup','width=728,height=491,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_xcode2-thumb-300x202-204.png" width="300" height="202" alt="column2_xcode2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>Product Nameに「example2」、Company Identifierに「jp.mdlab」を入力して、「Next」をクリック。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_xcode3-232.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_xcode3-232.html','popup','width=728,height=491,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_xcode3-thumb-300x202-232.png" width="300" height="202" alt="column2_xcode3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>プロジェクト保存画面が表示されますので、cocos2d-1.0.1-x-0.10.0フォルダを選択した状態で「Create」をクリック。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_xcode4-207.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_xcode4-207.html','popup','width=537,height=378,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_xcode4-thumb-300x211-207.png" width="300" height="211" alt="column2_xcode4.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>これでXcode4用に「example2」プロジェクトが作成されました。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_folder1-210.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_folder1-210.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_folder1-thumb-300x227-210.png" width="300" height="227" alt="column2_folder1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>Xcode4用のプロジェクトが作成された、先ほどフォルダ名を変更した「example2_bak」の中にある
android、Classes、Resourcesフォルダを、example2/example2の中に移動し、上書きします。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_folder2-213.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_folder2-213.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_folder2-thumb-300x227-213.png" width="300" height="227" alt="column2_folder2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>これで共通のソース(Classesフォルダ)をiPhone/Androidどちらからも参照できるようになりました。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_folder3-216.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_folder3-216.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_folder3-thumb-300x227-216.png" width="300" height="227" alt="column2_folder3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>ですがこのままではAndroid用のビルドがうまくいきません。
一階層深いフォルダ構成に強引に変更したので、それに合わせて各種設定を変更する必要があります。</p>

<h3>example2/example2/android/build_native.sh</h3>

<pre>
GAME_ROOT=$COCOS2DX_ROOT/example2<b><font color="#ff0000">/example2</font></b>
</pre>

<p><br /></p>

<h3>example2/example2/android/jni/Android.mk</h3>

<pre>
subdirs := $(addprefix $(LOCAL_PATH)/../../../<b><font color="#ff0000">../</font></b>,$(addsuffix /Androids.mk, \
</pre>

<p><br /></p>

<h3>example2/example2/android/jni/helloworld/Android.mk</h3>

<pre>
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../../<b><font color="#ff0000">../</font></b>cocos2dx \
                    $(LOCAL_PATH)/../../../../<b><font color="#ff0000">../</font></b>cocos2dx/platform \
                    $(LOCAL_PATH)/../../../../<b><font color="#ff0000">../</font></b>cocos2dx/include \
</pre>

<p><br /></p>

<h3>example2/example2/Classes/Android.mk</h3>

<pre>
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../<b><font color="#ff0000">../</font></b>cocos2dx \
                    $(LOCAL_PATH)/../../<b><font color="#ff0000">../</font></b>cocos2dx/platform \
                    $(LOCAL_PATH)/../../<b><font color="#ff0000">../</font></b>cocos2dx/include \
                    $(LOCAL_PATH)/../../<b><font color="#ff0000">../</font></b>CocosDenshion/include \
                    $(LOCAL_PATH)/../../<b><font color="#ff0000">../</font></b>cocos2dx/lua_support
LOCAL_LDLIBS := -L$(call host-path, $(LOCAL_PATH)/../android/libs/$(TARGET_ARCH_ABI)) \
                -lcocos2d -lcocosdenshion \
                -L$(call host-path, $(LOCAL_PATH)/../../<b><font color="#ff0000">../</font></b>cocos2dx/platform/third_party/android/libraries/$(TARGET_ARCH_ABI))
</pre>

<p><br /></p>

<p>あとはXcode3での導入時と同様にbuild_native.shでビルドを行い、
Eclipseでプロジェクトフォルダを読み込めば動作確認を行うことができます。
読み込むフォルダも一階層深くなっていますのでご注意ください。</p>

<hr />

<h2>テンプレート展開シェル</h2>

<p>前項の対応を行うことでXcode3と同様にiPhone/Androidでの同時開発が可能になるのですが、
新規プロジェクト作成時に毎回この作業を行うのは手間がかかってしまいます。
そこでこの作業を自動的に行ってくれる、Xcode4対応版テンプレート展開プログラムを作成しました。</p>

<p class="taC">
<a href="http://mdlab.jp/project/cocos2dx/template_xcode4.zip" class="btnTxtL" onclick="javascript:_gaq.push(['_trackEvent', 'download', 'cocos2dx_xcode4']);" >展開プログラムをダウンロード</a>
</p>

<p>まずはテンプレート展開プログラムをダウンロード。
下記のようにcocos2dxフォルダ配下に格納してください。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_folder4-219.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_folder4-219.html','popup','width=593,height=621,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_folder4-thumb-300x314-219.png" width="300" height="314" alt="column2_folder4.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<div class="topicBox">
<p>※Android SDK/NDKインストール場所によって「create-android-project-xcode4.sh」内の設定変更が必要です。[NDK_ROOT]と[ANDROID_SDK_ROOT]を環境に合わせて修正してください。<a href="http://mdlab.jp/project/framework/02.html">詳しくは前回のコラムを参照</a></p>
</div>

<p>続いてXcode4で新規プログラムを作成します。
この作業は前項と同様です。ここでのプロジェクト名は「example3」にしました。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_folder5-222.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_folder5-222.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_folder5-thumb-300x227-222.png" width="300" height="227" alt="column2_folder5.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>最後にXcode4対応版テンプレート展開プログラムを起動します。
cocos2dxフォルダ内でcreate-android-project-xcode4.shを実行。
入力項目はcreate-android-project.shと同様です。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_terminal1-225.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_terminal1-225.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_terminal1-thumb-300x128-225.png" width="300" height="128" alt="column2_terminal1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>必要項目を入力するとXcode4用に設定が変更された各種ファイルが
example3/example3配下に格納されています。</p>

<p><a href="http://mdlab.jp/project/assets_c/2012/01/column2_folder6-228.html" onclick="window.open('http://mdlab.jp/project/assets_c/2012/01/column2_folder6-228.html','popup','width=594,height=451,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2012/01/column2_folder6-thumb-300x227-228.png" width="300" height="227" alt="column2_folder6.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>

<p>尚、この展開プログラムは一時的に [プロジェクト名]<em>tmp フォルダを作成します。
(今回の例では、example3</em>tmpフォルダが一時的に作成されます)
既に同名のフォルダが存在していた場合、正常に稼動しない可能性がありますのでご注意ください。</p>

<hr />

<h2>まとめ</h2>

<p>Xcode4での開発にも対応することで、より多くの方にcocos2dxを触ってもらえる機会が増えたのではないでしょうか。
次回以降はもう少し実践的な使い方などをご紹介します。</p>

<h2>cocos2dxシリーズ</h2>

<ul>
<li><a href="/project/framework/01.html">クロスプラットフォームの新しい選択肢「cocos2dx」でスマートフォンアプリを開発！ -導入編</a></li>
<li>「cocos2d x」の開発環境が更に快適に！！ -Xcode4対応版</li>
</ul>

<hr />

<h3 class="taC">クロスプラットフォーム開発について質問、興味などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>

<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>第三回 ティザーサイトの実装裏側！-実装編</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/node_js/03.html" />
    <id>tag:mdlab.jp,2012:/project//2.35</id>

    <published>2012-01-13T00:40:18Z</published>
    <updated>2012-05-17T08:02:26Z</updated>

    <summary>一回目、二回目と概念的な部分が多かったので、今回は実際のソースや困った点を紹介していきます。WebSocket実装のその前にティザーサイトでは、ネットワーク環境の都合上任意のポートを外部からアクセス可とすることができませんでした。また、サーバも1台しかなかったため、Apacheのポート番号を変更してNode.jsを80番ポートで動作させ、HTMLや画像などもNode.jsを通じてアクセスさせる必要がありました。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="Node.js" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="nodejs" label="Node.js" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ティザーサイト" label="ティザーサイト" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="リアルタイムweb" label="リアルタイムweb" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img src="/project/node_js/images/node_js_03.jpg" class="fullImg" alt="第三回 ティザーサイトの実装裏側！-実装編" /></div>

<p></p>

<p>一回目、二回目と概念的な部分が多かったので、今回は実際のソースや困った点を紹介していきます。</p>
<hr />

<h2>WebSocket実装のその前に</h2>

<p>ティザーサイトでは、ネットワーク環境の都合上任意のポートを外部からアクセス可とすることができませんでした。また、サーバも1台しかなかったため、Apacheのポート番号を変更してNode.jsを80番ポートで動作させ、HTMLや画像などもNode.jsを通じてアクセスさせる必要がありました。</p>

<p>そこで問題になるのが、Node.jsを単に動かしただけではファイルへのアクセスはできないということです。Apacheであれば設定ファイルで定義されたディレクトリ中のファイルに容易にアクセスできますが、Node.jsには当然そのような設定はありません。</p>

<p>そのため、URLを解析してどのファイルにアクセスしたいのかを判断し、ファイルを返却する必要があります。</p>


<h2>Node.jsをWebサーバとして動かす</h2>

<p>Node.jsをWebサーバとして動かすには以下のようなコードを記述します。</p>
<script type="syntaxhighlighter" class="brush: js" title="">
    var http = require('http');
    var server = http.createServer(function(request, response) {
        // HTTPリクエストを受けた時の処理
    });
    // 80番ポートでLISTEN状態にする
    server.listen(80);
</script>

<p>しかし、このままではHTTPリクエストを受けた時の処理を記述していないため、Node.jsは何もしてくれません。Node.jsをApacheと同じように動作させるには、以下のような処理を記述する必要があります。</p>

<ul>
<li>1. リクエストパスを取得する</li>
<li>2. ファイルを読み込む</li>
<li>3. Content-Typeを判別する</li>
<li>4. レスポンスを送信する</li>
</ul>

<p>順を追って見ていきましょう。</p>

<h3>1. リクエストパスを取得する</h3>
<p>まずは、http.ServerRequestオブジェクトにはURL情報が格納されています。</p>
<p>そこでアクセスされたURLからパスを抽出します。なお、Apacheの挙動と同様にするため、「/」を「/index.html」と読み替えることもここで処理しています。</p>

<script type="syntaxhighlighter" class="brush: js" title="">
    // アクセスされたURLを解析してパスを抽出
    url = require('url');
    var path = url.parse(request.url).pathname;

    // ディレクトリトラバーサル防止
    if (path.indexOf("..") != -1) {
        path = '/';
    }

    // 「/」のリクエストのときは、index.htmlと読み替える
    if(path == '/') {
        path = '/index.html';
    } else {
    // 「/」リクエスト以外はそのまま使う
        path = path;
    }
</script>

<h3>2. ファイルを読み込む</h3>
<p>パスを抽出したら、File Systemモジュールを利用してファイルを読み込みます。</p>
<p>今回はファイル全体を読み込んでレスポンスを返却するので、readFile関数（指定ファイルを非同期に読み込む）を利用しています。</p>

<p>ファイル読み込み後の処理はデータ読み込みが完了しないと行えないため、readFile関数のコールバックに記述することになります。</p>
<script type="syntaxhighlighter" class="brush: js" title="">
    // ドキュメントルートのファイルパス
    var documentRoot = '/www/hoge/htdocs';

    // リクエストを受けたファイルを読み込む
    fs = require('fs');
    fs.readFile(documentRoot + path, function(error, data){
        if(error) {
            // 読み込みに失敗時の処理
            // HTTP/1.1 404 NotFoundを返却する
            response.writeHead(404, 'NotFound', {});
            response.write('ファイルが見つかりません。');
            response.end();
        } else {
            // 読み込み成功時の処理
            // 3. Content-Typeを判別する
            // 4. レスポンスを送信する
        }
    });
</script>

<h3>3. Content-Typeを判別する</h3>

<p>ファイルの読み込みに成功したら、次はContent-Typeを判別します。</p>
<p>ブラウザによってはこのヘッダ情報を基に異なる動作をするため、できるだけ正しい情報を返却する必要があります。
（Apacheではmime.typesで定義されています。）</p>

<p>今回は"拡張子":"Content-Type"という形でJSONを記述し、アクセスされたファイルの拡張子から該当するContent-Typeを返却しています。</p>

<p>なお、どのようなContent-Typeが定義されているかは以下のURLに詳しく記述されています。
<a href="http://www.iana.org/assignments/media-types/index.html" target="_blank">http://www.iana.org/assignments/media-types/index.html</a></p><p>
</p>

<script type="syntaxhighlighter" class="brush: js" title="">
    // Content-Type定義
    exports.ext = function () {
        var extTypes = {
            "拡張子1":"Content-Type1",
            "拡張子2":"Content-Type2",
              .
              .
              .
        }
        return {
            getExt: function (path) {
                var i = path.lastIndexOf('.');
                return (i &lt; 0) ? '' : path.substr(i + 1);
            },
            getContentType: function (ext) {
                return extTypes[ext.toLowerCase()] || 'application/octet-stream';
            }
        };
    }();

    // 拡張子からContent-Typeを判別する
    var mime = exports.ext.getContentType(exports.ext.getExt(path));
</script>

<h3>4. レスポンスを送信する</h3>

<p>ファイルを読み込みContent-Typeを判別できたら、最後にファイルの内容を返却します。</p>
<p>今回はWebサーバなので、正常にレスポンスをする場合はHTTP/1.1 200 OKをヘッダ情報に含める必要があります。</p>
<script type="syntaxhighlighter" class="brush: js" title="">
    // ファイルを読み込めたらブラウザに出力する
    // レスポンスヘッダに200 OKとContent-Typeを出力する
    response.writeHead(200, { 'Content-Type': mime });
    // レスポンスボディにファイルの中身を出力する
    response.write(data);
    // レスポンス終わり
    response.end();
</script>

<h3>Node.jsを起動する</h3>

<p>これまで紹介したソースを組み合わせることで、Apacheと同じようにリクエストされたファイルを返却できるようになりました。</p>
<p>これまでのソースをserver.jsというファイル名で保存した場合、以下のコマンドで実行することで、WebサーバとしてNode.jsが起動します。</p>
<pre>   node server.js
</pre>
<p>この状態でブラウザからアクセスすると、URLに応じてHTMLファイルや画像、あるいは、404ページが表示されるようになります。</p>


<h2>Node.jsのデーモン化</h2>

<p>先ほどのコマンドでNode.jsを起動すると、待受状態のまま他の操作を行えなくなります。これでは、サーバを起動中ずっとコンソールを接続したままにしなくてはいけません。サーバとして動かすためには、やはりバックグラウンドで
実行されて欲しいものです。</p>

<p>幸いなことに、Node.jsをデーモン化するモジュールがあります。今回はdaemonモジュールを利用してデーモン化しました。これまで記述してきたJavascriptファイルの末尾に以下の記述を追加します。</p>

<script type="syntaxhighlighter" class="brush: js" title="">
    // daemonモジュール読み込み
    var daemon = require('daemon');

    // Node.jsをデーモン化する
    // fsで開いたファイルにNode.jsのログが出力される。
    fs.open('/www/hoge/logs/node.log', 'w+', function (err, fd) {
        // デーモン化開始
        daemon.start(fd);
        // プロセスIDを指定ファイルに書き出す
        daemon.lock('/tmp/node.pid');
    });
</script>

<p>これで、nodeコマンド実行すると自動的にデーモン化されて起動します。</p>

<h2>ベーシック認証の実装</h2>

<p>やっとNode.jsをWebサーバとして動かすことができましたが、開発中に誰でもアクセスできてしまうのは困りものです。そこで、ベーシック認証を設定することにしました。</p>

<p>今回はexpressなどのフレームワークを利用していないため、ベーシック認証の処理も実装する必要があります。</p>

<script type="syntaxhighlighter" class="brush: js" title="">
    // 認証情報を設定
    var basicAuth = {id: 'ID', pass: 'PASS'};

    // ベーシック認証を実施する
    if (basicAuth != null) {
        // リクエストヘッダから認証情報を取得する
        var authHeader = request.headers['authorization'] || '';

        // エンコードされている認証トークンを取得する
        var token = authHeader.split(/\s+/).pop() || '';

        // トークンをbase64デコードする
        var auth = new Buffer(token, 'base64').toString();

        // デコードした文字列を「:」で分割して、ユーザ名とパスワードを取得する
        var parts = auth.split(/:/);
        var username = parts[0];
        var password = parts[1];

        // ユーザ名とパスワードが一致しない場合は、401を返却する
        if (basicAuth.id !== username || basicAuth.pass !== password) {
            response.writeHead(401, {
                'WWW-Authenticate': 'Basic realm="Authentication required"'
            });
            response.end();
        }
    }
</script>

<h2>今回のおさらい</h2>
<p>今回はNode.jsをApacheと同様に動作させるための処理、および、バックグラウンドで動作させるためのデーモン化を行いました。さらに、開発中に誰でもアクセスできては困るのでベーシック認証も独自で実装しました。</p>

<p>これで、Apache利用時と同様に、ドキュメントルートにファイルを置くだけでブラウザからアクセスできるようになりました。また、開発中はベーシック認証を聞かれるため、一般に公開されることもありません。</p>


<h2>次回の内容</h2>

<p>次回はいよいよWebSocketを用いたティザーサイト演出の実装について説明していきます。</p>
<p>また、ユーザエージェントに基づくコンテンツ出し分けについても合わせてご紹介します。</p>

<ul>
<li><a href="/project/node_js/01.html">第一回 Node.jsでどんなことができる？</a></li>
<li><a href="/project/node_js/02.html">第二回 ティザーサイトの実装裏側！-環境編</a></li>
<li>第三回 ティザーサイトの実装裏側！-実装編</li>
</ul>

<hr>

<h3 class="taC">Node.jsなどリアルタイムWebについて、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>ワンソースでマルチデバイスコンテンツを実現。IMJグループ2012年賀「Multi-Device Dragon」</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/report/06.html" />
    <id>tag:mdlab.jp,2012:/project//2.40</id>

    <published>2011-12-31T15:00:00Z</published>
    <updated>2011-12-31T15:09:51Z</updated>

    <summary>ワンソースでマルチデバイスコンテンツを実現。IMJグループ2012年賀コンテンツ「Multi-Device Dragon」</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="活動報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="airnativeextension" label="AIR Native Extension" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="airアプリ" label="AIRアプリ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ipad" label="iPad" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rtmfp" label="RTMFP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="年賀" label="年賀" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[

<div class="taC">
<p><iframe width="444" height="255" src="http://www.youtube.com/embed/ny1qRHK4KLA?rel=0" frameborder="0" allowfullscreen></iframe></p>
</div>
<p>新年明けましておめでとうございます。糸数です。</p>
<p>IMJグループ2012年賀コンテンツ「<a href="http://www.imjp.co.jp/nenga/2012/" target="_blank">Multi-Device Dragon</a>」を公開させて頂きました。
</p>
<p>「Mac、Windows、iOS、Android」間を、龍が自由に渡り歩き、優雅に飛翔する、というコンテンツで、龍の極彩色は、&quot;デバイス&quot;や&quot;ディスプレイ&quot;を象徴し、<strong>IMJグループが2012年、めまぐるしく進化するデジタル環境の変化に取り組んでゆく</strong>、という意思を表現しています。<br />

</p>

<div class="taC">
<a href="http://www.imjp.co.jp/nenga/2012/" target="_blank"><img alt="Multi-Device Dragon" src="http://mdlab.jp/project/report/nenga2012_image1_444.png"  class="fullImg"" /></a></div>
<br /><br />
<p>以下、今回のコンテンツを構成する技術的なトピックです。
</p><hr />
<h2>Adobe AIR3</h2>
  さまざまなプラットフォーム、デバイスに展開できるランタイム。<br />
  今回はこれを利用し<strong>「iOSアプリ」「Androidアプリ」「Flash(web)」をワンソース開発しました</strong>。<br />
  ※ベースの技術はActionScript3を使用。<br />
  ※誤解されている方も多いですが、Flashの技術でiOSアプリも作成可能ですよ！。
<p>[参考リンク]<br />
  <a href="http://www.adobe.com/jp/products/air.html" target="_blank">Adobe AIR 3 </a>
</p>
<hr />
<h2>RTMFP</h2>
  FlashPlayer10から搭載されているP2P型通信機能。<br />
  サーバレスモードで接続することにより、<strong>サーバを解さず、同一LAN内の端末同士が通信</strong>できます。<br />
  今回はこれを利用し、各端末のAIRランタイム上のFlashPlayer同士が、直接通信しています。
<p>[参考リンク]<br />
<a href="http://cuaoar.jp/2010/03/flash-player-101-rtmfp.html" target="_blank">Flash Player 10.1 と RTMFP - akihiro kamijo</a><br />
<a href="http://help.adobe.com/ja_JP/flashmediaserver/devguide/WSa4cb07693d123884520b86f312a354ba36d-7ffe.html#WSf888d222081ca19c46a084fa12a8413080e-8000" target="_blank">Adobe Flash Media Server 4.5 * RTMFP グループ </a><br />
<a href="http://www.flashrealtime.com/directed-routing-explained-flash-p2p/" target="_blank">Directed Routing Explained in Flash 10.1 P2P -- FlashRealtime.com</a></p>
<hr />
<h2>AIR Native Extension</h2>
AIR から、各デバイスの、「OS(ネイティブ)機能」を利用できる拡張機能。<br />
  例えば、iOSならObjective-C、AndroidならJAVAの機能、などが利用できます。<br />
  つまり、<strong>AIRのみでは実現できない機能を持ったアプリケーションの作成</strong>、が可能です。<br />
  （ネイティブアプリと比較してAIRアプリでできないことは実質無くなった（ちょっと語弊あるかもしれませんが））<br />
  今回はこれを利用し、それぞれのデバイスで出来るだけ同じ動作をするように、スクリーンオンオフ、ネットワーク状態監視、の機能などを拡張しています。<br />

<p>[参考リンク]<br />
<a href="http://cuaoar.jp/2011/09/adobe-air-actionscript-n.html" target="_blank">Adobe AIR と ActionScript Native Extensions (ANE) - akihiro kamijo </a></p>

<hr />
<h2>最後に</h2>
  最後まで読んでいただき、ありがとうございました。<br />

では、本年もよろしくお願いいたします！。<br />
<br />
<br />
]]>
        
    </content>
</entry>

<entry>
    <title>人気コラムランキング(～2011年12月)</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/report/05.html" />
    <id>tag:mdlab.jp,2011:/project//2.39</id>

    <published>2011-12-28T01:22:11Z</published>
    <updated>2012-02-01T01:41:39Z</updated>

    <summary>人気コラムランキングはじめます2011年9月26日にオープンした、このマルチデバイスLab.サイト。オープンから2ヶ月がたち、コラムの総数も20本になりました「Multi Device Lab. は、デジタル・コミュニケーションの先端に立ち、今を調査し、分析し、未来を予測し、創造することをめざしています。」</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="活動報告" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="人気コラムランキング" label="人気コラムランキング" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<h2>人気コラムランキングはじめます</h2>

<p>2011年9月26日にオープンした、このマルチデバイスLab.サイト。
オープンから2ヶ月がたち、コラムの総数も20本になりました。</p>
**「Multi Device Lab. は、デジタル・コミュニケーションの先端に立ち、今を調査し、分析し、未来を予測し、創造することをめざしています。」**
<p>ちょうど、2011年も終わるタイミングなので、この20本のアクセス数や、口コミ数を独自に集計して、今デジタル・コミュニケーションの先端ではどんな技術や情報、データが一番必要とされているのかランキングにしてみました。</p>
<h2>今読まれている、みんなが興味のある技術や情報、データ　ベスト５を発表！</h2>
<p>集計期間：2011年9月26日～12月25日</p>

<p>●●第5位●●<br />
<a href="http://mdlab.jp/project/tool/01.html">swfアニメーションをhtml5に変換するAIRアプリ作ってみました</a></p>

<a href="http://mdlab.jp/project/tool/01.html"><img alt="swf_animation_converter_mainimage.png" src="/project/tool/images/swf_animation_converter_mainimage.png" class="halfImg"></a>
<p><span class="fcAtt">マルチデバイスLab.から初のツールです。
flashアニメーションをhtml5に変換するAIRアプリ。見た目の再現率100％。Web Designing12月号でもこの「SWF Animation Converter」をご紹介いただきました。<br />
また、このコラムは口コミでたくさんの皆さんに知ってもらうことができました。ぜひ使ってみてください！</span></p>

<p>●●第4位●●<br />
<a href="http://mdlab.jp/project/live_wallpaper/01.html">第一回 Android ライブ壁紙の魅力とは？</a></p>
<a href="http://mdlab.jp/project/live_wallpaper/01.html"><img src="/project/live_wallpaper/images/ttl_live01.jpg" class="halfImg" alt="第一回 Android ライブ壁紙の魅力とは？"></a>
<p><span class="fcAtt">現在、三回まで公開しているライブ壁紙プロジェクトの第一回が四位ランクイン。サンプルアプリもこのページからダウンロードできます。
Androidライブ壁紙は、2012年Android端末の普及によりもっと需要が高くなりそうですね。</span></p>

<p>●●第3位●●<br />
<a href="http://mdlab.jp/project/osmu/01.html">第一回 ワンソースマルチユースを斬る！</a></p>
<a href="http://mdlab.jp/project/osmu/01.html"><img src="/project/osmu/images/osmu_01.png" class="halfImg"></a>
<p><span class="fcAtt">全四回で完結したワンソースマルチユースプロジェクト。<a href="/project/osmu/04.html">最終回の第四回</a>では、ワンソースマルチユースのガイドラインをダウンロードできます。実は、このマルチデバイスLab.サイトもこのガイドラインを元にワンソースで制作されてます。あわせてご覧ください！</span></p>

<p>●●第2位●●<br />
<a href="http://mdlab.jp/project/investigative_report/01.html">スマートフォンユーザーの今</a></p>

<a href="http://mdlab.jp/project/investigative_report/01.html"><img src="/project/report/images/rank111201.png" class="halfImg"></a>
<p><span class="fcAtt">スマートフォンユーザーのライフスタイルの変化についてまとめたコラムです。興味深いデータで、多くの人にアクセスしてもらったコラムでした。来年はスマートフォンをはじめ、デバイスがどのように利用シーンとして変わっていくか楽しみです。</span></p>

<p>★★第1位★★<br />
<a href="http://mdlab.jp/project/ui_guideline/01.html">スマートフォン・タブレット UIガイドライン</a></p>

<a href="http://mdlab.jp/project/ui_guideline/01.html"><img src="/project/ui_guideline/images/tips_pic.png" class="halfImg"></a>
<p><span class="fcAtt">タッチパネルの操作性など特有なインターフェイスのスマートフォン・タブレットに関するUIガイドラインがもっともたくさんの皆さんにアクセスされ、共有されたコラムでした。ガイドラインをダウンロードいただいた皆様も多く、参考になればと思います。<br />
もちろんスマートフォン・タブレットのサイトやアプリの制作依頼もご相談ください。</span></p>
<hr />
<h2>どんなコラムがあるのか</h2>
<p>最後にマルチデバイスLab.サイトで掲載している全コラムを紹介します。</p>

<p><a href="http://mdlab.jp/project/">プロジェクト</a>を紹介しながらコラムについて振り返ってみましょう。
プロジェクトの最後に（完）がついているものは、連載が完結しているプロジェクトになります。</p>

<h3>●Androidライブ壁紙プロジェクト</h3>
<p>Androidのライブ壁紙の特徴や制作方法、テンプレートの公開まで、2012年もますますユーザーが増えると思われるAndroidのライブ壁紙についてのプロジェクトです。
実際製作したライブ壁紙をAndroidマーケットでダウンロードできますのでチェックしてください！</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/live_wallpaper/01.html">第一回 Android ライブ壁紙の魅力とは？</a></li>
<li><a href="http://mdlab.jp/project/live_wallpaper/02.html">第二回 Android ライブ壁紙を作るまで。</a></li>
<li><a href="http://mdlab.jp/project/live_wallpaper/03.html">第三回 Androidライブ壁紙テンプレートを公開します! (カスタマイズ＆ランチャー機能付き)　</a></li>
<ul></div>
<h3>●Frameworkプロジェクト</h3>
<p>年末に開始したばかりのプロジェクトです。便利なFrameworkについて調査研究していく予定です。
まずは、cocos2dxについて、導入方法などわかりやすくまとめられています。</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/framework/01.html">クロスプラットフォームの新しい選択肢「cocos2dx」でスマートフォンアプリを開発！ -導入編</a></li>
<ul></div>
<h3>●Node.jsプロジェクト</h3>
<p>サーバーサイド界隈で注目を集めているNode.js。概要や導入の際の注意点や、tipsを公開していきます。
現在第二回まで公開されています。継続して掲載していきますのでお楽しみに！</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/node_js/01.html">第一回 Node.jsでどんなことができる？</a></li>
<li><a href="http://mdlab.jp/project/node_js/02.html">第二回 ティザーサイトの実装裏側！-環境編</a></li>
<ul></div>
<h3>●UIガイドラインプロジェクト</h3>
<p>制作時の一つの指標となるUIガイドラインをデバイス別に公開していくプロジェクトです。
現時点で、スマートフォン・タブレットのガイドラインとフィーチャーフォン用のガイドラインを公開しています。
ランキング1位スマートフォン・タブレットの第度ラインをダウンロードいただけます。ご活用ください。</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/ui_guideline/01.html">スマートフォン・タブレット UIガイドライン</a></li>
<li><a href="http://mdlab.jp/project/ui_guideline/02.html">フィーチャーフォン UIガイドライン</a></li>
<ul></div>
<h3>●ツールプロジェクト</h3>
<p>実際使えるツールやアプリケーションを製作して紹介していくプロジェクト。
現在は1つのみですが、そのツールのクオリティの高さに私は驚きました。来年も期待してください！</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/tool/01.html">swfアニメーションをhtml5に変換するAIRアプリ作ってみました</a></li>
<ul></div>
<h3>●ティザーサイトプロジェクト（完）</h3>
<p>約一ヶ月間の期間限定公開しましたマルチデバイスLab.のティザーサイトについて。
期間限定の利を活かして（？）普段のプロジェクトではなかなか出来ないような実験的な試みをいくつか取り入れました。その内容をご紹介しています。
開発期間は短かったのですが、すごいスピード感で完成させることができ、マルチデバイスLab.の勢いにドライブがかるきっかけとなったプロジェクトでした。<br />
コラム内で、ティザーサイトを見ることもできます。リアルタイムウェブを体験してみてください。</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/teaser/01.html">ティザーサイトについて -Canvas編-</a></li>
<li><a href="http://mdlab.jp/project/teaser/02.html">ティザーサイトについて -CSS3編-</a></li>
<ul></div>
<h3>●ワンソースマルチユースプロジェクト（完）</h3>
<p>話題のMedia Queriesをはじめとしたワンソースマルチユースの対応をする際の注意点と、未来について語っていきます。
四回でいったん終了したプロジェクトですが今後新しい動きがあれば再開されます。まずは現状のワンソースマルチユースをチェックしてみてください。</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/osmu/01.html">第一回 ワンソースマルチユースを斬る！</a></li>
<li><a href="http://mdlab.jp/project/osmu/02.html">第二回 ワンソースマルチユースを斬る！</a></li>
<li><a href="http://mdlab.jp/project/osmu/03.html">第三回 ワンソースマルチユースを斬る！</a></li>
<li><a href="http://mdlab.jp/project/osmu/04.html">第四回 ワンソースマルチユースを斬る！</a></li>
<ul></div>
<h3>●活動報告プロジェクト</h3>
<p>マルチデバイスLab.の活動報告を告知します。
今年は雑誌掲載など紹介してます</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/report/03.html">WebDesigning9月号に執筆いたしました。</a></li>
<li><a href="http://mdlab.jp/project/report/02.html">FXUGで「SWF Animation Converter」を発表</a></li>
<li><a href="http://mdlab.jp/project/report/01.html">マルチデバイスLab.からのメッセージ</a></li>
<li><a href="http://mdlab.jp/project/report/04.html">WebDesigning12月号でSWF Animation Converterが紹介されました！</a></li>
<ul></div>
<h3>●調査レポートプロジェクト</h3>
<p>調査レポートを基に、ユーザーを取り巻くデジタル環境の"今"に何が起こっているのか分かり易く伝えるコラムです。
現在掲載されているコラムは、スマートフォンユーザーについてです。ご覧になっていない方はぜひチェックしてください。</p>
<div class="topicBox">
<ul>
<li><a href="http://mdlab.jp/project/investigative_report/01.html">スマートフォンユーザーの今</a></li>
<ul></div>

<p>2012年も、マルチデバイスLab.から発信されるコラムにご期待ください！</p>

<hr />


<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>クロスプラットフォームの新しい選択肢「cocos2dx」でスマートフォンアプリを開発！ -導入編</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/framework/01.html" />
    <id>tag:mdlab.jp,2011:/project//2.36</id>

    <published>2011-12-27T02:47:54Z</published>
    <updated>2012-02-01T01:41:29Z</updated>

    <summary>スマートフォンの普及が急速に進んできた昨今、AndroidとiPhoneのどちらにも対応したアプリの開発が求められるケースが増えてきました。
一般的にはAndroidならJava、iPhoneならObjective-Cといったように、OS毎に異なるプログラム言語での開発を行う必要があり、それがコスト的にもスケジュール的にも開発者を悩ませる要因となっていました。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="Framework" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cocos2dx" label="cocos2dx" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="framework" label="Framework" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="iphone" label="iPhone" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img src="/project/cocos2dx/thmBig.png" class="fullImg" /></div>

<p></p>

<h2>はじめに</h2>
スマートフォンの普及が急速に進んできた昨今、AndroidとiPhoneのどちらにも対応したアプリの開発が求められるケースが増えてきました。
一般的にはAndroidならJava、iPhoneならObjective-Cといったように、OS毎に異なるプログラム言語での開発を行う必要があり、それがコスト的にもスケジュール的にも開発者を悩ませる要因となっていました。
その悩みを解決するための新しい選択肢として、ワンソースでマルチデバイス向けアプリの開発が可能となるフレームワーク「cocos2dx」をご紹介いたします。

<hr />

<h2>cocos2dxとは？</h2>
iPhone(iOS)向けの2Dゲームが手軽に開発できることで多くの開発者に使用されているフレームワーク「cocos2d for iPhone」。
それをAndroidやblackberryなどの他プラットフォームにも対応させたのが「cocos2dx」です。
デバイス毎の微調整は必要にはなりますが、事実上ワンソースでの開発が可能となりました。
「cocos2d for iPhone」はObjective-Cでの開発ですが、「cocos2dx」ではC++やLuaを使用して開発します。

<a href="http://www.cocos2d-x.org/" target="_blank">http://www.cocos2d-x.org/</a>


<hr />

<h2>cocos2dxのインストール</h2>
今回はiPhoneとandroid向けのアプリ開発を行いますので、開発環境はMac OS Xを使用します。
またXcode、Eclipse、Android SDK、Android NDKがインストールされていることを前提としています。

<h3>使用環境</h3>
<ul>
<li>Mac OS X 10.6.8</li>
<li>Xcode 3.2.5</li>
<li>Eclipse 3.7.1</li>
<li>Android SDK Revision 16</li>
<li>Android NDK Revision 7</li>
</ul>

<br>

まずはcocos2dxのサイトから本体をダウンロード。
現時点での最新版にあたる「cocos2d-1.0.1-x-0.10.0」を使用します。

<h3>ダウンロードページ</h3>
<a href="http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download" target="_blank">http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download</a>
<a href="http://mdlab.jp/project/assets_c/2011/12/download-173.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/download-173.html','popup','width=654,height=97,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/download-thumb-500x74-173.png" width="500" height="74" alt="download.png" class="mt-image-none" style="" /></a>

ダウンロードが完了したら、「cocos2d-1.0.1-x-0.10.0.zip」を解凍して任意のフォルダに格納します。
今回はApplications配下に格納しました。


<a href="http://mdlab.jp/project/assets_c/2011/12/folder0-92.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/folder0-92.html','popup','width=593,height=505,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/folder0-thumb-300x255-92.png" width="300" height="255" alt="folder0.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

cocos2dxのインストールはこれで完了です。

<hr />

<h2>各種設定</h2>
実際にアプリ開発をする前に、インストールしたcocos2dxを開発環境に合わせて設定変更をする必要があります。


<h3>Xcode用テンプレートのインストール</h3>
iPhone開発時に使用するテンプレートをXcodeで使用できるようにします。
ターミナルを起動し、cocos2dxフォルダ配下にあるXcode用テンプレート展開シェル「install-templates-xcode.sh」を実行します。
Xcodeのインストール場所によっては、シェル内の設定変更が必要な場合もありますので実行前にファイルを開いて設定を確認しましょう。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal0-97.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal0-97.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal0-thumb-300x128-97.png" width="300" height="128" alt="terminal0.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


設定が問題なければ実際にシェルを実行します。
(今回の環境では権限の問題からsudoをつけています。)


Xcodeのバージョンを聞かれるので数値を入力。
今回はXcode 3.2.5を使用しますので、「3」と入力しました。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal1-100.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal1-100.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal1-thumb-300x128-100.png" width="300" height="128" alt="terminal1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

done!と表示されれば展開完了です。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal2-103.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal2-103.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal2-thumb-300x128-103.png" width="300" height="128" alt="terminal2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


Xcodeを起動して「新規Xcodeプロジェクトを作成」を選択すると
「User Templates」カテゴリ内に「cocos2d-1.0.1-x-0.10.0」が追加されています。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode0-119.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode0-119.html','popup','width=865,height=589,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode0-thumb-300x204-119.png" width="300" height="204" alt="xcode0.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

これでXcode用テンプレートのインストールは完了です。


<h3>Android SDK/NDKのパス設定</h3>
今度はAndroid用の設定です。
ターミナルを起動し、cocos2dxフォルダ配下にあるAndroid用プロジェクト生成シェル「create-android-project.sh」を実行します。
こちらもAndroid SDK/NDKのインストール場所によって、シェル内の設定変更が必要になります。
今回使用する環境では下記のように設定しました。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal3-106.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal3-106.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal3-thumb-300x128-106.png" width="300" height="128" alt="terminal3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

設定を変更したら準備完了です。

<hr />

<h2>プロジェクトの作成</h2>
<h3>Android用プロジェクト</h3>
実際にアプリを開発するためのプロジェクトを作成します。
ターミナルを起動し、前項で設定変更をした「create-android-project.sh」を実行しましょう。


最初にパッケージパスの入力を求められます。
今回開発するアプリは「jp.mdlab.example」にしました。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal4-107.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal4-107.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal4-thumb-300x128-107.png" width="300" height="128" alt="terminal4.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

続いてターゲットIDの入力です。
Androidの各バージョンと、それに対応する数値がIDとして表示されますので、
作成するAndroidのバージョンに応じたIDを入力します。
今回はAndroid2.1向けにするため、「1」を入力しました。

<a href="http://mdlab.jp/project/assets_c/2011/12/terminal5-12set-181.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal5-12set-181.html','popup','width=725,height=626,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal5-12set-thumb-300x259-181.png" width="300" height="259" alt="terminal5-12set.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

最後にプロジェクト名の入力です。
プロジェクト名は「example」にしました。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal6-113.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal6-113.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal6-thumb-300x128-113.png" width="300" height="128" alt="terminal6.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

上記3点の入力が完了するとプロジェクト作成処理が行われます。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal7-114.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal7-114.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal7-thumb-300x128-114.png" width="300" height="128" alt="terminal7.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


cocos2dxフォルダ配下に「example」フォルダが作られました。
中には下記のようにフォルダが3つ含まれています。


<a href="http://mdlab.jp/project/assets_c/2011/12/folder1-110.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/folder1-110.html','popup','width=593,height=505,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/folder1-thumb-300x255-110.png" width="300" height="255" alt="folder1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

android:Android用アプリで使用する設定ファイルやリソース類が含まれます。
Classes:cocos2dxでの開発はこのClassesフォルダ内の*.cpp、*.hなどを編集します。
Resources:アプリで使用する各デバイス共通の画像などが含まれてます。

<h3>iPhone用プロジェクト</h3>
上記でAndroid用プロジェクトは作成できましたが、これだけではiPhone用アプリの開発はできませんので、
別途iPhone用プロジェクトを作成する必要があります。
iPhone用プロジェクトの作成時、Android用プロジェクトと同じプロジェクト名にして
先ほど作成したプロジェクトフォルダに上書きすると、
共通のClassesファイルを使用したiPhone用/Android用それぞれのプロジェクトの作成をすることができます。
共通のClassesファイルを使用することで、iPhone用とAndroid用アプリの同時開発が可能になります。


<a href="http://mdlab.jp/project/assets_c/2011/12/comp-178.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/comp-178.html','popup','width=750,height=505,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/comp-thumb-500x336-178.png" width="500" height="336" alt="comp.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


まずXcodeを起動して「新規Xcodeプロジェクトを作成」をクリック。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode1-120.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode1-120.html','popup','width=802,height=525,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode1-thumb-300x196-120.png" width="300" height="196" alt="xcode1.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


User Templates内の「cocos2d-1.0.1-x-0.10.0」を選択するとcocos2dx用のテンプレートが表示されますので、
「cocos2d-x Application」を選択して「選択...」ボタンをクリック。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode2-121.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode2-121.html','popup','width=865,height=589,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode2-thumb-300x204-121.png" width="300" height="204" alt="xcode2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

新規プロジェクト保存画面が表示されますので
名前に「example」と入力し、cocos2d-1.0.1-x-0.10.0フォルダ内に保存します。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode3-122.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode3-122.html','popup','width=537,height=378,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode3-thumb-300x211-122.png" width="300" height="211" alt="xcode3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


exampleプロジェクトは先ほどAndroid用プロジェクトとして作成しましたので、
下記のようなアラートが表示されます。
Android用プロジェクトで作成されたClassesフォルダなどをそのままiPhone用プロジェクトとしても流用しますので、
「置き換え」ボタンをクリックして上書きします。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode4-123.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode4-123.html','popup','width=538,height=400,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode4-thumb-300x223-123.png" width="300" height="223" alt="xcode4.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

さらに下記のような確認画面が表示されますので、
「選択ファイルを上書き」ボタンをクリックして上書きします。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode5-124.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode5-124.html','popup','width=507,height=522,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode5-thumb-300x308-124.png" width="300" height="308" alt="xcode5.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


先ほど作成した「example」フォルダ内にxcodeprojファイルや「ios」フォルダが作成されました。
これでiPhone用プロジェクトの作成は完了です。


<a href="http://mdlab.jp/project/assets_c/2011/12/folder2-111.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/folder2-111.html','popup','width=593,height=505,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/folder2-thumb-300x255-111.png" width="300" height="255" alt="folder2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

<hr />

<h2>iPhoneでの動作確認</h2>
iPhoneでの動作確認は一般的なアプリ開発時の手順と同じです。
前項で作成したexample.xcodeprojファイルをXcodeで開き、
[概要]のプルダウンを「Simulator」に設定してから[ビルドと実行]をクリック。
ビルド完了後にシミュレータが起動し、テンプレートに記述されたプログラムが実行されます。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode7-126.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode7-126.html','popup','width=713,height=362,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode7-thumb-300x152-126.png" width="300" height="152" alt="xcode7.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

※実機で動作させるには事前にプロビジョニングファイルの登録や設定が必要です。


少しだけプログラムに手を加えてみます。
Classesフォルダ内にあるHelloWorldScene.cppを開き、下記のような変更をしてみました。

<h3>修正前</h3>
<script type="syntaxhighlighter" class="brush: js" title="">
CCLabelTTF* pLabel = CCLabelTTF::labelWithString("Hello World", "Thonburi", 34);
</script>
<p></p>
<h3>修正後</h3>
<script type="syntaxhighlighter" class="brush: js" title="">
CCLabelTTF* pLabel = CCLabelTTF::labelWithString("Hello World!!!", "Thonburi", 34);
</script>
<p></p>

ファイルを保存してから再度[ビルドと実行]をクリック。
先ほどHelloWorldScene.cppに加えた修正が反映されていることが確認できます。


<a href="http://mdlab.jp/project/assets_c/2011/12/xcode8-127.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/xcode8-127.html','popup','width=713,height=362,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/xcode8-thumb-300x152-127.png" width="300" height="152" alt="xcode8.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

<hr />

<h2>Androidでの動作確認</h2>
続いてandroidでの動作確認です。
Androidは少し複雑で、まずはNDKのビルドから行う必要があります。


ターミナルを開き、先ほど作成したプロジェクト「example」フォルダ内の「android」フォルダに移動。
フォルダ内にある「build_native.sh」を実行します。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal8-115.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal8-115.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal8-thumb-300x128-115.png" width="300" height="128" alt="terminal8.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

cppファイルのコンパイルが順次行われていくのですが、
途中でエラーが発生してしまいました。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal9-116.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal9-116.html','popup','width=935,height=296,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal9-thumb-300x94-116.png" width="300" height="94" alt="terminal9.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

原因の調査をしたところ、Android NDKがRevision 7になって削除されてしまったフラグがあるらしく、
Android.mkファイルを修正しなくてはならないようです。


<h3>参考サイト</h3>
<a href="http://blog.plicatibu.com/how-to-solve-problems-with-build_native-sh-and-android-ndk-r7-on-cocos2d-x/" target="_blank">http://blog.plicatibu.com/how-to-solve-problems-with-build_native-sh-and-android-ndk-r7-on-cocos2d-x/</a>


cocos2dxフォルダ配下のcocos2dx/Android.mkファイルを開き、「LOCAL_CFLAGS」に「-DGL_GLEXT_PROTOTYPES=1」を加えます。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal10-117.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal10-117.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal10-thumb-300x128-117.png" width="300" height="128" alt="terminal10.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


再びbuild_native.shを実行したところ、今度はうまくビルドできました。


<a href="http://mdlab.jp/project/assets_c/2011/12/terminal11-118.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/terminal11-118.html','popup','width=725,height=310,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/terminal11-thumb-300x128-118.png" width="300" height="128" alt="terminal11.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>


example/android/libs内に.soファイルが生成されています。


<a href="http://mdlab.jp/project/assets_c/2011/12/folder3-112.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/folder3-112.html','popup','width=593,height=505,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/folder3-thumb-300x255-112.png" width="300" height="255" alt="folder3.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

NDKのビルドが完了したらEclipseを起動。
[File]＞[New]＞[Android Project]を選択するとプロジェクト作成画面が表示されます。
「Create project from existing source」をチェックし、
「Location」の欄に先ほど作成した「example」フォルダ内の「android」フォルダを入力しましょう。
「android」フォルダを選択した時点で、「Project Name」に「example」と自動的に入力されます。


<a href="http://mdlab.jp/project/assets_c/2011/12/eclipse0-93.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/eclipse0-93.html','popup','width=525,height=549,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/eclipse0-thumb-300x313-93.png" width="300" height="313" alt="eclipse0.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

入力が完了したら「Finish」ボタンをクリック。
先ほど作成したプロジェクトが読み込まれます。


<a href="http://mdlab.jp/project/assets_c/2011/12/eclipse1-108.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/eclipse1-108.html','popup','width=254,height=331,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img alt="eclipse1.png" src="http://mdlab.jp/project/cocos2dx/eclipse1.png" width="254" height="331" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

念のため[Project]＞[Clean]で一度クリーニングしてからビルド。
[Run]＞[Run As]＞[Android Application]を選択すればシミュレータで起動できます。
iPhoneでの動作確認時に行った修正も反映されていることが確認できました。


<a href="http://mdlab.jp/project/assets_c/2011/12/eclipse2-109.html" onclick="window.open('http://mdlab.jp/project/assets_c/2011/12/eclipse2-109.html','popup','width=732,height=680,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://mdlab.jp/project/assets_c/2011/12/eclipse2-thumb-300x278-109.png" width="300" height="278" alt="eclipse2.png" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>

開発機材に実機を接続してから起動すると実機での動作確認もできます。

<hr />

<h2>まとめ</h2>

cocos2dxの導入からiPhone、Androidでの動作確認方法までご紹介いたしました。
実際にアプリを開発する際には、Xcode上でiOSベースでの開発と動作確認を行いつつ、
ある程度できあがったらNDKのビルドをしてEclipseでの動作確認、という流れになるかと思います。

<h2>cocos2dxシリーズ</h2>

<ul>
<li>クロスプラットフォームの新しい選択肢「cocos2dx」でスマートフォンアプリを開発！ -導入編</li>
<li><a href="/project/framework/02.html">「cocos2d x」の開発環境が更に快適に！！ -Xcode4対応版</a></li>
</ul>

<hr />

<h3 class="taC">クロスプラットフォーム開発について質問、興味などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title>フィーチャーフォン UIガイドライン</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/ui_guideline/02.html" />
    <id>tag:mdlab.jp,2011:/project//2.28</id>

    <published>2011-12-21T10:09:22Z</published>
    <updated>2012-04-06T05:52:34Z</updated>

    <summary>フィーチャーフォンUIガイドラインについて小さい画面でキー操作するフィーチャーフォンも、適したUI設計を行う必要があるデバイスです。フィーチャーフォンの特徴として挙げられ、なおかつ注意すべき点は、画面サイズ、容量制限、フィーチャーフォン特有の機能制限です。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="UIガイドライン" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ガイドライン" label="ガイドライン" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="フィーチャーフォン" label="フィーチャーフォン" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img src="/project/ui_guideline/images/tips_pic3.png" class="fullImg" /></div>

<h2>フィーチャーフォンUIガイドラインについて</h2>

<p>小さい画面でキー操作するフィーチャーフォンも、適したUI設計を行う必要があるデバイスです。</p>

<p>フィーチャーフォンの特徴として挙げられ、なおかつ注意すべき点は、画面サイズ、容量制限、フィーチャーフォン特有の機能制限です。<br />
このデバイスの特性を踏まえずに設計すると、ユーザーにとって使い勝手の悪いばかりか、閲覧できないサイトになりかねません。</p>

<p>この特徴を踏まえた上で、マルチデバイスLab.はIMJモバイルのユーザビリティ研究所と共同で、最適なUIを設計するためのガイドラインを作成しました。また同時に、ガイドラインに準拠したPSDデータも同時に公開しています。</p>

<p>ガイドラインとPSDデータを見比べ、画面サイズと容量制限を踏まえたフィーチャーフォンの画面設計で注意すべきポイントを掴んでいただければと思います。</p>

<p>ただしUIガイドラインはあくまで指標です。<br />
サイト制作時にはターゲットユーザー、利用シーンに合わせて、ガイドラインを調整してご利用していただくことをお勧めします。</p>

<hr />

<h2>ガイドラインのダウンロード</h2>
<p>下記リンクからPDF、PSDデータのダウンロードができます。</p>

<div><p class="taC"><a href="/resources/data/20111221featurephoneguide.zip" onclick="javascript:_gaq.push(['_trackEvent', 'download', 'featurephonephoneguide']);" target="_blank" class="btnTxtL">PDF/PSDデータをダウンロード</a></p></div>


<p>slideshareにも公開しているのでWEB上からでも確認できます。</p>

<div class="taC">
<div id="__ss_10652458"> <iframe src="http://www.slideshare.net/slideshow/embed_code/10652458" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/MultiDeviceLab" target="_blank">MultiDeviceLab</a> </div> </div>
</div>

<div class="topicBox">
<h3>ユーザビリティ研究所</h3>
<p><a href="http://www.imjmobile.co.jp/" target="_blank">株式会社IMJモバイル</a>のユーザビリティ研究所は２００７年にモバイルサイトのユーザビリティ研究所として発足し、現在ではPC・モバイル・スマートフォン等、多様化するデバイスのユーザビリティ研究所として活動を行っている研究組織です。</p>
</div>

<hr />

<h3 class="taC">マルチデバイスLab.のガイドラインに質問、興味などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>

<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

<entry>
    <title> 第三回 Androidライブ壁紙テンプレートを公開します! (カスタマイズ＆ランチャー機能付き)</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/live_wallpaper/03.html" />
    <id>tag:mdlab.jp,2011:/project//2.30</id>

    <published>2011-12-06T05:15:53Z</published>
    <updated>2012-02-01T01:29:45Z</updated>

    <summary>Androidライブ壁紙テンプレートを公開します</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="Androidライブ壁紙" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="android" label="Android" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="java" label="java" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="テンプレート" label="テンプレート" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ライブ壁紙" label="ライブ壁紙" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img alt="vol3_0_title.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_0_title.png" width="444" height="171" class="fullImg" /></div>
<p></p>

<p>こんにちは糸数です。<br />Androidのライブ壁紙を作成していて、自分なりのフレームワークが出来てきたので、テンプレートとしてまとめてみました。<br />まだまだ改善の余地はあるかもしれませんが、公開させて頂きます。</p>

<h2>どんなテンプレート？</h2>
<p><span class="fb">デフォルトで下記２つの機能</span>が備わっています。</p>


<h3>[1] カスタマイズ機能</h3>
<p>ライブ壁紙をユーザーがカスタマイズできる、設定画面（<i>PreferenceActivity</i>）があり、その<i>Preference</i>で変更した値を、ライブ壁紙<i>Engine</i>側で取得、確認するコードがデフォルトで入っています。<br />
<span class="fcNote"><small>※<i>OnSharedPreferenceChangeListener </i>インターフェイスの<i> registerOnSharedPreferenceChangeListener </i>でリスナーしている</small></span>
</p>




<h3>[2] ランチャー機能</h3>

<p>
<span class="fb">ライブ壁紙は、通常のアプリと違い、インストールしてもホーム画面に表示されないので、どこに追加されたのかユーザーがわかりにくい</span>、という問題があります。（実際そのようなユーザーを何人か目の当たりにしました）<br />
それを解消するため、<span class="fb">壁紙インストールと同時に、ホームに「壁紙選択ページを起動する通常のアプリ」を作成</span>するようにしています。<br />
<span class="fcNote"><small class="fcNote">※<i>AndroidManifest.xml</i>でアプリを定義している</small></span></p>



<hr />

<h2>テンプレート利用するには？</h2>
<h3>ダウンロード</h3>
<p class="taC">
<a href="http://mdlab.jp/project/live_wallpaper/images/LiveWallpaper_LauncherAndPreferenceTemplate.zip" onclick="javascript:_gaq.push(['_trackEvent', 'download', 'LiveWallpaper_LauncherAndPreferenceTemplate']);" class="btnTxtL">テンプレートをダウンロード</a><br />（Eclipsプロジェクト）
</p>

<h3>Eclipsにインポートする</h3>
<span class="fcAtt" style="font-size:120%;">※ [ 注意 ] インポート前に、文字コード設定を確認。<br />
<i>[Preference] > [General] > [Workspace]</i> の<i>[Text file encoding] </i>が UTF-8 になっているか確認しましょう。</span><br />
<p>
<ul><li>1.ダウンロード後フォルダを解凍。</li>
<li>2.Eclipsを起動し、メニューの<i> [File] > [import] </i>を選択。</li>
<li>3.出てきたダイアログで、解凍したフォルダを選択。（<i>Copy projects into workspace</i> をチェックしテンプレートのコピーを使うようにします）</li></ul>
<br />


<div class="topicBox">
<p>※開発環境のセットアップに関しては
<a href="http://mdlab.jp/project/live_wallpaper/02.html">第二回 Android ライブ壁紙を作るまで。｜マルチデバイスLab. - Multi Device Lab.</a>を参考ください。</p>
</div>


</p>

<h2>テンプレートを素の状態でビルド＆インストールした場合の説明</h2>


<div class="imgLFL">
<div class="img"><p><img alt="vol3_1_buildandinstall.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_1_buildandinstall.png" width="241" height="321"  class="halfImg" /></p></div>
<div class="text">
<p>通常通りビルド＆インストールすると、<span class="fb">ホームにランチャーアプリが追加</span>されます。</p>
</div>
</div>


<div class="imgLFL">
<div class="img"><p><img alt="vol3_2_rancher.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_2_rancher.png"  class="halfImg"  /></p></div>
<div class="text"><p>ランチャーアプリを起動すると、シンプルにテキストとボタンのみが表示された画面になり、ボタンをタップすると...</p></div>
</div>

<div class="imgLFL">
<div class="img"><p><img alt="vol3_3_toast.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_3_toast.png" class="halfImg"  /></p></div>
<div class="text"><p>「ライブ壁紙選択画面」が表示され「(アプリタイトルはここ)を選択して下さい」と<span class="fb">Toastメッセージが表示されユーザをナビゲート</span>します。</p></div>
</div>

<div class="imgLFL">
<div class="img"><p><img alt="vol3_4_setting.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_4_setting.png" class="halfImg"   /></p></div>
<div class="text"><p>壁紙を選択すると真っ黒な画面になります（つまりテンプレートなのでなにも表示されません。）<br />
「Setting...」をタップすると、設定画面が表示されます。<br />
デフォルトで「<i> ListPreference</i> / <i>CheckBoxPreference</i> / <i>EditTextPreference </i>」の3つの<i>Preference</i>サンプルが配置されています</p></div>
</div>


<div class="imgLFL">
<div class="img"><p><img alt="vol3_5_toast_preference.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_5_toast_preference.png"  class="halfImg"  /></p></div>
<div class="text"><p><i>Preference</i>に何かしら変更を加えると、<span class="fb">ライブ壁紙側でその変更を取得し、Toastメッセージが表示されます。</span></p></div>
</div>



<div class="topicBox">
<p>文言、画像、レイアウト変更は「resフォルダ」内のファイルを適宜調整していけばOK!</p>
</div>
<hr />

<h2>テンプレート使用例</h2>
上記テンプレートを利用し作成した、サンプルライブ壁紙をご紹介します。<br />

<div class="taC">
<a href="https://market.android.com/details?id=jp.mdlab.livewallpaper.droidclock&feature=search_result#?t=W251bGwsMSwyLDEsImpwLm1kbGFiLmxpdmV3YWxscGFwZXIuZHJvaWRjbG9jayJd
*" target="_blank"><img alt="vol3_droidclockwallpaper.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_droidclockwallpaper.png" width="444" height="217"  class="fullImg" style="" /></a>

<p>
<a href="https://market.android.com/details?id=jp.mdlab.livewallpaper.droidclock&feature=search_result#?t=W251bGwsMSwyLDEsImpwLm1kbGFiLmxpdmV3YWxscGFwZXIuZHJvaWRjbG9jayJd
*" target="_blank">[Android Market] DROID CLOCK WALLPAPER</a>
</p>
</div>

<p>
上記、「カスタマイズ機能、ランチャー機能」が実装されています。<br />
<span class="fcNote">※表示するドロイド君のスタイルカスタマイズできます。(2D/3D)</span>
</p>



<hr />


<h2>テンプレートのパッケージ名を任意の名前に変更したい場合</h2>

<p>
現状このテンプレートでは、パッケージが<i> jp.mdlab.livewallpaper.template </i>となっています。<br />
任意のパッケージに変更する手順がすこし手間なので、詳細を説明します。</p>

<p>
1.<i>AndroidManifest.xml</i>を開き任意のパッケージ名に変更<br />
<img alt="vol3_7_manifest.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_7_manifest.png"   class="halfImg"  /></p>

<p>
2.<i>res/xml/wallpaper.xml </i>の<i> android:settingsActivity </i>の設定クラスパスを変更<br />
<img alt="vol3_8_xml.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_8_xml.png"    class="fullImg"  /></p>

<p>
3.res/パッケージを、<i>[右クリック] > [Refactor] > [Rename]</i>でリファクタリング<br />
<img alt="vol3_9_refactor.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_9_refactor.png"   class="fullImg"   /></p>

<p>
4.<i>res/パッケージ/Main.java</i> を開き、22行目あたりの、設定クラスパスを変更。<br />
<img alt="vol3_10_classpath.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_10_classpath.png"  class="fullImg"   /></p>

<p>
5.念のため最後に <i>[Project] > [Clean] </i>しておきましょう。<br />
<img alt="vol3_11_clean.png" src="http://mdlab.jp/project/live_wallpaper/images/vol3_11_clean.png"  class="halfImg"   /></p>


<p>これで任意のパッケージに変更できました。</p>



<hr />

<h2>最後に</h2>
<p>
「もっとこうしたほうがいいよ！」などのご意見などありましたら、 <a href="http://twitter.com/#!/md_lab" target="_blank">@md_lab</a> までご連絡いただけると幸いです。<br />
</p>

<p>

</p>

<p>
最後まで読んで頂きありがとうございました！</p>

<hr />

<h2>Android ライブ壁紙シリーズ</h2>

<ul>
<li><a href="/project/live_wallpaper/01.html">第一回 Android ライブ壁紙の魅力とは？</a></li>
<li><a href="/project/live_wallpaper/02.html">第二回 Android ライブ壁紙を作るまで。</a></li>
<li>第三回 Androidライブ壁紙テンプレートを公開します! (カスタマイズ＆ランチャー機能付き)</li>
</ul>]]>
        
    </content>
</entry>

<entry>
    <title>第二回 ティザーサイトの実装裏側！-環境編</title>
    <link rel="alternate" type="text/html" href="http://mdlab.jp/project/node_js/02.html" />
    <id>tag:mdlab.jp,2011:/project//2.31</id>

    <published>2011-11-22T03:33:08Z</published>
    <updated>2012-02-01T01:40:57Z</updated>

    <summary>先日、東京Node学園祭というイベントが開かれていました。
東京Node学園祭とは、Node.js日本ユーザグループ、Node.jsの作者、Socket.IOの作者を招聘し開催した、初のカンファレンスです。
こちらの東京Node学園祭のページを見ていたらマルチデバイスLab.のティザーサイトと同じ表現実装でした。マウスの位置を共有する方法はNode.jsのパフォーマンスとしては分かりやすいのかもしれませんね。</summary>
    <author>
        <name>mdlab</name>
        
    </author>
    
        <category term="Node.js" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="nodejs" label="Node.js" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ティザーサイト" label="ティザーサイト" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="リアルタイムweb" label="リアルタイムweb" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://mdlab.jp/project/">
        <![CDATA[<div class="taC"><img src="/project/node_js/images/node_js_03.jpg" class="fullImg" alt="第二回 ティザーサイトの実装裏側！-環境編" /></div>
<p></p>
<p>先日、<a href="http://nodefest.jp/2011/" target="_blank">東京Node学園祭</a>というイベントが開かれていました。</p>

<p>東京Node学園祭とは、Node.js日本ユーザグループ、Node.jsの作者、Socket.IOの作者を招聘し開催した、初のカンファレンスです。<br />
こちらの東京Node学園祭のページを見ていたら<a href="/project/node_js/01.html">マルチデバイスLab.のティザーサイトと同じ表現実装</a>でした。マウスの位置を共有する方法はNode.jsのパフォーマンスとしては分かりやすいのかもしれませんね。<br />
<span class="fcAtt">※現在は東京Node学園祭のNode.jsの演出は見ることが出来ないようです。</span></p>

<p>さて今回から、ティザーサイトで実装したNode.jsについて説明します。<br />
それぞれのインストール方法は公式サイトをご覧いただくとして、第二回目は何を利用してどのような環境を構築したのか？を、ご紹介します。</p>

<div class="topicBox">
<p>ティザーサイトのCSSやJavascriptに関しては<a href="http://mdlab.jp/project/teaser/01.html" target="_blank">ティザーのコラムで連載</a></p>
</div>

<hr />

<h2>環境設定</h2>

<p>インストールはそんなに難しくありません。<br />
今回はCentOS 5.5で実装をしたので、CentOS 5.5ベースで話を進めます。<br />
<span class="fcNote">※今回の実装したバージョンで説明しているため、インストール前には最新のバージョンが無いか確認してください。</span></p>

<h3>Node.jsをインストール</h3>
<p>各バージョンは以下の通りです。</p>

<dl>
    <dt>-OS</dt>
        <dd>CentOS 5.5</dd>

    <dt>-node.js</dt>
        <dd>node-v0.4.9.tar</dd>

    <dt>-npm(Node Package Manager)</dt>
        <dd><span class="fcAtt">※ご利用のnpmのバージョンによってはtarをバージョンアップする必要があります。</span></dd>

    <dt>-Socket.IO</dt>
        <dd>Socket.IO v0.7 </dd>

    <dt>参考URL</dt>
        <dd><a href="http://centossrv.com/centos5.shtml" target="_blank">CentOS5インストール - CentOSで自宅サーバー構築</a></dd>
        <dd><a href="http://d.hatena.ne.jp/replication/20110225/1298612129" target="_blank">これからnode.jsを始める人のためのインストール系エントリまとめ - 大人になったら肺呼吸</a></dd>
        <dd><a href="http://socket.io/#how-to-use" target="_blank">Socket.IO: the cross-browser WebSocket for realtime apps.</a></dd>
        <dd><a href="http://blog.summerwind.jp/archives/1437" target="_blank">node.jsで遊ぶ: モジュール管理編 - SummerWind</a></dd>
        <dd><a href="http://socket.io/#how-to-use" target="_blank">Socket.IO: the cross-browser WebSocket for realtime apps.</a></dd>
</dl>

<p><span class="fcNote">※Node.jsは現在安定版0.6.2がリリース済み。<br />※Windowsバイナリも提供されています。</span></p>

<hr />

<h3>Node.jsのバージョン管理</h3>

<p>Node.jsは活発に開発が進められており頻繁にバージョンアップしています。
ティザーサイトは短期間ということもありNode.js v0.4.9のみを直接コンパイルして利用しましたが、
継続的にNode.jsを利用したサービスを提供する場合にはNode.jsのバージョンアップ作業も考慮してインストールしたほうがいいでしょう。</p>

<p>バージョンアップのたびにソースコードのダウンロード・コンパイルを実施するのは煩雑ですが、何より<span class="fb">バージョンアップしたことで下位互換性がなくなりこれまでのプログラムが動かなくなることがあります。</span>
そんなときのために、バージョン管理ツールを使って複数バージョンのNode.jsを１つの環境にインストールしましょう。</p>

<p>ここでは有名な２つのツールを紹介いたします。<br />
お好きな方を使用していただければ大丈夫かと思いますが、それぞれの特徴は以下のようになります。</p>

<dl>
    <dt><a href="https://github.com/isaacs/nave" target="_blank">-nave</a></dt>
        <dd>npmと作者が同じ</dd>

    <dt><a href="https://github.com/creationix/nvm" target="_blank">-nvm</a></dt>
        <dd>インストールが楽</dd>
        <dd>zshを使用している場合、躓くポイントがいくつかある</dd>
        <dd>最近はこちらを使用している人が多い</dd>
        <dd>こちらを先にインストールすると、Node.jsの管理がとても楽になる。</dd>
</dl>


<hr />


<h3>パッケージの管理</h3>

<p>Node.jsのバージョンアップだけでなく、ブラウザのバージョンアップによって利用しているパッケージ<br />
（Node.jsの機能を拡張するプログラム。Socket.IOなど）が正常に作動しなくなることもあります。<br />
<span class="fb">実際にこのティザーを公開してから一ヶ月後、Chromeのバージョンアップにより当初利用していた<br />
Socket.IOのバージョンでは正常に動作しなくなりました。</span></p>

<p>もしかすると、Node.jsよりもパッケージの方がNode.js本体のバージョンアップやブラウザの実装状況など<br />
様々な要因により利用できなくなる恐れがあり、管理が煩雑ではないのか？とお思いかもしれません。<br />
しかし、幸いなことにNode.jsのバージョン管理ツールと同様に、パッケージ管理を行うツールがあります。</p>

<p><a href="http://npmjs.org/" target="_blank">npm(Node Package Manager)</a>はNode.jsのパッケージ管理システムの一つです。<br />
こちらは先程ご紹介したnaveと同じ作者の方が作成されています。</p>

<p>これらをインストールして、まずはNode.js開発の基盤を作っていきましょう！</p>


<hr />


<h2>次回の内容</h2>

<p>次回はNode.jsを利用した場合のベーシック認証、HTMLファイルや画像を返却するといったページ表示までの実装について説明していきます。</p>

<hr />

<h2>Node.jsシリーズ</h2>

<ul>
<li><a href="/project/node_js/01.html">第一回 Node.jsでどんなことができる？</a></li>
<li>第二回 ティザーサイトの実装裏側！-環境編</li>
<li><a href="/project/node_js/03.html">第三回 ティザーサイトの実装裏側！-実装編</a></li>
</ul>



<hr />

<h3 class="taC">マルチデバイスLab.の研究内容について、ご意見、ご質問などありましたら、<br />「マルチデバイスLab.」までお気軽にお問い合わせください。</h3>
<p class="taC">
<span class="fcNote">※株式会社アイ･エム・ジェイのお問い合わせフォームに移動します。</span><br />
<a href="https://www.imjp.co.jp/cgi-bin/f09_inq_service.html?utm_source=mdlab&utm_medium=web&utm_campaign=mdlab-contact" onclick="javascript:_gaq.push(['_trackEvent', 'contact', 'service']);" target="_blank" class="btnTxtL">サービスに関するお問い合わせ</a>
</p>
]]>
        

    </content>
</entry>

</feed>

