Warning: array_keys() expects parameter 1 to be array, object given in /export/sd09/www/jp/r/e/gmoserver/8/7/sd0135687/torokeru.tv/mameblog/wordpress-2.8.2-ja-undernavicontrol/wp-content/plugins/script-compressor/script-compressor.php on line 348

Warning: max(): When only one parameter is given, it must be an array in /export/sd09/www/jp/r/e/gmoserver/8/7/sd0135687/torokeru.tv/mameblog/wordpress-2.8.2-ja-undernavicontrol/wp-content/plugins/script-compressor/script-compressor.php on line 348
2011 5月 | まめも

Monthly Archives: 5月 2011

CyberX勉強会 #1に行ってきた

昨日
スマートフォン版のソーシャルアプリができるまで HTML5 + JavaScript
という、SmartPhone対応に関しての勉強会があるというので、行ってきました。

それに関してのメモです。
ラブホ街に一人で突っ込みかけたので、時間ギリギリでした。。


スマートフォン版のソーシャルアプリができるまで HTML5 + JavaScript
■発表者
 株式会社Cyber X CTO 白井 英さん

■SmartPhoneへの展開
 ・各Platform(mixi,モバゲ,GREE)の開設が始まっている
 ・今まではFeaturePhoneが圧倒的台数だったが、今後はSmartPhoneが主流になるはず
 ・FeaturePhoneで使用していたアプリのデータを引き継げるのを
  各PlatFormが推奨している
 ・FeaturePhone,SmartPhone共に同じアプリ上でコミュニケーションがとれる

■コーデマニアの例(サムザップ事例)
・Feature Phone版を最初に出した
・SmartPhoneに対応
 →FeaturePhoneとユーザデータは共有
・開発方針
 →FeaturePhoneを元にSmartPhone用のソースを一から記述
 →別々のソース管理(ほぼ力技)
・大変なのでは
 →やってみたら使い回せる所が多い
 →FeaturePhoneのイベント開始とほぼ同時にSmartPhone版も開始
同じイベント同時に楽しめる
・運用してわかった事
 →SmartPhoneユーザーは20代の女性が多い

■星空バータウンの例(CyberX事例)
・FeaturePhoneは対応している
・SmartPhoneに対応
 →ユーザーデータは共有
・開発方針
 →FeaturePhoneとSmartPhoneでソースを共通化
 →必要な部分だけ書き換え、使い分けを極小化して効率化を目指す
→FeaturePhoneの機能をうまく流用
→FlashLiteの部分は演出が多いのでぱらぱらアニメーションへ自動変換
→HTML5 + CSS3 + javaScript使用
・SmartPhoneでの問題。Flashに関して
 →FlashLiteで作成した部分の置き換え
 →Flashを画像に変換するツールを作成した。
→SWFをフレーム毎に画像キャプチャしてコマ送りで作成(プログラムで自動化)
→既存のFlashLiteの資産をそのまま流用できた
・ぱらぱらアニメーションってアニメgifでいいのでは
→レスポンスが端末依存。iPhoneだと遅かった
→javascriptで画像をjavascriptで切り替え表示
 →canvasでごりごり
・SmartPhoneでの問題。UIに関して
 →アイテムのインタラクティブな配置処理はjavaScriptで実装
  →ドラッグアンドドロップとかスワイプとかは重要だと思う
・javascriptのライブラリ
 →JQueryを使用

■その他
 ・FeaturePhone,SmartPhoneで共有できなかった部分は?
  →PHPフレームワーク使用。MVC準拠
  →モデルはそのまま使用。ビューはFeaturePhone,SmartPhoneで書き換え
  →コントローラーも流用したかったが、現実的には無理だった
   →必要なとこだけオーバーライドして書き換える
   →2〜3割書き換えれば済むと思っていたが見積もりが甘かった
   →主に画面遷移が変わるものは書き換えないといけなかった
 ・素材の使い回しに関して
  →SmartPhoneだと荒いのがばれてしまうので、画像アイコンなどは
   サイズを4倍にして書き出しなおした
 ・開発期間
  →現在3ヶ月目。製作中。


SmartPhoneでのアジャイル開発
■発表者
 株式会社CA Beat 小田 雄帆さん
■アジャイルとは
 「俊敏な」とか言う意味
■特徴
 ・プロセスツールよりもコミュニケーションを重視する
 ・既存の開発手法をマスターし尽くした達人向け
 ・ドキュメントよりも動作するソフトウェアを重視する
  →ドキュメントが残らないため責任の所在が不明確


ぱらぱらアニメーションってスプライトアニメーションの事かと。まんま聞いた内容をメモったのでぱらぱらアニメーションって書いてます。
ベタ移植程度なら時間はさほどかからないでしょうが、SmartPhoneならではのUIにどこまでこだわるかが開発期間に直結するって事ですかね。
ある意味予想通りでもあり、甘く見てると地獄を見そうでもあり、、

その後懇親会にも参加し、色んな方に興味深い話を聞かさせて頂きました。
アジャイルを試しに広めて行きたいなぁと思うこの頃。
テストは大事だよ!

Capistranoを設定してみた

いちいちsshでサーバー繋いで、git pullするのもめんどくさくなってきた事と
Capistranoのオプションが気になったので設定してみた。

参考
Capistranoでアプリケーションのデプロイ作業を効率化

git使用です。

# SCM(Software Configuration Management)はgit使用
set :scm, :git

後、他にも色々オプションがあるみたい
Deploying with Capistrano
特に気になったのがこれ

set :deploy_via, :remote_cache

説明読んでみると

In most cases you want to use this option, otherwise each deploy will do a full repository clone every time
(ほとんどのケースであなたはこのオプションを使用する。そうしないと、毎回のデプロイでフルリポジトリクローンをします)

Remote caching will keep a local git repo on the server you’re deploying to and simply run a fetch
from that rather than an entire clone.
(リモートキャッシングはサーバーでローカルgitレポジトリを保って、全てのクローンよりもむしろそれから取得してきます)

This is probably the best option as it will only fetch the changes since the last.
(最後から変化を取得するだけで、これは多分ベストオプションでしょう)

デプロイ時に毎回全クローンされるのはこれを指定しないからっぽい

というわけで、このオプションをつけた時にコマンドがどう変わるのかが気になったので調べてみた。


・オプションつけない時

executing "
  git clone -q git@github.com:mamehiko/app.git /home/user/app/app/releases/20110510080527 &&
  cd /home/user/app/app/releases/20110510080527 &&
  git checkout -q -b deploy xxxhashxxx &&
  (echo xxxhashxxx > /home/user/app/app/releases/20110510080527/REVISION)"

executing "
rm -f /home/user/app/app/current &&
ln -s /home/user/app/app/releases/20110510080527 /home/user/app/app/current"

cloneをreleaseに直で作成しcurrentのシンボリックリンク変えてるだけ
常に全取得をしているので時間がかかる!


・オプションつけた時

executing "
if [ -d /home/user/app/app/shared/cached-copy ]; then
  cd /home/user/app/app/shared/cached-copy &&
  git fetch -q origin &&
  git reset -q --hard xxxhashxxx &&
  git clean -q -d -x -f; 
else
  git clone -q git@github.com:mamehiko/app.git /home/user/app/app/shared/cached-copy && 
  cd /home/user/app/app/shared/cached-copy &&
  git checkout -q -b deploy xxxhashxxx;

executing "
cp -RPp /home/user/app/app/shared/cached-copy /home/user/app/app/releases/20110510081544 &&
(echo xxxhashxxx > /home/user/app/app/releases/20110510081544/REVISION)"

executing "
rm -f /home/user/app/app/current &&
ln -s /home/user/app/app/releases/20110510080527 /home/user/app/app/current"

一回目

shared/cached-copyディレクトリがないのでshared/cached-copyにcloneを作成し、cached-copyをreleaseにコピーしcurrentのシンボリックリンク変更

二回目以降

shared/cached-copyディレクトリが作成されているので、それに対し更新をかける。
その後cached-copyをreleaseにコピーしcurrentのシンボリックリンク変更

なるほどなるほど。sharedのcached-copyに常に最新がコピーされるので差分だけで済む訳かー
まさしくベストオプション!

ヘッダのmetaとかをちょっと知る

ヘッダの所に色々ある謎の文字列達
一般的に使うであろうメタなどのお勉強。

参考
HTML5タグリファレンス



<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="keyword" content="HTML5,練習">
<meta name="description" content="HTML5のテスト">
<link rel="stylesheet" href="default.css">
<script src="default.js"></script>
<link rel="shortcut icon" href="/favicon.ico">
</head>
<body>
内容
</body>
<html>

噛み砕いて行く
Read more »