<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0UERnk-fSp7ImA9WhRUF0k.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584</id><updated>2012-01-28T18:00:07.755+09:00</updated><category term="Flex3" /><category term="Geo" /><category term="WebService" /><category term="CSS" /><category term="AIR" /><category term="ActionScript" /><category term="AdobeAir" /><category term="XML" /><category term="lisp" /><category term="refresh" /><category term="Java" /><category term="J2SE6" /><category term="PicTack" /><category term="#sora_usagi" /><category term="iPhone" /><category term="backlog" /><category term="EclipsePlugin" /><category term="SlimTimer" /><category term="au" /><category term="AdobeAir Flex" /><category term="HTML" /><category term="JWSJavaアプリケーションキャッシュビューア" /><category term="Flex" /><category term="Exif" /><category term="AIR GEAR" /><category term="iOS" /><category term="メール" /><title>guess what?</title><subtitle type="html">iOSのこととか いろいろ。</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://aqubiblog.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>295</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/xlqaM" /><feedburner:info uri="blogspot/xlqam" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0UERnY9eSp7ImA9WhRUF0k.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-4474547620376189821</id><published>2012-01-28T17:17:00.001+09:00</published><updated>2012-01-28T18:00:07.861+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-28T18:00:07.861+09:00</app:edited><title>CROSSのイベントで思ったこと</title><content type="html">先日、&lt;a href="http://tech.nifty.co.jp/party/2012/index.htm"&gt;CROSS&lt;/a&gt;のイベントにいってきました。&lt;br /&gt;
いろんな人が集まっての混在イベントで楽しかったです。&lt;br /&gt;
スポンサーのサントリーさんがトン単位のプリミアムモルツ提供が素晴らしかったですっ&lt;br /&gt;
&lt;br /&gt;
私は、フロントエンドCROSSを聞いた後、スマートフォンCROSSに途中参加してきました。&lt;br /&gt;
はじめのフロントエンドCROSS(UX/デザイン)を聞いて思ったこと。&lt;br /&gt;
&lt;br /&gt;
このCROSSでは、デザイン/UXの立場の方4人が実際やられている方法や、経験談、思っていること などを喋っていく形式でした。&lt;br /&gt;
私なりの要点をまとめると&lt;br /&gt;
- 実際のユーザの不満を手や足を使ってしっかり調査すること&lt;br /&gt;
- デザインはかなり検討時間を割いておこなっている&lt;br /&gt;
- びっくり要素を入れると差別化しやすい&lt;br /&gt;
- WEB/スマートフォンなど画面にとどまらないインターフェースが身近に作れるようになっていること&lt;br /&gt;
&lt;br /&gt;
たしかにーって思うことも多くて楽しくききました。&lt;br /&gt;
こういう話って聞く方も楽しく聞けていいですね。&lt;br /&gt;
&lt;br /&gt;
そんな中思ったのは、なんだかベルトコンベア式だなーと。&lt;br /&gt;
デザイン室でデザインして、画面詳細まで落としてプログラマに作成させる って感じ。&lt;br /&gt;
話の中にはプログラマも一緒に仕様を詰めた方がいいよ とか、UXを考えるプログラマはあんまりいないから考えたほうがいいよ みたいな話もでてきたり。&lt;br /&gt;
&lt;br /&gt;
セッションで、&lt;a href="http://dailynewsagency.com/2011/08/05/the_war_between_developers_designers_project_managers/"&gt;開発者、デザイナー、プロジェクトマネージャーがお互いをどう思っているかがよくわかる1枚の画像&lt;br /&gt;
&lt;img src="http://dnaimg.com/2011/08/04/the_war_between_developers_designers_project_managers/01.jpg"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
が出てきたのですが、この中のちょうどデザイナー/プロジェクトマネージャーからみるデベロッパーの図なんだろうな..と。&lt;br /&gt;
&lt;br /&gt;
私はプログラマなので、どうしてもその目線でムッとしたりも正直するw&lt;br /&gt;
...と同時に本当にプログラマーってそうなんだろうか？と考えてしまった。&lt;br /&gt;
プログラマーだって人間だし一般ユーザと一緒。綺麗なお花をみたらきれいだなーって思う。&lt;br /&gt;
プログラマーだって、かっこよいデザインは好きだし、使っていて気持ちいい！ と思えるアプリの方が好き 。&lt;br /&gt;
私個人はデザインを作ってもらえてると、実装にもテンションあがりますw&lt;br /&gt;
それじゃ、プログラマだけで作ったアプリはどうしてカッコ悪いのか？&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;よいデザインが作れない&lt;/b&gt;&lt;br /&gt;
確かにそれはあるけど、それだけじゃない。&lt;br /&gt;
それだったら、画面のレイアウト/構成が適当なものが出てくる理由にもならない。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;何をやっていて達成感/満足感を感じるか？&lt;/b&gt;&lt;br /&gt;
ってところなんじゃないかなーと思います。&lt;br /&gt;
&lt;br /&gt;
スマートフォンCROSSの会話の一部。&lt;br /&gt;
「デザイナーと組んでやらないのか？」という問いに対して、&lt;br /&gt;
「個人で作っているアプリは趣味。プラモデルを作っていて色を塗るのが得意じゃないからプロに頼んでお金を払う人はそうそういないだろう。それと一緒」&lt;br /&gt;
&lt;br /&gt;
これ、解。&lt;br /&gt;
&lt;br /&gt;
デザインは気にしないのか？ というのではない。&lt;br /&gt;
ただ、そこに時間を割くほどのテンションは上がらないというだけ。&lt;br /&gt;
&lt;br /&gt;
そんなプログラマーは、よくプロジェクトの一番最後で&lt;br /&gt;
「こんなアプリだれが使うんだよw」とか「使い勝手悪いわー」とか「こうしたほうがもっといいのにな」とか感じながらも、仕様書通りに納期に間に合うような作業工になりがち。&lt;br /&gt;
&lt;br /&gt;
デザイナ+プログラマが入って作ったアプリとプログラマだけで作ったアプリを見ると、お店の料理と家庭料理を思い出す。&lt;br /&gt;
パプリカやハーブ、ソースで綺麗に着飾った料理はたしかに素敵！ と思うけど、家庭料理でそんなんは作らない。お腹が満たされておいしいと思えば基本OKだから。&lt;br /&gt;
いざ、お店の料理を作ってみよう！ とすると、下ごしらえ大変だし、頑張ってやっても想像通りのものできないし。&lt;br /&gt;
...プログラマ的発想ですかね？&lt;br /&gt;
&lt;br /&gt;
じゃぁ最初からみんな一緒に作業を進めたらいいのか？ といったらそれも違う。&lt;br /&gt;
それができたらよいんだろうけど、そんなに人件費割けないだろうし、だれかが率先しないとモノゴトはなかなか決まらない。&lt;br /&gt;
グループで仕事するのって、結婚するようなもの。&lt;br /&gt;
今まで違った環境で育ってきた人同士が一緒に暮らしたら、常識も違うしボキャブリーも違う...しすんなりうまくいくハズがない。&lt;br /&gt;
だから、トップダウンやベルトコンベア式のような家庭内別居(疎結合)の方がうまくいくから、そういう形になるんだろう。&lt;br /&gt;
&lt;br /&gt;
1つの解は、セッションで出てきた &lt;a href="http://www.bookslope.jp/blog/2006/07/post_50.html"&gt;UXのハニカム構造&lt;/a&gt;なのかもしれない。&lt;br /&gt;
&lt;blockquote&gt;Useful&lt;br /&gt;
役に立つこと&lt;br /&gt;
Usable&lt;br /&gt;
使いやすいこと&lt;br /&gt;
Desirable&lt;br /&gt;
望ましいこと&lt;br /&gt;
Findable&lt;br /&gt;
探しやすいこと&lt;br /&gt;
Accessible&lt;br /&gt;
アクセスしやすいこと&lt;br /&gt;
Credible&lt;br /&gt;
信頼できること&lt;br /&gt;
Valuable&lt;br /&gt;
価値があること&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
このハニカム構造はよくできている。&lt;br /&gt;
デザイナ、プログラマ....ユーザと、立場が違っていても理解が出来る。&lt;br /&gt;
どれが抜けても駄目だと思える。&lt;br /&gt;
そして哀しいかな、あまり注意していなかった所があったりしてハッとしたりもする。&lt;br /&gt;
&lt;br /&gt;
私は、ピカソの絵が素敵！ とは思えない。ファッションショーに出てくる衣装が素敵！ とも思えない。&lt;br /&gt;
統一感がない、機能的じゃない と普通に思う。&lt;br /&gt;
だけど、UXのハニカム構造の観点のフィルターを通したら理解できたりするのかもしれない(上記2つはやっぱわからないけどw)&lt;br /&gt;
相手が理解出来る発言が出来るかもしれない。理解出来る質問ができるかもしれない。&lt;br /&gt;
&lt;br /&gt;
多分大事なのは、UXのハニカム構造のこのGOALは他人の責任だから任せておけばいい(=考えない) とならないようにすることなのかな。&lt;br /&gt;
&lt;br /&gt;
正直、デザイナーさんがいたら、「使いやすい」デザイン作ってくれるはず と任せてしまう所は私にはある。&lt;br /&gt;
逆に、デザイナーさんも、「信頼できる」システムを作ってくれるはず と任せる所があったりするのではないか。&lt;br /&gt;
それは"リスペクト"でもなんでもなくて、自分のテンションが上がらない所は任せる っていうだけ。&lt;br /&gt;
テンションが上がる所を中心にやると効率も良いはずだから、それもまた良し だと思うんだけど、&lt;br /&gt;
無責任になってしまわない程度を見計らう必要はあるし、すべての人がその責任を感じる体制を作る努力はいるよね。&lt;br /&gt;
その体制は、ベルトコンベア式ではないよなー多分。&lt;br /&gt;
&lt;br /&gt;
結論？ &lt;br /&gt;
そんなものはいらないのですw&lt;br /&gt;
そう思ったんなら何かチャレンジして...失敗して...と何か行動を起こすのみです。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-4474547620376189821?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZkdX-0hwxH3P1zeLL2o8CFApL9c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZkdX-0hwxH3P1zeLL2o8CFApL9c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZkdX-0hwxH3P1zeLL2o8CFApL9c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZkdX-0hwxH3P1zeLL2o8CFApL9c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/iuGCaKaLUuE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/4474547620376189821/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=4474547620376189821" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4474547620376189821?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4474547620376189821?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/iuGCaKaLUuE/cross.html" title="CROSSのイベントで思ったこと" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2012/01/cross.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIASXk_eyp7ImA9WhRUEkg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-2522311993907441058</id><published>2012-01-23T01:40:00.002+09:00</published><updated>2012-01-23T01:42:28.743+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-23T01:42:28.743+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PicTack" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>PicTack:デザイナーさんとの共同作業の巻</title><content type="html">iPhoneアプリはいくつか作成していましたが、今回のPicTackでは始めてデザイナーさんとの共同作業 という挑戦をしました。&lt;br /&gt;
&lt;br /&gt;
PLACES inc. は、私も含め3人在籍していて、分担としては以下。&lt;br /&gt;
- プログラムを行う人 (私)&lt;br /&gt;
- 画面UIデザインを行う人&lt;br /&gt;
- 回答サンプルや音を作成する人&lt;br /&gt;
&lt;br /&gt;
私以外の2人はデザイナーさんなので、プログラムは書いたことがない ましてや XCodeを触るのは始めて という状態。&lt;br /&gt;
ただし、Subversionは使ったことがある という感じです。&lt;br /&gt;
&lt;br /&gt;
【チャレンジ内容】&lt;br /&gt;
- みんながXCodeで実行できて、自分の端末で実行できること。&lt;br /&gt;
- 自分がやる作業はXCode上で自分で組み込みが出来ること。&lt;br /&gt;
&lt;hr&gt;&lt;h2&gt;画面デザイン&lt;/h2&gt;画面デザインを行なってもらうためにまずやったことは、&lt;b&gt;InterfaceBuilder&lt;/b&gt;で画面UIをつくること。&lt;br /&gt;
(個人で作成しているアプリではInterfaceBuilderを使わず、コードですべて作成していました。)&lt;br /&gt;
今回は、InterfaceBuilderをつかって、まずは大枠の部分をデザイン無しで私が作成。&lt;br /&gt;
出来あがったXIBファイルを直接触ってもらう方向にしました。&lt;br /&gt;
&lt;br /&gt;
基本、問題なく触ってもらえました。&lt;br /&gt;
問題点としては、InterfaceBuilderでできないことはコード上で実装しないといけない点。&lt;br /&gt;
もともと想定していた所.... 参加ユーザ数に応じて結果画面の表示を切り替えるとか...については、個別のXIBを用意して組み込みしていたので大丈夫でしたが、ちょっとしたところがInterfaceBuilderで出来ないのが惜しい感じ。&lt;br /&gt;
&lt;br /&gt;
例えば、&lt;br /&gt;
&lt;ol&gt;&lt;li&gt; ラベルの文字列を国際化できない (もう一つXIB作るのは嫌だー)&lt;br /&gt;
InterfaceBuilder上でも、NSLocalizedString使わせて欲しい。&lt;/li&gt;
&lt;li&gt;右5度に傾ける とかができない&lt;/li&gt;
&lt;li&gt;内部状態により表示/非表示の切替ができない&lt;br /&gt;
ピクタクの場合は、シングルプレイはキャンセルボタンを表示するが、マルチプレイの時には表示しない ということをしたかった。&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
InterfaceBuilderでできないことは、Controllerのコード上にUIViewをマッピングさせて操作する感じになるので、&lt;br /&gt;
どんどんControllerが汚く...&lt;br /&gt;
ココらへんは、できるだけ、Controllerが大きくならないようにコードをわけたりする技が必要になってきますね。&lt;br /&gt;
&lt;hr&gt;&lt;h2&gt;コンテンツ(回答サンプル)の登録&lt;/h2&gt;お題カテゴリのメタ情報用のplistを1つ作成。&lt;br /&gt;
お題のメタ情報用のplistをカテゴリ毎に作成。&lt;br /&gt;
画像ファイルとのマッピングは、メタ情報内のタイトル属性と同じ名前で登録 という名前のルールを決めて行いました。&lt;br /&gt;
&lt;br /&gt;
これで、直接 plist を触って、画像を組み込んでもらいました。&lt;br /&gt;
plistはXCode上に編集用のUIがあるので、こちらも問題なくやってもらえた。&lt;br /&gt;
&lt;br /&gt;
画像が多いのでコンパイルに時間がかかってしまうという問題はありますが....&lt;br /&gt;
&lt;hr&gt;&lt;h3&gt;まとめ&lt;/h3&gt;できるだけ、デザインと実装コードを分けたかったんだけど、どんどん処理コード(Controller)にUIViewの参照を付け加えていくはめになってちょっと、嫌な感じ。&lt;br /&gt;
でも、InterfaceBuilderを使わなかった時と比べて、さすがにControllerはスッキリとしたコードになるので、あー、XIBのデザインはアリだなーとも思った。&lt;br /&gt;
オススメは、InterfaceBuilderを使わずコードで実装して仕組みを理解してから、InterfaceBuilderを使うこと！&lt;br /&gt;
よくわからずInterfaceBuilderを使っていると、なぜ動かないのか？ ということが判断できなくなって、嫌になっちゃうのでw&lt;br /&gt;
&lt;br /&gt;
デザイナさんの感想を聞いてみたら、「カーテンを閉めて画面遷移する... とか、そういう動きも絡んだ所を触りたい！」とのこと。わかる。動いたら楽しいもんねー！ &lt;br /&gt;
[UIView animateWithDuration]でアニメーション書くのは簡単なので、ぜひデザイナさんにも触ってもらって楽しんでもらいたい。&lt;br /&gt;
そういう部分を触りやすいように部品化して、触りやすくするのは、プログラマの役目かなーと。&lt;br /&gt;
そういうデザイナーとプログラマーの隙間を埋めていく試みも今後チャレンジしてみたい。&lt;br /&gt;
&lt;br /&gt;
ちなみに、審査結果待ちの時に時間がかかった場合、カーテンの後ろから、ちらっと ペンのキャラが見え隠れするようなコードを密かに入れまして....&lt;br /&gt;
発見された時には、興奮していただけた模様。みなさんは、みることは出来たかな?!?!&lt;br /&gt;
&lt;br /&gt;
最近、iPhoneを触っていて気持ちがいいUIと感じるのは、静的なデザインだけでなく、動的なデザイン が多い気がする。&lt;br /&gt;
もっと 気持ちがいい！ 触りたい！と思えるようなアプリを今後、作っていきたいです。&lt;br /&gt;
&lt;br /&gt;
次回は、Bluetoothで接続して通信 した所のお話を書いてみますー！&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img border="0" height="320" width="146" src="http://1.bp.blogspot.com/-ewyPLbgrRwU/TxbV6z9FmXI/AAAAAAAAAv4/Gw1IKZqYKME/s320/iPhone_ja.png" /&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:18pt"&gt;PicTack&lt;/span&gt;&lt;br /&gt;
価格 : 無料 (一部のお題は有料)&lt;br /&gt;
カテゴリ : ゲーム&lt;br /&gt;
対応機種 :  iPhone&lt;br /&gt;
対応OS :  iOS4.1以上&lt;br /&gt;
サポートページ  :  &lt;a href="http://pictack.places-inc.com/"&gt;http://pictack.places-inc.com/&lt;/a&gt;&lt;br /&gt;
リリース日 : ver1.0 2012/01/16&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://itunes.apple.com/jp/app/pictack/id484417416?ls=1&amp;mt=8"&gt;&lt;br /&gt;
&lt;img border="0" height="69" width="200" src="http://4.bp.blogspot.com/-dv2Gr097IEU/TxbWRhXtG7I/AAAAAAAAAwE/xK6yRHhTAQI/s320/appstore.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-2522311993907441058?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LI65jEMc_8T3xECYhjigzXDLGNM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LI65jEMc_8T3xECYhjigzXDLGNM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LI65jEMc_8T3xECYhjigzXDLGNM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LI65jEMc_8T3xECYhjigzXDLGNM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/XG_9wj2hnwY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/2522311993907441058/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=2522311993907441058" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2522311993907441058?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2522311993907441058?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/XG_9wj2hnwY/pictack_23.html" title="PicTack:デザイナーさんとの共同作業の巻" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-ewyPLbgrRwU/TxbV6z9FmXI/AAAAAAAAAv4/Gw1IKZqYKME/s72-c/iPhone_ja.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2012/01/pictack_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQNR3c-fSp7ImA9WhRUEkg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-9108467129494272528</id><published>2012-01-19T15:00:00.030+09:00</published><updated>2012-01-23T01:39:56.955+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-23T01:39:56.955+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="PicTack" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>祝!! PicTackリリース</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://pictack.places-inc.com/jp" imageanchor="1" style=""&gt;&lt;img border="0" height="157" width="320" src="http://4.bp.blogspot.com/-u03yd-ijkIM/Txa2sL2LxeI/AAAAAAAAAvs/FLmZEPoaKfw/s320/logo.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
PLACES inc. として始めて作成したiPhoneアプリ &lt;a href="http://pictack.places-inc.com/jp/"&gt;PicTack(ぴくたく)&lt;/a&gt; をリリースしました！&lt;br /&gt;
&lt;br /&gt;
PicTack は、みんなでお絵かき対戦が出来るゲームアプリです。&lt;br /&gt;
絵が上手い人とヘタな人...両方いるほうがなぜか盛り上がるゲームになっています。&lt;br /&gt;
対戦は5人まででき、一人でも遊べます。&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/z13rcsBPRXo" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
何を隠そう、私は絵が下手。&lt;br /&gt;
PLACES inc. のお二人はデザイナーさんで絵がうまい。&lt;br /&gt;
その中に混じってアプリの動作チェックを兼ねてゲームをしていると、いつもオチの役目で悲しい思いをしておりました。&lt;br /&gt;
晴れてリリースできたので、私より下手な人と一緒にやりたいですww (@ikikko please!)&lt;br /&gt;
&lt;br /&gt;
...それはさておき...&lt;br /&gt;
&lt;br /&gt;
PicTackは、デザイン会社のPLACESらしく、とってもかわいい、ほのぼのとしたUIになっています。&lt;br /&gt;
最初のアプリで、ゲームを選んだのは、PLACESらしさ が出てよかった。&lt;br /&gt;
&lt;br /&gt;
さて、今回このアプリでは、私個人として以下の挑戦がありました。&lt;br /&gt;
&lt;br /&gt;
1. デザイナーさんと共同作業すること&lt;br /&gt;
2. Bluetoothで接続して通信をすること (最大5人まで接続できる仕様にすること)&lt;br /&gt;
3. アプリ内課金をすること&lt;br /&gt;
4. 1ヶ月でアプリを完成すること&lt;br /&gt;
&lt;br /&gt;
Bluetooth部分は罠があったり。アプリ内課金の所でリジェクトされたり..と色々ありました。&lt;br /&gt;
これらの挑戦内容については、また このブログで書いていきます。&lt;br /&gt;
&lt;br /&gt;
最後に、レビューに付き合っていただいた皆様有難うございました！&lt;br /&gt;
レビュー内容はまだ反映されていないのですが、今後の改善内容として使わせて頂く予定です。&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img border="0" height="320" width="146" src="http://1.bp.blogspot.com/-ewyPLbgrRwU/TxbV6z9FmXI/AAAAAAAAAv4/Gw1IKZqYKME/s320/iPhone_ja.png" /&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:18pt"&gt;PicTack&lt;/span&gt;&lt;br /&gt;
価格 : 無料 (一部のお題は有料)&lt;br /&gt;
カテゴリ : ゲーム&lt;br /&gt;
対応機種 :  iPhone&lt;br /&gt;
対応OS :  iOS4.1以上&lt;br /&gt;
サポートページ  :  &lt;a href="http://pictack.places-inc.com/"&gt;http://pictack.places-inc.com/&lt;/a&gt;&lt;br /&gt;
リリース日 : ver1.0 2012/01/16&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://itunes.apple.com/jp/app/pictack/id484417416?ls=1&amp;mt=8"&gt;&lt;br /&gt;
&lt;img border="0" height="69" width="200" src="http://4.bp.blogspot.com/-dv2Gr097IEU/TxbWRhXtG7I/AAAAAAAAAwE/xK6yRHhTAQI/s320/appstore.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-9108467129494272528?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZvO4LEGTn85EnXNQ_Y0kF7ur_8k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZvO4LEGTn85EnXNQ_Y0kF7ur_8k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZvO4LEGTn85EnXNQ_Y0kF7ur_8k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZvO4LEGTn85EnXNQ_Y0kF7ur_8k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/WndWciZo0g4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/9108467129494272528/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=9108467129494272528" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/9108467129494272528?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/9108467129494272528?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/WndWciZo0g4/pictack.html" title="祝!! PicTackリリース" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-u03yd-ijkIM/Txa2sL2LxeI/AAAAAAAAAvs/FLmZEPoaKfw/s72-c/logo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2012/01/pictack.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UNR344eip7ImA9WhRVGEg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-7800128577488665501</id><published>2012-01-18T13:01:00.000+09:00</published><updated>2012-01-18T13:01:36.032+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-18T13:01:36.032+09:00</app:edited><title>Withings使い始めた</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.withings.jp/" imageanchor="1" style=""&gt;&lt;img border="0" height="140" width="320" src="http://4.bp.blogspot.com/-uO9t-w_nhT4/TxY-P19MQ2I/AAAAAAAAAvU/E0Ogwo-Ibro/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%2B2012-01-18%2B12.36.06.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
測定した体重/体脂肪を自動でサーバーにデータ保存してくれる体重計 &lt;a href="http://www.withings.jp/"&gt;Withings&lt;/a&gt;を購入しました。&lt;br /&gt;
購入きっかけは、AppleStoreの初売りで対象になっていたからw&lt;br /&gt;
&lt;br /&gt;
4日間ほど使っていますが、とっても楽。&lt;br /&gt;
私は目が悪いので、立って体重計にのると数値が見えないので、いつも座って数字をみていましたが、&lt;br /&gt;
数字をみなくてもOKなのも嬉しい (私だけ？)&lt;br /&gt;
&lt;br /&gt;
この体重計は &lt;a href="http://www.withings.jp/ja/api/wbsapiv2"&gt;API&lt;/a&gt;が用意されているのが素敵。&lt;br /&gt;
だけど見てみるとちょっと気になる点が。&lt;br /&gt;
&lt;br /&gt;
https じゃない！&lt;br /&gt;
&lt;br /&gt;
よくよく見ると、WEB上で体重のグラフを見るページも http だし。&lt;br /&gt;
私的には、住所とかemailアドレスのような個人情報よりも見られたくない内容なのにな....w&lt;br /&gt;
&lt;br /&gt;
認証部分は、v2 から OAuthになっている模様。&lt;br /&gt;
v1の useridとpublickeyでの認証だったら使ってなかっただろうな。まだよかった。&lt;br /&gt;
遊び道具がまた1つ増えましたー。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-7800128577488665501?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yKvaIHcWPcVTmo-JiXnPfK2Jkcs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yKvaIHcWPcVTmo-JiXnPfK2Jkcs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yKvaIHcWPcVTmo-JiXnPfK2Jkcs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yKvaIHcWPcVTmo-JiXnPfK2Jkcs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/dx1mlZrRaLM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/7800128577488665501/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=7800128577488665501" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/7800128577488665501?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/7800128577488665501?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/dx1mlZrRaLM/withings.html" title="Withings使い始めた" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-uO9t-w_nhT4/TxY-P19MQ2I/AAAAAAAAAvU/E0Ogwo-Ibro/s72-c/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%2B2012-01-18%2B12.36.06.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2012/01/withings.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cFSH08eSp7ImA9WhRWFkQ.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-3672060806165514287</id><published>2012-01-05T00:29:00.001+09:00</published><updated>2012-01-05T00:30:19.371+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-05T00:30:19.371+09:00</app:edited><title>[しょーもない話]鶏肉が安かった</title><content type="html">鶏肉が100gあたり178円の細かく切ったものと、ブロック98円 のものが売っていた。&lt;br /&gt;
思わずブロックを買った。&lt;br /&gt;
&lt;br /&gt;
ブロックは、小さいサイズのものがなく、593gが一番小さいものを購入。&lt;br /&gt;
普段1食あたり、約250gぐらいを使用すると考えると&lt;br /&gt;
&lt;br /&gt;
細かく切ったもの 178円×250/100g=445円&lt;br /&gt;
ブロック 98円×593/100g=581円&lt;br /&gt;
&lt;br /&gt;
178円のものを593g買ったら1,055円なので、474円お得した感じ。&lt;br /&gt;
&lt;br /&gt;
...が、果たしてどれだけお買い得なんだろうか。&lt;br /&gt;
&lt;br /&gt;
ブロックは多すぎるので、次回に回すため冷凍保存。味は落ちるので、なんとなく5割引になると考えて、&lt;br /&gt;
98円×(593/2)/100g×0.5=290円 損したと考えてみる &lt;br /&gt;
お肉を切る作業、包丁/まな板を洗う時間 を 2分。時給が1600円と換算して80円の人件費損。&lt;br /&gt;
290円+80円=370円。&lt;br /&gt;
&lt;br /&gt;
474円 - 370円 = 104円。&lt;br /&gt;
&lt;br /&gt;
そうか、お得感は104円ぐらいか。思ったより嬉しくないという結論。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-3672060806165514287?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XAizl6D8LAXqhvv6NSVhno5wBxs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XAizl6D8LAXqhvv6NSVhno5wBxs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XAizl6D8LAXqhvv6NSVhno5wBxs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XAizl6D8LAXqhvv6NSVhno5wBxs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/3Zz5zqTB4l0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/3672060806165514287/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=3672060806165514287" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/3672060806165514287?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/3672060806165514287?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/3Zz5zqTB4l0/blog-post_05.html" title="[しょーもない話]鶏肉が安かった" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2012/01/blog-post_05.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cBRX44eSp7ImA9WhRWFkk.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-2804465445882045198</id><published>2012-01-04T10:30:00.001+09:00</published><updated>2012-01-04T10:37:34.031+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-04T10:37:34.031+09:00</app:edited><title>振り返りと今年の抱負</title><content type="html">年が明けました。今年もよろしくお願いします！&lt;br /&gt;
&lt;br /&gt;
昨年は、大震災、ジョブスの死去などいろんな事がありましたが、私個人としては"作業場所が自宅になった"というのは思った以上に大きな出来事だった。&lt;br /&gt;
&lt;br /&gt;
健康管理は自分の役目なので、意識するのは当然の事ですが、いままでそれにあまり注意を払っていなかった自分にびっくりしたり。&lt;br /&gt;
仕事でノッてくるとずっとやりたい と思うタイプなので、ずーっとズルズルしてしまう。&lt;br /&gt;
今まで自宅で行なっていた個人の開発も、明確な区切りができないので少なくなってしまった傾向も。&lt;br /&gt;
しかし、逆に見ると、自分にあった生活スタイルを確立しやすい状況なのは確か。&lt;br /&gt;
短時間睡眠だって4時間半睡眠だって試しやすいし、効率のよいタイミングで仕事に集中したりもできる。&lt;br /&gt;
&lt;br /&gt;
複数人が一緒に仕事している時には、"待ち"というのが発生するタイミングがある。&lt;br /&gt;
ある人が作業が終わらなければ、先に進めない or 先に進んでも後戻りがある可能性がある というもの。&lt;br /&gt;
仕事時間が決められている時にはゆるゆると作業をすすめたりしていたが、仕事時間に融通がある場合には、よいタイミングで集中して仕事にとりかかれば効率もよくなるはず。&lt;br /&gt;
自宅作業は半年弱ぐらい経験したが、今までの仕事スタイルが抜けきらず、あまり効率がよくなかったと感じている。&lt;br /&gt;
&lt;br /&gt;
そんな生活でもう一つ変わったのは日々のお金の減り方。&lt;br /&gt;
お昼ごはんを渋谷などで食べていた時は1,000円は毎日消費していたが、自宅で食べると100円ぐらいで済む。&lt;br /&gt;
差分を、Cafeでのお金に割り当てるほうが私としてはとても満足感がある。&lt;br /&gt;
&lt;br /&gt;
そんな思いを胸に、今年の目標は&lt;br /&gt;
効率のよい生活スタイルを目指したい。仕事も、健康も、私生活も。&lt;br /&gt;
&lt;br /&gt;
早速、Appleの初売りでは、WiFi体重計を購入w&lt;br /&gt;
その他のライフログはどうやって記録していこうか悩み中。&lt;br /&gt;
理想とする基本生活リズムを登録して、それに合わせたアラートを出してくれたり、実際との差分をみることができる なにかいい方法はないかな。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-2804465445882045198?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TykNzoaQrhhexsfweHRcW4xpUR8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TykNzoaQrhhexsfweHRcW4xpUR8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TykNzoaQrhhexsfweHRcW4xpUR8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TykNzoaQrhhexsfweHRcW4xpUR8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/IFFFh9svhQc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/2804465445882045198/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=2804465445882045198" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2804465445882045198?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2804465445882045198?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/IFFFh9svhQc/blog-post.html" title="振り返りと今年の抱負" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2012/01/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYMSHY9eyp7ImA9WhRXE0w.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-6553786329657916254</id><published>2011-12-20T01:40:00.001+09:00</published><updated>2011-12-20T01:46:29.863+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-20T01:46:29.863+09:00</app:edited><title>CoCafeの作り方(Googleプレイス編)</title><content type="html">&lt;a href="http://aqubiblog.blogspot.com/2011/12/cocafe_17.html"&gt;先日のエントリ&lt;/a&gt;で、マップのUIについて書いた、CoCafeの作り方。&lt;br /&gt;
今回はGoogleプレイス編です。&lt;br /&gt;
&lt;br /&gt;
CoCafeでは、位置情報から近くのカフェ情報を取得して表示しています。&lt;br /&gt;
カフェの情報は、&lt;a href="http://code.google.com/intl/en/apis/maps/documentation/places/"&gt;Google Places API&lt;/a&gt;を使って取得しています。&lt;br /&gt;
&lt;br /&gt;
Google Places API は、1,000 リクエスト/日 の利用制限がありますが、&lt;br /&gt;
クレジットカードの登録により個人情報の登録をすれば、 100,000 リクエスト/日 を利用できます。&lt;br /&gt;
(クレジットカードの登録はするけど、請求は0円)&lt;br /&gt;
あと、行う必要があるのが powered by Google のロゴの表示 。&lt;br /&gt;
マップ上に表示するには、Googleマップの上で行わないといけない ようです。&lt;br /&gt;
&lt;br /&gt;
お店の検索条件として以下のものが使える。&lt;br /&gt;
location (required):緯度・経度&lt;br /&gt;
radius (required):検索の範囲(m)&lt;br /&gt;
keyword (optional) :キーワード&lt;br /&gt;
name (optional):お店の名前&lt;br /&gt;
types (optional) :&lt;a href="http://code.google.com/intl/en/apis/maps/documentation/places/supported_types.html"&gt;ここにある&lt;/a&gt;タイプ。 | 区切りで複数指定可能。&lt;br /&gt;
&lt;br /&gt;
なんとなくいけそうだな ってことで使用し始めたのですが......一回浮気しようとしたタイミングがありました。&lt;br /&gt;
理由は ... お店の情報が綺麗にカテゴリ分けされていない ため。&lt;br /&gt;
&lt;br /&gt;
Googleプレイスでは、&lt;a href="http://code.google.com/intl/en/apis/maps/documentation/places/supported_types.html"&gt;いろんなタイプ&lt;/a&gt;でタグ付けされているのですが、cafe のタイプで検索しても、近くのスタバとかベローチェのお店が表示されない...&lt;br /&gt;
そのお店は登録されているのですが、設定されているタイプをみると establishment のタイプのみ。&lt;br /&gt;
いっぱいタイプがありすぎるのもどーかなーとも思うのですが、establishment だけってのも..なぁ...&lt;br /&gt;
とはいえ、establishment を入れるとほとんどの建物がひっかかちゃって、実用的にならない。&lt;br /&gt;
&lt;br /&gt;
じゃぁ、カフェ とか スターバックス、ベローチェ、ルノアール... って有名どころの名前を一気にnameで条件指定して検索かけたらどうだろう？と試したのですが....&lt;br /&gt;
最初の方に指定されたキーワードのものが優先されてしまい、後のほうに指定したものは、引っかからなくなる。&lt;br /&gt;
Google検索と同じ感じで、はじめに指定されたキーワードの方が重要だ と認識される感じ。&lt;br /&gt;
&lt;br /&gt;
1回の検索で返ってくるお店の数の上限が決まっていて、rate(評価)の高いお店から多分優先的に返すようなんですが、指定している範囲を超えて情報が返ってくるので、より 引っかからない度合いが顕著に...。&lt;br /&gt;
&lt;br /&gt;
これを解決するには、取得したいお店名 ごとに1回のリクエストを投げて情報を取得するしかないのか... と一時期実装していたのですが、10数回一気にリクエストを投げることになり、API制限も気になってしまう結果になり断念。&lt;br /&gt;
&lt;br /&gt;
そこで、&lt;a href="http://tabelog.com/help/api/"&gt;食べログAPI&lt;/a&gt; はどうだろう？ と問い合わせしてみました。&lt;br /&gt;
有料アプリになるかどうかはまだ判断しきれていないタイミングだったので、&lt;br /&gt;
&gt; 個人で作成しているアプリだけど、200円程度の有料アプリになる可能性もあるがあるが、つかえるか？&lt;br /&gt;
という内容の問い合わせをしたところ&lt;br /&gt;
&gt; 商用利用はお控え下さい&lt;br /&gt;
の返答が。&lt;br /&gt;
サイトをみると "法人の方は別途お手続きが必要" とあるのですが...返答メールの内容には、別途お手続きをしてください... 云々的な文言は一切なかったので個人だと対応もできないのかな。残念。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://api.gnavi.co.jp/api/manual.htm"&gt;ぐるなびAPI&lt;/a&gt;はどうだろう？ と見てみたのですが、&lt;br /&gt;
XMLのレスポンス...か...&lt;br /&gt;
でも！いい情報がとれるなら...と見てみたのですが、カフェ情報となるとやっぱり少なかった。&lt;br /&gt;
居酒屋とか食事メインの情報サイトですものねー。そうだよなー。 と断念。&lt;br /&gt;
&lt;br /&gt;
# 結局、お店の登録内容や数が一番いいのは foursquare なんじゃないかとも思ったりもしますね...&lt;br /&gt;
# 試してないのですが、cafe ってカテゴリだけで近くを検索とかできるのかしら...&lt;br /&gt;
# OAuthで認証していないアカウントの場合の制限はどれくらいになるのかしら... &lt;br /&gt;
&lt;br /&gt;
...で、Googleプレイス に戻って来ましたw&lt;br /&gt;
&lt;br /&gt;
CoCafeでは、name(お店の名前)での検索をできるようにしているのですが、&lt;br /&gt;
お店の一部分を指定しても引っかからなかったり、英語表記のお店が引っかからない...と思ったら、カタカナにしたら引っかかったり...とちょっとイマイチ感。&lt;br /&gt;
Googleプレイスにお店の登録はあるのに、探しきれないという場面が多々あります。&lt;br /&gt;
&lt;br /&gt;
Google Places API を改めてみると、&lt;a href="http://code.google.com/intl/en/apis/maps/documentation/places/#PlaceReports"&gt;Place Report&lt;/a&gt;というのがある。&lt;br /&gt;
&lt;blockquote&gt;Places that have been added by your application can also be deleted, until they have been moderated. Once moderated and added into the full Place Search results, a Place can no longer be deleted. Places that are not accepted by the moderation process will continue to be visible to the application that submitted them.&lt;br /&gt;
&lt;/blockquote&gt;と。&lt;br /&gt;
ちょうど近くにオープンした サンマルクカフェ が登録されていなかったようなので、登録してみた。&lt;br /&gt;
...が、自分だけが見れる登録情報の状態？で GoogleプレイスのURLも発行されない。&lt;br /&gt;
暫く日をマタイだ後.... Googleプレイスにサンマルクカフェが正式に入ってきた! ....が、自分が登録したサンマルクカフェも表示されて2重表示状態に!!! むぎゅー。自分が登録した方は自分で削除しましたよ otz&lt;br /&gt;
&lt;br /&gt;
CoCafeとしては、Googleプレイスのデータベースをよりよいものにする情報を提供したい所ではありますが、今の状態だと、為す術がないですね...無念。&lt;br /&gt;
&lt;br /&gt;
Googleプレイスの愚痴が多くなってしまっていますが... &lt;br /&gt;
お店がオープンした/閉店した というのも (タイムラグはありますが)反映されるし、&lt;br /&gt;
GoogleプレイスのWEBURLをみると、写真情報や評価/口コミも見れるし。&lt;br /&gt;
Googleマップで検索したお店の情報はGoogleプレイスの情報だと思うので、お店側も最新情報を載せよう！と思ってくれるだろうし。インフラとしてはとても最高。&lt;br /&gt;
&lt;br /&gt;
正確な情報を、早いタイミングで更新するのはとっても無理だとは思うので、使用ユーザの手をうまーーく借りることができると良いんですけどもねー。&lt;br /&gt;
foursquareのお店情報って充実してるなー って思うのは、使用ユーザの手を借りているからなんだろうと思うので。&lt;br /&gt;
&lt;br /&gt;
そうすると、2重登録は発生するし、&lt;br /&gt;
ユーザがお店を見つけられずに "閉店" としてしまって、訴えられることもあるでしょうが...&lt;br /&gt;
Googleさんなら出来るよ。がんばって！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-6553786329657916254?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lDJfcmEaCbMgPIQ_Nz3au7SDKJU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lDJfcmEaCbMgPIQ_Nz3au7SDKJU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lDJfcmEaCbMgPIQ_Nz3au7SDKJU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lDJfcmEaCbMgPIQ_Nz3au7SDKJU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/KMphQGAaNCs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/6553786329657916254/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=6553786329657916254" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/6553786329657916254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/6553786329657916254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/KMphQGAaNCs/cocafegoogle.html" title="CoCafeの作り方(Googleプレイス編)" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/12/cocafegoogle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4AR3k7fCp7ImA9WhRXEEg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-5601590973543100261</id><published>2011-12-17T01:44:00.001+09:00</published><updated>2011-12-17T01:45:46.704+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-17T01:45:46.704+09:00</app:edited><title>CoCafeの作り方</title><content type="html">先日リリースした&lt;a href="http://aqubiblog.blogspot.com/2011/12/cocafe.html"&gt;CoCafe&lt;/a&gt;ですが、苦労したこと? を参考までにまとめてみようかと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;マップでのピン表示&lt;/h2&gt;CoCafeではMapを MKMapView を使って表示しています。&lt;br /&gt;
特徴的な所は、Mapに表示するピン。&lt;br /&gt;
ピンはデフォルトで3種類ぐらいの色を指定出来るピンが用意されているのですが、CoCafeでは有名所のカフェは色がそれなりに合うアイコンを用意してピンとして使用しています。&lt;br /&gt;
&lt;br /&gt;
ピンは MKAnnotationView を拡張して自作しています。&lt;br /&gt;
MKAnnotationViewのimageプロパテイで、UIImageを設定するとピンの画像を変えることができます。&lt;br /&gt;
&lt;br /&gt;
マップ上のピンは、端末の向きが変わると、画像の中心を回転の中心として画像の向きが変わります。&lt;br /&gt;
そのため、画像は、ピンの先が中心になるように画像を用意します。&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-oI39R6kpy3A/TutRW0M3j4I/AAAAAAAAApk/g_1JShm_824/s1600/pin_starbucks.png" imageanchor="1" style=""&gt;&lt;img border="0" height="120" width="60" src="http://4.bp.blogspot.com/-oI39R6kpy3A/TutRW0M3j4I/AAAAAAAAApk/g_1JShm_824/s320/pin_starbucks.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
アイコンは画像で用意します。画像はRitenaディスプレイ用に2倍の大きさで用意。&lt;br /&gt;
&lt;br /&gt;
ピンをクリックした時に表示する 吹き出し部分 も自作したかったのですが、&lt;br /&gt;
簡単に変える方法は見つからず、ゴリゴリ書かないといけないっぽい感じ。&lt;br /&gt;
途中まで書いていたのですが、そこまで手間をかけることでもないよなーーー..ということで、CoCafeでは左側にアイコン載せるだけのカスタマイズをしました。&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ptaWwr-UNI8/TutTR4o_CkI/AAAAAAAAApw/YdQ1SpTpDtM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%2B2011-12-16%2B23.18.16.png" imageanchor="1" style=""&gt;&lt;img border="0" height="119" width="220" src="http://4.bp.blogspot.com/-ptaWwr-UNI8/TutTR4o_CkI/AAAAAAAAApw/YdQ1SpTpDtM/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%2B2011-12-16%2B23.18.16.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
左側のアイコンは、MKMapView の leftCalloutAccessoryView プロパティで 自作のUIViewを設定 &lt;br /&gt;
右側のボタンは  MKMapview の rightCalloutAccessoryView プロパテイで UIButtonTypeDetailDisclosure のボタンを設定&lt;br /&gt;
しています。&lt;br /&gt;
&lt;br /&gt;
UIViewで指定位置に配置できるので、全然無理がないカスタマイズw&lt;br /&gt;
ゴリゴリ系を諦めた理由の１つにMapViewがバージョンアップとともにインターフェースが変わる予感がした.. というのもあります。(勝手な想像です)&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;現在位置に移動&lt;/h2&gt;iPhone標準アプリのマップにある、現在位置を表示←→コンパス機能っていいですよね。&lt;br /&gt;
方向音痴の私としてはとても大切な機能。これがiOS5で使えるようになっていたので早速つかってみました。&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jRZnghGC1II/TutX5qHvxcI/AAAAAAAAAp8/Wb2eO0xfJ2M/s1600/%25E5%2586%2599%25E7%259C%259F%2B1.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="213" src="http://3.bp.blogspot.com/-jRZnghGC1II/TutX5qHvxcI/AAAAAAAAAp8/Wb2eO0xfJ2M/s320/%25E5%2586%2599%25E7%259C%259F%2B1.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
作成方法は&lt;br /&gt;
MKMapView *mapView;&lt;br /&gt;
MKUserTrackingBarButtonItem *trakingItem = [[MKUserTrackingBarButtonItem alloc] initWithMapView:mapView] ; &lt;br /&gt;
とボタン作成時にMapViewを紐付けるだけ。&lt;br /&gt;
とっても簡単。&lt;br /&gt;
&lt;br /&gt;
...だけど、画面を切り替えた時に、コンパスモード→現在位置を表示 に戻したいのに戻す方法が分からない。&lt;br /&gt;
これ、結局方法分からず。ご存知の方いらっしゃったら教えて下さい...&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;ペロっと途中までめくれるページ&lt;/h2&gt;iPhone標準アプリのマップにある、マップの種類(航空写真とか)を切り替えるページ。&lt;br /&gt;
ぺろっとちょっとめくれて良い感じですよね。&lt;br /&gt;
これをCoCafeにも！と思って入れています。CoCafeでは表示するカテゴリの切り替えができるようになっています。&lt;br /&gt;
&lt;br /&gt;
このエフェクトは pageCurl というものになるのですが、途中で止める方法がはじめ分からず。&lt;br /&gt;
途中で止めないならば、&lt;br /&gt;
[UIView setAnimationTransition: UIViewAnimationTransitionCurlDown forView:self cache:YES];&lt;br /&gt;
とかが使えるっぽいけど...&lt;br /&gt;
&lt;br /&gt;
&lt;pre name="code" class="c"&gt;CATransition *transition = [CATransition animation];
    [transition setType:@"pageCurl"];
    transition.duration = 0.35;
    transition.endProgress = 0.8;
    transition.removedOnCompletion = NO;
    transition.fillMode = kCAFillModeForwards;
    [self.view.layer addAnimation:transition forKey:@"curlup"];
&lt;/pre&gt;でできるのは分かったのですが、リジェクトされるかもよ? という記事もあり。&lt;br /&gt;
たしかに、typeで指定できる定数として&lt;br /&gt;
kCATransitionFade&lt;br /&gt;
kCATransitionMoveIn&lt;br /&gt;
kCATransitionPush&lt;br /&gt;
kCATransitionReveal&lt;br /&gt;
があるっぽいけど、pageCurl がない。たしかに使っちゃダメそうな...&lt;br /&gt;
解決できず。このままリリースしちゃった。とおちゃった。ごめんなさい...ごめんなさい...＞＜&lt;br /&gt;
&lt;br /&gt;
なんか、UIばっかりの話になっちゃった。&lt;br /&gt;
次回はGoogleプレイスAPIについてちょっと書こうかな。&lt;br /&gt;
でわでわ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-5601590973543100261?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3RvlevRfr67j6rNvzl5P_5Vt1n8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3RvlevRfr67j6rNvzl5P_5Vt1n8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3RvlevRfr67j6rNvzl5P_5Vt1n8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3RvlevRfr67j6rNvzl5P_5Vt1n8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/xrfAIyEUxxI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/5601590973543100261/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=5601590973543100261" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/5601590973543100261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/5601590973543100261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/xrfAIyEUxxI/cocafe_17.html" title="CoCafeの作り方" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-oI39R6kpy3A/TutRW0M3j4I/AAAAAAAAApk/g_1JShm_824/s72-c/pin_starbucks.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/12/cocafe_17.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IEQX4_fSp7ImA9WhRQFEQ.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-6317253257855868607</id><published>2011-12-10T15:45:00.004+09:00</published><updated>2011-12-10T15:45:00.045+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-10T15:45:00.045+09:00</app:edited><title>CoCafe リリースしました！</title><content type="html">&lt;img border="0" height="114" width="114" src="http://2.bp.blogspot.com/-PmaIjjdkT80/TuL5XAItAyI/AAAAAAAAApM/olp6F3HPs3Q/s320/cocafe.png" /&gt;&lt;img border="0" height="320" width="214" src="http://1.bp.blogspot.com/-Vz1jfdvCdDM/TuL-c10dAYI/AAAAAAAAApY/nPPwlvmCa6s/s320/Screenshot%2B2011.11.27%2B03.51.42.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
CoCafeが正式リリースしました！&lt;br /&gt;
サイト &lt;a href="http://cocafe.sorausagi.org/"&gt;http://cocafe.sorausagi.org/&lt;/a&gt;&lt;br /&gt;
AppStore &lt;a href="http://itunes.apple.com/jp/app/cocafe/id483713206"&gt;http://itunes.apple.com/jp/app/cocafe/id483713206&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
CoCafeは、カフェの電源/WiFi/分煙などの情報をみんなで共有するiPhoneアプリです。&lt;br /&gt;
地図上にはGoogleプレイスのお店情報が表示されるので、大手チェーン以外のCafeでも表示されます。&lt;br /&gt;
お気に入りのカフェをぜひ見つけてくださいー。&lt;br /&gt;
&lt;br /&gt;
ひとつの特徴としては、WiFiの設定がとても細かい事ですw&lt;br /&gt;
モバイルWiFi (WiMax, EMOBILE, Xi...) WiFi(mobilepoint, FON, Wi2...)など個別に電波強度を設定できます。&lt;br /&gt;
すっごく日本限定ですけども、モバイルWiFiを持ち歩く人には嬉しいはずっ&lt;br /&gt;
&lt;br /&gt;
iPhoneアプリはCrossBacklogに続く第2弾目。&lt;br /&gt;
今年の目標の１つだったので、ギリクリア!&lt;br /&gt;
&lt;br /&gt;
AppEngineのサーバー側を作ってくれた @shin1ogawa&lt;br /&gt;
アイコンを作ってくれた @horiuni&lt;br /&gt;
にも感謝！&lt;br /&gt;
&lt;br /&gt;
現時点ではまだAppStoreの検索には引っかかってくれなくて残念ですが...&lt;br /&gt;
あと、アクセス数が伸びたらどんだけGoogleから請求がくるのかもとても心配だったりも...ww&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-6317253257855868607?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ztEfU4nZWkTLk1-9gYvXgx7PKg8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ztEfU4nZWkTLk1-9gYvXgx7PKg8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ztEfU4nZWkTLk1-9gYvXgx7PKg8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ztEfU4nZWkTLk1-9gYvXgx7PKg8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/XJBTvaY9ifM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/6317253257855868607/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=6317253257855868607" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/6317253257855868607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/6317253257855868607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/XJBTvaY9ifM/cocafe.html" title="CoCafe リリースしました！" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-PmaIjjdkT80/TuL5XAItAyI/AAAAAAAAApM/olp6F3HPs3Q/s72-c/cocafe.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/12/cocafe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQMRno-fip7ImA9WhRSEEQ.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-4419098412760062695</id><published>2011-11-12T19:00:00.002+09:00</published><updated>2011-11-12T19:06:27.456+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-12T19:06:27.456+09:00</app:edited><title>WordPressのカスタム投稿タイプとパーマリンク</title><content type="html">WordPressはブログシステムですが、いろんな拡張ができる。&lt;br /&gt;
拡張の1つが、カスタムフィールド と呼ばれるもので、投稿記事に独自の属性を追加できるもの。&lt;br /&gt;
さらに、WordPress3.0からは カスタム投稿タイプ/カスタムタグソノミー というものが独自に追加できるようになっています。&lt;br /&gt;
WordPressは、[投稿]と[固定ページ]の2つのページの種類がありますが、それを増やすことが出来るのが カスタム投稿タイプ。&lt;br /&gt;
それらのページに [Category]という分類を設定できるのですが、[Category]以外の分類を増やす事が出来るのがカスタムタグソノミー。&lt;br /&gt;
カスタム投稿タイプ/カスタムタグソノミー を使うと、ブログシステムの枠を超えて、簡単なシステムを作る事ができるようになります。&lt;br /&gt;
記事を投稿する画面や、分類毎にページを作成するphpの振り分けはwordpressに任せてあとは自作という感じに。&lt;br /&gt;
&lt;br /&gt;
ここ、3ヶ月ほどWordPressを使ってみて、カスタム投稿タイプ/カスタムタグソノミー も使ってみたりしていたのですが、よくハマったのがパーマリンク。&lt;br /&gt;
WEBページでのパーマリンクはREST風にちゃんと設定したくなるので...&lt;br /&gt;
WordPressでは、デフォルトの記事のリンクは&lt;br /&gt;
&lt;br /&gt;
http://localhost?post_type={投稿タイプ}&amp;p={投稿のID}&lt;br /&gt;
&lt;br /&gt;
のような感じになっています。これを&lt;br /&gt;
&lt;br /&gt;
http://localhost/sample/test&lt;br /&gt;
&lt;br /&gt;
のようなリンクにするために、URLのRewrite をガシガシ行なって表示します。&lt;br /&gt;
WordPressではこのRewriteルールを自動的に設定or管理画面より設定できるようになっています。&lt;br /&gt;
&lt;br /&gt;
たとえば、以下のような設定がWordpressから設定されます。&lt;br /&gt;
category/(.+?)/page/?([0-9]{1,})/?$' =&gt; string 'index.php?category_name=$matches[1]&amp;paged=$matches[2]&lt;br /&gt;
&lt;br /&gt;
WordPressのデフォルトのRewriteルールの設定は、管理画面のパーマリンクの設定を更新した時に行われると思うので、なんかリンク系を変更した時 とか データを他のサーバーに移行した時 などでは とりあえず更新しておくのが無難。&lt;br /&gt;
&lt;br /&gt;
まぁ、それでも、うまく動かなくなったり、独自のルールにしたくなったり するのでお相手する必要があるのですけども。&lt;br /&gt;
&lt;br /&gt;
ハマったことを中心に。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;カスタムタグソノミーもパーマリンクの一部にしたい&lt;/h3&gt;デフォルトの投稿タイプ(post)では、カテゴリをパーマリンクの一部にできます。&lt;br /&gt;
だが、カスタム投稿タイプのときは...一番いい方法かどうかは不明ですが...以下でできます。&lt;br /&gt;
&lt;br /&gt;
register_post_type で、&lt;br /&gt;
'rewrite' =&gt; array( 'slug' =&gt; CUSTOM_POST_TYPE.'/%'.CUSTOM_TAXONOMY.'%', 'hierarchical' =&gt; false ),&lt;br /&gt;
と指定しておいて、&lt;br /&gt;
&lt;pre name="code" type="java"&gt;add_filter('post_link', 'rating_permalink', 10, 3);
add_filter('post_type_link', 'rating_permalink', 10, 3);

function rating_permalink($permalink, $post_id, $leavename) {
    if (strpos($permalink, '%'.CUSTOM_TAXONOMY.'%') === FALSE) return $permalink;

    $post = get_post($post_id);
    if (!$post) return $permalink;
    if ($post-&gt;post_type != CUSTOM_POST_TYPE) return $permalink;

    $terms = wp_get_object_terms($post-&gt;ID, CUSTOM_TAXONOMY);
    if (!is_wp_error($terms) &amp;&amp; !empty($terms) &amp;&amp; is_object($terms[0])) $taxonomy_slug = $terms[0]-&gt;slug;
    else $taxonomy_slug = 'not-rated';

    return str_replace('%'.CUSTOM_TAXONOMY.'%', $taxonomy_slug, $permalink);
}
&lt;/pre&gt;無理やり埋め込んであげている感じですねw&lt;br /&gt;
ただし、上記の方法だと、投稿IDをキーにパーマリンクを取得(get_permalink)する時にうまく反応してくれないことがあるので注意。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;カスタム投稿タイプのパーマリンクの設定&lt;/h3&gt;&lt;br /&gt;
カスタム投稿タイプの場合、register_post_type という関数を使って登録した後、&lt;br /&gt;
flush_rewrite_rules();&lt;br /&gt;
を行うと、Rewriteルールを追加してくれます。逆にこれを実行しないと追加されない。&lt;br /&gt;
&lt;br /&gt;
まぁココまではいいのですが、複数のカスタム投稿タイプをつくった場合、登録した後にすぐに上記を複数回実行すると、環境によっては反映が不十分で、パーマリンク設定が未設定のものができてしまう現象に遭遇。&lt;br /&gt;
カスタム投稿タイプの登録(register_post_type)は、add_action('init', ***)のアクションフックで処理し、&lt;br /&gt;
flush_rewrite_rules は initの後に実行される add_action('wp_loaded', ***)で1回実行することにより解決しました。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;あるはずのリンクが404になる&lt;/h3&gt;http://localhost?post_type={投稿タイプ}&amp;p={投稿のID}&lt;br /&gt;
のような形式ならみれるけど、&lt;br /&gt;
http://localhost/sample/test&lt;br /&gt;
のような形式だと404になるのであれば、RewriteRuleがうまく設定されていない問題。&lt;br /&gt;
&lt;br /&gt;
あるある。めっちゃよくある。&lt;br /&gt;
&lt;br /&gt;
こういう時は繰り返しになるけど、&lt;br /&gt;
&lt;br /&gt;
- 管理画面のパーマリンクを更新してみる&lt;br /&gt;
- カスタム投稿タイプの時には flush_rewrite_rules が実行されているかみる&lt;br /&gt;
-  global $wp_rewrite を var_dump してルールの中身を確認してみる&lt;br /&gt;
&lt;br /&gt;
な感じでさぐれば解決できるはず。たぶん。&lt;br /&gt;
&lt;br /&gt;
http://localhost/****/****/page/2 のようなURLで2ページ目が表示されないという場合は&lt;br /&gt;
他のマッチパターンに引っかかってしまってダメな時もあります。&lt;br /&gt;
**** の部分が自由に設定できるような時は、page という名前の投稿名なのか pageの設定なのかが判断つかないよーな感じ。&lt;br /&gt;
&lt;a href="http://codex.wordpress.org/Using_Permalinks"&gt;WordPress.org Using Permalinks&lt;/a&gt;を見ると、&lt;br /&gt;
http://www.example.com/page/2/&lt;br /&gt;
http://www.example.name/category/categoryname/page/2/&lt;br /&gt;
http://www.example/year/month/day/page/2/&lt;br /&gt;
http://www.example/year/month/page/2/&lt;br /&gt;
の例が書かれてますね。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;パーマリンクを変えたい&lt;/h3&gt;よくあるのが、カテゴリページのURLの category というのを削除したいというパターン&lt;br /&gt;
http://localhost/cateogry/fruit&lt;br /&gt;
↓&lt;br /&gt;
http://localhost/fruit&lt;br /&gt;
Top Level Categories ってプラグインを使うと消すことができます。&lt;br /&gt;
&lt;br /&gt;
もっと自由に設定したいんだ！ というときには Rewriteルールを書いちゃう手も。&lt;br /&gt;
add_filter( 'rewrite_rules_array','my_insert_rewrite_rules' );&lt;br /&gt;
function my_insert_rewrite_rules($rules) {&lt;br /&gt;
$newrules = array();&lt;br /&gt;
$newrules['fruit/?$'] = 'index.php?category_name=fruit';&lt;br /&gt;
return $newrules + $rules;&lt;br /&gt;
}&lt;br /&gt;
とか。&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;&lt;br /&gt;
パーマリンクの形式は事前に検討して、&lt;br /&gt;
全体的に整合性がとれるか？ (=自分で正規表現でマッチパターンがかけるか？)&lt;br /&gt;
をしておくのは大事。&lt;br /&gt;
これができていれば、最悪なんとか頑張ればできるはず...と思う。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-4419098412760062695?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_768yZVDEgEQIBv7Ug6vNEA3EOA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_768yZVDEgEQIBv7Ug6vNEA3EOA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_768yZVDEgEQIBv7Ug6vNEA3EOA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_768yZVDEgEQIBv7Ug6vNEA3EOA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/6fDEWpwZefE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/4419098412760062695/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=4419098412760062695" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4419098412760062695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4419098412760062695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/6fDEWpwZefE/wordpress.html" title="WordPressのカスタム投稿タイプとパーマリンク" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/11/wordpress.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBRHg6fSp7ImA9WhRTGU4.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-2850079246297804779</id><published>2011-11-10T22:45:00.001+09:00</published><updated>2011-11-10T22:54:15.615+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-10T22:54:15.615+09:00</app:edited><title>仕事環境を変えてみた</title><content type="html">iPad , Apple Cinema Displayが導入され、&lt;br /&gt;
以前の環境&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img src="http://3.bp.blogspot.com/-vrAH1_T1Bbw/TW0yLsmp5VI/AAAAAAAAAeo/Sw8f_ZDQYFI/s320/photo.JPG" /&gt;&lt;br /&gt;
&lt;/div&gt;が手狭になり、拡張いたしました。&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bGRu35Pm1YI/TrvIjIzkANI/AAAAAAAAAoY/Fv6MS8FHcsQ/s1600/photo.JPG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="240" src="http://2.bp.blogspot.com/-bGRu35Pm1YI/TrvIjIzkANI/AAAAAAAAAoY/Fv6MS8FHcsQ/s320/photo.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
なかなか快適な感じに。&lt;br /&gt;
&lt;br /&gt;
MacBookAir 11chのThunderboltから、PLANEX Mini Displayport -&gt;DVI端子 をつかってCinemaDisplayに無事に接続できました。&lt;br /&gt;
iPadには、degital AV Adapter を購入して、HDMI経由でTVに出力もしてみた。&lt;br /&gt;
&lt;br /&gt;
ホワイトボードのアプリを表示してみた図&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4KXptnHiI64/TrvOv3Swg2I/AAAAAAAAAow/zLg9T3D0w4A/s1600/photo%2B%25282%2529.JPG" imageanchor="1" style=""&gt;&lt;img border="0" height="240" width="320" src="http://1.bp.blogspot.com/-4KXptnHiI64/TrvOv3Swg2I/AAAAAAAAAow/zLg9T3D0w4A/s320/photo%2B%25282%2529.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;縦横比が違うので、左右が黒くなっております。&lt;br /&gt;
横で見たいときにはiPadを横にしないといけない。&lt;br /&gt;
&lt;br /&gt;
YouTubeの動画をテレビに出力してみた図&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-kyphKR92sNY/TrvNCljnE2I/AAAAAAAAAok/Pp_xgWCbMSw/s1600/photo%2B%25281%2529.JPG" imageanchor="1" style=""&gt;&lt;img border="0" height="240" width="320" src="http://3.bp.blogspot.com/-kyphKR92sNY/TrvNCljnE2I/AAAAAAAAAok/Pp_xgWCbMSw/s320/photo%2B%25281%2529.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
画面全体にわたって表示された。なかなか綺麗。&lt;br /&gt;
Potcast(ビデオ)を再生しても画面全体を使ってくれる。&lt;br /&gt;
iPadは縦にしていても大丈夫。&lt;br /&gt;
TVに繋いでいるスピーカー経由で音を聞くので、音も良し。&lt;br /&gt;
&lt;br /&gt;
Huluをアプリから見てみると... 通常のアプリと同じ感じで、単純なミラーリングっぽい。&lt;br /&gt;
HuluはPS3から見たほうがよさそう。&lt;br /&gt;
&lt;br /&gt;
iPadスタンド用にApple純正のドックを買ってみたのですが、これが失敗。&lt;br /&gt;
縦置き専用なので、横置きができぬ。まぁいいけど。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-2850079246297804779?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YpOX9XPaq9QHlY_hkvXWG5OfEbE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YpOX9XPaq9QHlY_hkvXWG5OfEbE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YpOX9XPaq9QHlY_hkvXWG5OfEbE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YpOX9XPaq9QHlY_hkvXWG5OfEbE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/tUdy35p9Q7M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/2850079246297804779/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=2850079246297804779" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2850079246297804779?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2850079246297804779?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/tUdy35p9Q7M/blog-post.html" title="仕事環境を変えてみた" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-vrAH1_T1Bbw/TW0yLsmp5VI/AAAAAAAAAeo/Sw8f_ZDQYFI/s72-c/photo.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/11/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EHRX44eyp7ImA9WhdbFE4.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-1377283934281140898</id><published>2011-10-13T02:13:00.000+09:00</published><updated>2011-10-13T02:13:54.033+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-13T02:13:54.033+09:00</app:edited><title>自分のことは一番分かりません</title><content type="html">転職してから、自分のことを考えたり、聞かれる事が増えた。&lt;br /&gt;
&lt;br /&gt;
それまでは、与えられた仕事について 楽しい とか 楽しくない とか感じるくらいしか考えてなかったなぁと思う。&lt;br /&gt;
新規の案件であれば、提案とかもできて楽しいな とか、保守/メンテ/バグとり は楽しくないな とか。&lt;br /&gt;
○○言語をやりたい とか系はあったけどww&lt;br /&gt;
自分を説明するのも、「javaを長年やってましたー」みたいなのが自分の説明だった。&lt;br /&gt;
&lt;br /&gt;
どんなタイプ？&lt;br /&gt;
何がしたい？&lt;br /&gt;
何をしていると楽しい？&lt;br /&gt;
と改めて聞かれると、言葉に詰まる。&lt;br /&gt;
&lt;br /&gt;
RPGで考えると、主役系じゃない....勇者でも賢者でもない。&lt;br /&gt;
錬金術師みたいな感じかしら。&lt;br /&gt;
これが欲しいって言われて作って、喜ばれると幸せ。&lt;br /&gt;
&lt;br /&gt;
属性は ミーハー。飽き性。おっちょこちょい。ビビり。&lt;br /&gt;
たまにビビリを脱却しようとするが、度合いが分からず、&lt;br /&gt;
"ええ！ そんな事したの？" と言われるような事をしでかす事がある。&lt;br /&gt;
&lt;br /&gt;
HPは多くないけど、瀕死になるとアドレナリン上がります。&lt;br /&gt;
暇だと即死しますw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-1377283934281140898?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XVgh6LZHqUDgEmINmspDWGZJ-bM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XVgh6LZHqUDgEmINmspDWGZJ-bM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XVgh6LZHqUDgEmINmspDWGZJ-bM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XVgh6LZHqUDgEmINmspDWGZJ-bM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/SS99XMB6LpU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/1377283934281140898/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=1377283934281140898" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/1377283934281140898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/1377283934281140898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/SS99XMB6LpU/blog-post.html" title="自分のことは一番分かりません" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/10/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQCQH44fip7ImA9WhdVFEg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-2390941703278367750</id><published>2011-09-20T02:46:00.000+09:00</published><updated>2011-09-20T02:46:01.036+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-20T02:46:01.036+09:00</app:edited><title>CoCafe(仮) アプリ作成中</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NLOkBDh-Gjw/Tnd2ZIHigCI/AAAAAAAAAnk/qRec1UqDn64/s1600/Cocafe-top.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="214" src="http://4.bp.blogspot.com/-NLOkBDh-Gjw/Tnd2ZIHigCI/AAAAAAAAAnk/qRec1UqDn64/s320/Cocafe-top.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
CoCafe(仮)  iPhoneアプリを作成中です。(サーバ側は @shin1ogawa に協力してもらっています)&lt;br /&gt;
ゆっくりCafeでコーヒーを飲んで、パソコンを触りたい！ ときに、Wifiが接続できるかどうか... というのは大問題。&lt;br /&gt;
ここではWiMax大丈夫！ というのを保存したい... というのを目的に作成中のアプリです。&lt;br /&gt;
&lt;br /&gt;
Map上でお店情報を表示。&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-vvdrkkTXoE4/Tnd3ilCHLQI/AAAAAAAAAns/ADd2N33qAsM/s1600/CoCafe-map.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="214" src="http://3.bp.blogspot.com/-vvdrkkTXoE4/Tnd3ilCHLQI/AAAAAAAAAns/ADd2N33qAsM/s320/CoCafe-map.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
そのお店の情報を表示&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-UdTnIabQRW4/Tnd3zWuBolI/AAAAAAAAAn0/gLPDVkD9gyg/s1600/Cocafe-detail.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="214" src="http://4.bp.blogspot.com/-UdTnIabQRW4/Tnd3zWuBolI/AAAAAAAAAn0/gLPDVkD9gyg/s320/Cocafe-detail.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
お店情報を登録&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-U403etPeREk/Tnd-zPDVRlI/AAAAAAAAAoE/5PLjHSc1o_Y/s1600/%25E5%2586%2599%25E7%259C%259F.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="214" src="http://3.bp.blogspot.com/-U403etPeREk/Tnd-zPDVRlI/AAAAAAAAAoE/5PLjHSc1o_Y/s320/%25E5%2586%2599%25E7%259C%259F.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
自分が登録したお店情報を一覧表示&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ay9FLoktUGE/Tnd4AIr1jEI/AAAAAAAAAn8/2a0LaXDDhlo/s1600/CoCafe-mylist.PNG" imageanchor="1" style=""&gt;&lt;img border="0" height="320" width="214" src="http://3.bp.blogspot.com/-ay9FLoktUGE/Tnd4AIr1jEI/AAAAAAAAAn8/2a0LaXDDhlo/s320/CoCafe-mylist.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
お店のロゴを使いたかったけど、試しにルノアールに問い合わせしてみたら返信が返ってこないので... お店ごとに許可をとるのは断念。結局、自分で作成w&lt;br /&gt;
&lt;br /&gt;
食べログAPIも使おうかと思ったんだけど、問い合わせをしてみたところ、個人利用では、&lt;br /&gt;
* API制限(200/日)というのを大きくしてもらう検討とかはダメ (不正利用が大きくて問題になっているらしい)&lt;br /&gt;
* 有料アプリでの利用は無料のAPIでは使用できない (企業としての登録が多分必要な感じ)&lt;br /&gt;
* APIが廃止になるかもしれないのも考慮してほしい&lt;br /&gt;
....とのことで、使用は断念。&lt;br /&gt;
で、お店情報はGooglePlace APIを使って取得しています。&lt;br /&gt;
GooglePlace APIも、アクセス制限があってアクセスが増えると課金される&amp;自分の首を締めるので、有料アプリにするか、広告にするか... なんか検討しないと行けないですがー。&lt;br /&gt;
&lt;br /&gt;
mapでcafeの表示をみていると、&lt;br /&gt;
こんなところにcafeが！ という発見があったり、&lt;br /&gt;
Map上に店が多いと思ったら、こんなところに商店街が! という発見があったりしてなかなか面白いです。&lt;br /&gt;
&lt;br /&gt;
リリースはまだ出来ていませんが、そんなアプリいいな！ と思った方は応援いただけると嬉しいです♪&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-2390941703278367750?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CsvMwtlwisxyNp1aYfUlPd75qpY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CsvMwtlwisxyNp1aYfUlPd75qpY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CsvMwtlwisxyNp1aYfUlPd75qpY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CsvMwtlwisxyNp1aYfUlPd75qpY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/yumpYYM1dSc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/2390941703278367750/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=2390941703278367750" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2390941703278367750?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2390941703278367750?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/yumpYYM1dSc/cocafe.html" title="CoCafe(仮) アプリ作成中" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-NLOkBDh-Gjw/Tnd2ZIHigCI/AAAAAAAAAnk/qRec1UqDn64/s72-c/Cocafe-top.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/09/cocafe.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIERHoycCp7ImA9WhdRGUQ.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-2727083217686030136</id><published>2011-08-11T02:30:00.001+09:00</published><updated>2011-08-11T02:31:45.498+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-11T02:31:45.498+09:00</app:edited><title>プログラマからみたWordPress(データ構造)</title><content type="html">言葉としてはよく聞いていた、WordPress。&lt;br /&gt;
最近少し触ってみたので、プログラマからみた感想を書いてみようエントリです。&lt;br /&gt;
しかも、データ構造をみれば何となく中が想像できるだろう...という勝手な視点からw&lt;br /&gt;
(まだ1週間しか触っていないので違うところがあったらゴメンナサイ)&lt;br /&gt;
&lt;br /&gt;
まず....WordPress とは&lt;br /&gt;
Movable Typeと同じようにブログを書くためのソフトウェア。&lt;br /&gt;
MySQLとPHPの組み合わせで動きます。&lt;br /&gt;
いろいろカスタマイズできるのですが、「元々はブログを書くために生まれ、拡張されていったのね 」という認識を捨てないのが大事です(笑&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;登録画面からみたデータ構造&lt;/h3&gt;&lt;hr&gt;ページとして投稿できるものとしては2種類。&lt;br /&gt;
- 投稿 : ブログの投稿用のもの。カテゴリ、タグの設定が可能。親ページの指定はできない。&lt;br /&gt;
- 固定ページ : カテゴリ、タグの設定はできない。親ページの指定はできる。&lt;br /&gt;
&lt;br /&gt;
メタ情報として2種類&lt;br /&gt;
- カテゴリ : 親子関係がある。&lt;br /&gt;
- タグ : 親子関係なし。&lt;br /&gt;
&lt;br /&gt;
投稿、固定ページともに「カスタムフィールド」があり、メタ情報をお好みで追加できる。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;DBからみた構造&lt;/h3&gt;&lt;hr&gt;テーブルの数は11個。思ったより少ない。中身をみてみると... 注目すべきテーブルは5つ。&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;wp_***_posts&lt;/h4&gt;投稿、固定ページ情報が入っているテーブル。&lt;br /&gt;
登録内容や動きは違うけど、テーブルは一緒で、"post_type" という属性により切り替わっている。&lt;br /&gt;
&lt;br /&gt;
"post_type" の値は主に以下が入っているっぽい。&lt;br /&gt;
- post : 投稿の情報&lt;br /&gt;
- page : 固定ページの情報&lt;br /&gt;
- nav_menu_item : 設定画面でメニューを設定したときの情報&lt;br /&gt;
- attachment : 投稿/固定ページで設定した画像などの情報&lt;br /&gt;
- revision : 投稿/固定ページのリビジョン情報&lt;br /&gt;
&lt;br /&gt;
テーブルのPrimaryKeyは「ID」&lt;br /&gt;
つまり、上記の情報は種類は違うけどIDはかぶらないはずということ。&lt;br /&gt;
&lt;br /&gt;
また、「カスタム投稿タイプ」によって上記以外の "post_type" のものを作成する事ができたりもします。&lt;br /&gt;
&lt;br /&gt;
PHP内では、&lt;a href="http://codex.wordpress.org/Function_Reference/get_post"&gt;get_post&lt;/a&gt; というメソッドでID指定すると、このテーブルの情報がとれる。&lt;br /&gt;
(論理的にはそうなんだけど、固定ページ用に get_page というメソッドも用意されているので、該当メソッドを使った方がコードの可読性はよい)&lt;br /&gt;
&lt;br /&gt;
もうひとつ、&lt;a href="http://codex.wordpress.org/Template_Tags/get_posts"&gt;get_posts&lt;/a&gt; というメソッドで条件指定で複数のPOSTを取得できるメソッドがあるけど、引数で設定するのはテーブルの項目とは一致しない。&lt;br /&gt;
また、post_type のデフォルトは "post" なので、違うタイプは明示的に指定が必要。&lt;br /&gt;
(こちらも固定ページ用に get_pages というメソッドが用意されている)&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;wp_***_terms&lt;/h4&gt;カテゴリ、タグ が入っているテーブル。&lt;br /&gt;
テーブル項目は&lt;br /&gt;
- term_id (Primary Key)&lt;br /&gt;
- name (表示名)&lt;br /&gt;
- slug  (URLの一部として使われる文字)&lt;br /&gt;
- term_group (グループ化できそーだけどどこから設定するのか不明)&lt;br /&gt;
&lt;br /&gt;
と4つだけ。term_idがPrimaryKeyだけど、使用者としてはslugがkey項目として使う感じ。&lt;br /&gt;
なのでこのテーブルに入っているものでslugは重複したらNG。&lt;br /&gt;
(WPの入力画面上で、重複したslugをいれられると、勝手に後ろに -2とかがつく)&lt;br /&gt;
&lt;br /&gt;
PHP内で情報を抜き出すには、&lt;br /&gt;
カテゴリの場合は &lt;a href="http://codex.wordpress.org/Function_Reference/get_category"&gt; get_category&lt;/a&gt;, タグの場合は &lt;a href="http://codex.wordpress.org/Function_Reference/get_tag"&gt;get_tag&lt;/a&gt;というメソッドで、term_idを渡すと取得できるのだけど、その中で呼ばれているのは結局、&lt;br /&gt;
&lt;a href="http://codex.wordpress.org/Function_Reference/get_terms"&gt;get_terms&lt;/a&gt; というメソッド。 (想像どおりw)&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;wp_***_term_taxonomy&lt;/h4&gt;wp_***_terms に、カテゴリ、タグの区別情報は入っていません。&lt;br /&gt;
区別情報が入っているのがこのテーブル。&lt;br /&gt;
テーブル項目は、以下。&lt;br /&gt;
- term_taxonomy_id (PrimaryKey)&lt;br /&gt;
- term_id&lt;br /&gt;
- taxonomy  &lt;br /&gt;
- parent (親taxonomyのid)&lt;br /&gt;
- count &lt;br /&gt;
&lt;br /&gt;
"taxonomy"項目には以下の情報がはいっているっぽい。&lt;br /&gt;
- category : カテゴリ&lt;br /&gt;
- post_tag : タグ&lt;br /&gt;
- nav_menu : 設定画面でメニューを設定したときの情報&lt;br /&gt;
&lt;br /&gt;
つまり、カテゴリとタグは 親がつけれる/つけれない の差があるけど、変更はこのテーブルの値を変えるだけで切り替えができるということ。&lt;br /&gt;
&lt;br /&gt;
「カスタム投稿タイプ」同様、taxonomyも自作できる機能があるのですが、その情報はここに入ります。&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;wp_***_term_relationships&lt;/h4&gt;taxonomyとpostをひもづけているのが多分このテーブル。&lt;br /&gt;
テーブル項目は、以下。&lt;br /&gt;
- object_id &lt;br /&gt;
- term_taxonomy_id&lt;br /&gt;
- term_order&lt;br /&gt;
&lt;br /&gt;
object_id は wp_***_postsのID が入っている。(多分)&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;wp_***_postmeta&lt;/h4&gt;画像などのattachmentのID情報、投稿/固定ページで設定できる「カスタムフィールド」の値はこのテーブルに入ります。&lt;br /&gt;
テーブル項目は、以下。&lt;br /&gt;
- meta_id (PrimaryKey)&lt;br /&gt;
- post_id&lt;br /&gt;
- meta_key&lt;br /&gt;
- meta_value&lt;br /&gt;
&lt;br /&gt;
meta_keyには&lt;br /&gt;
ページで指定しているアイキャッチの画像の場合は "_thumbnail_id"が入っています。&lt;br /&gt;
カスタムフィールドの場合は、指定したkeyがそのままmeta_keyにはいります。&lt;br /&gt;
他にもいろいろメタ情報の登録があるのですが、ぱっと身、WPが自動登録してくれるものは _ から始まるkeyのようなので、カスタムフィールドのkeyには _ から始まらないもの の方がよさそうです。&lt;br /&gt;
&lt;br /&gt;
ページで指定しているアイキャッチ画像は、&lt;a href="http://codex.wordpress.org/Function_Reference/the_post_thumbnail"&gt;the_post_thumbnail &lt;/a&gt;とかでズバっと画像出力ができるようになっていますが、設定項目を抜き出したい！ という時には&lt;br /&gt;
「postmetaからIDを取得して、postsから情報抜き出す」ということで可能です。&lt;br /&gt;
&lt;blockquote&gt;$post_thumbnail_id = get_post_thumbnail_id($post-&gt;ID);&lt;br /&gt;
$attachment = get_post($post_thumbnail_id);&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
カスタムフィールドの値も同様に &lt;a href="http://codex.wordpress.org/Function_Reference/get_post_custom"&gt;get_post_custom&lt;/a&gt;というメソッドが用意されています。&lt;br /&gt;
&lt;br /&gt;
&lt;hr&gt;ながながと書いてしまいましたが、データ構造を俯瞰して分かる事としては...こんなこと。&lt;br /&gt;
&lt;br /&gt;
* カテゴリ/タグ には メタ情報追加は構造的に無理！&lt;br /&gt;
&lt;br /&gt;
* 投稿/ページ には　複数のtaxonomy(カテゴリ/タグ)をつけれるが、taxonomyの親は一つだけしか構造的に無理！&lt;br /&gt;
&lt;br /&gt;
* あるカテゴリ/タグに紐づくpost情報を抜き出すのは結構joinしていてコスト高い!&lt;br /&gt;
(そのため、内部ではキャッシュしているっぽいコードがある)&lt;br /&gt;
&lt;br /&gt;
* 今後、WPがバージョンアップして機能追加した時は post_type とか taxonomy の値で新しい種類のものが追加される可能性が大きい。&lt;br /&gt;
つまり、カスタム投稿タイプ/taxonomy のkey名は、WPがversionアップ(機能追加)してもつけられないであろう名前にしておく方が無難。&lt;br /&gt;
&lt;br /&gt;
* この記事が何回表示されてるとか 値を持ちたい時には、プログラムから　wp_***_postmetaに バシバシいれたらよいかも。ただしkeyがかぶらなければ。&lt;br /&gt;
pluginも使うかもかもしれない = 違うpluginで同じkey値を偶然に使っていた場合はチョー怖いね。&lt;br /&gt;
&lt;br /&gt;
* リビジョンを保持するようにすると、postテーブルに入っちゃうのでレコード数がガンガン増える！&lt;br /&gt;
リリース前は少なくともリビジョンは外して登録しておいた方が何となくよいよーな気もする。&lt;br /&gt;
&lt;br /&gt;
かな。&lt;br /&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-2727083217686030136?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gEogjlOqEccCBaGo_Xp0zjcRg1o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEogjlOqEccCBaGo_Xp0zjcRg1o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gEogjlOqEccCBaGo_Xp0zjcRg1o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEogjlOqEccCBaGo_Xp0zjcRg1o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/7Dz7-hAvXuc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/2727083217686030136/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=2727083217686030136" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2727083217686030136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2727083217686030136?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/7Dz7-hAvXuc/wordpress.html" title="プログラマからみたWordPress(データ構造)" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/08/wordpress.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUICSX09cSp7ImA9WhdTF0Q.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-5333883158996978218</id><published>2011-07-16T15:00:00.001+09:00</published><updated>2011-07-16T15:26:08.369+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T15:26:08.369+09:00</app:edited><title>退職しました</title><content type="html">昨日、ヌーラボを退職しました。&lt;br /&gt;
&lt;br /&gt;
ヌーラボに入社したことは、私の転換期だったと思います。&lt;br /&gt;
&lt;br /&gt;
前職は java ..といっても Swing ばかり7,8年触っていたのですが、ヌーラボではSwingは一切触りませんでした。&lt;br /&gt;
seasar2 や、cubby, velocity, jsp ... を使った、いわゆる一般的なWEBアプリを作ったり、Eclipse Pluginを作ってみたり、BlackBerryのアプリを作ってみたり、Flash を作ってみたり、携帯のアプリを作ってみたり、iPadのアプリを作ったり、スマートフォン向けのWEBアプリを作ったり...&lt;br /&gt;
会社のメンバーもオープンで活動している方が多く、そんな中で "うっはー 私も頑張らねばな" と思う日々を過ごせました。&lt;br /&gt;
また、個人活動としても AdobeAIR を使って 空うさぎ を作成したり、iPhone用のBacklogクライアントとして CrossBacklog を作ったりしました。&lt;br /&gt;
特に、空うさぎ は個人的に作成したアプリの中では今のところ代表作。&lt;br /&gt;
前職の時に比べたら、いろんなことをしたなー。&lt;br /&gt;
&lt;br /&gt;
残念だったのは、&lt;br /&gt;
一人での開発が多かった点。&lt;br /&gt;
結局、何かお仕事を完了後、振り返りしたり、打ち上げでぱーっと飲みにいく という事はあまり無かった。&lt;br /&gt;
自分がやったお仕事の打ち上げというのは結局1回もなかったような...忘れているだけ?&lt;br /&gt;
&lt;br /&gt;
もう一つの残念というか反省点は、コレ という成果を残せなかったこと。&lt;br /&gt;
私は若くはないので残せないといけないのですが... スイマセン。&lt;br /&gt;
&lt;br /&gt;
チームでの開発がしたい とか みんなで向上していきたい というのが、ヌーラボに入った時からの一つの目標というか、希望だったので、最初の頃は勉強会を提案してやってみたりしたのですが尻切れトンボになっていました。&lt;br /&gt;
&lt;br /&gt;
モクモクとお仕事をしつつ、思いがだんだん変わってきた..というより気づいてきました。&lt;br /&gt;
チームでの開発がしたいと思っていましたが、それは漠然と同じ会社の人と としか思っていなかったのが考え足らずだったのだな と。&lt;br /&gt;
&lt;br /&gt;
チーム内でプログラマの仲間がいれば、相談できるし、なにかと安心 というのは確かにあって、それを期待していた自分もいました。また、チームは遠隔地ではなく一緒の場所で作業を行いたいという思いも強かった。(前職はずっとそうでしたので)&lt;br /&gt;
&lt;br /&gt;
ですが、小さい会社で請け負う小さい案件では、複数人のプログラマが携わることは少なくなります。&lt;br /&gt;
時代の流れ的も短納期、少金額 で行う案件が増えてきており、要件が固まっていないのに期間が少ないという傾向があるので、一人の方がやりやすい場面も多い。&lt;br /&gt;
逆に、一人で2,3個並行してガシガシやっていかないとツライ時代ですよね。&lt;br /&gt;
&lt;br /&gt;
とわいえ、大きいお仕事はあまり興味が湧かない。&lt;br /&gt;
とわいえ、一人で仕事するのは寂しい。&lt;br /&gt;
&lt;br /&gt;
では、どんなチームだとよいのか？ と考えたとき、&lt;br /&gt;
違う能力、違う目線を持つ人同士でのチーム開発である方がワクワク楽しいのではないかと。&lt;br /&gt;
特に小さい規模では、能力の種類差は大きければ大きいほど効率が良いのではないかと。&lt;br /&gt;
&lt;br /&gt;
ヌーラボでは「コラボレーションカンファレンス」というイベントを数回開催していて、その際に "コラボレーションとは？"という議題のワールドカフェを行ったのですが、コラボレーションという言葉でイメージするものは、「全く違う会社や業種の人が集まって、+α のものを作り出す」という話が良く出てきました。そんな感覚のチームって楽しそうだなぁと。&lt;br /&gt;
&lt;br /&gt;
大きい案件の場合、DBに強い人、サーブレット層に強い人、UI層に強い人... とか特徴のある人同士 かつ お互いが尊敬しあっている と楽しくお仕事できたりしますよね。&lt;br /&gt;
それが小さい案件の場合は、もっとカテゴリが大きく括られるのだろうと思います。&lt;br /&gt;
&lt;br /&gt;
そんな中... PLACES(WEBデザイン会社)からお声を頂いて、転職を決意しました。&lt;br /&gt;
今まで、システム開発会社にばかりいたので、WEBデザイン会社は正直考えた事は無かったのですが、うるうる考えていた思いとも一致するし、長年プログラムを書いているのでプログラマ一人の状況でもやっていける...というかやっていかなあかんやろう と。&lt;br /&gt;
また、チャレンジしていきたい方向性が一緒だという事、PLACESの社長さんとは似ている所が多いなぁ と以前から思っていた事 も要因として大きいです。&lt;br /&gt;
&lt;br /&gt;
PLACESは入社当時にはヌーラボと同じ事務所内にあったので、当初から仲良くさせて頂いていました。&lt;br /&gt;
ヌーラボに入社しない限り、PLACESに入社というのはあり得なかっただろうなと思います。&lt;br /&gt;
そう思うと、不思議なご縁だなーと思います。&lt;br /&gt;
ヌーラボ入社前にたまたま行ってみたCSSniteに登壇していたPLACES社長が、事務所に現れてびっくりした のはいい思い出です。&lt;br /&gt;
&lt;br /&gt;
今後は、&lt;br /&gt;
7月中はぷーたろう した後、8月からPLACESに入社予定です。&lt;br /&gt;
&lt;br /&gt;
ヌーラボ在職期間は2年半でした。&lt;br /&gt;
短い間でしたが、大変お世話になりました。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-5333883158996978218?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QLx07A2fJMCz51lW7O6TbvMFOXg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QLx07A2fJMCz51lW7O6TbvMFOXg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QLx07A2fJMCz51lW7O6TbvMFOXg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QLx07A2fJMCz51lW7O6TbvMFOXg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/aOHRA_FRb7M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/5333883158996978218/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=5333883158996978218" title="3 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/5333883158996978218?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/5333883158996978218?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/aOHRA_FRb7M/blog-post.html" title="退職しました" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>3</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/07/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8NR38_eSp7ImA9WhdTEkQ.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-1469231905307223148</id><published>2011-07-10T19:13:00.001+09:00</published><updated>2011-07-10T19:14:56.141+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-10T19:14:56.141+09:00</app:edited><title>iPhoneアプリ開発-画面遷移のアニメーション</title><content type="html">前回、設定画面ではフリップのアニメーションで画面遷移することが多いみたい と書きましたが、&lt;br /&gt;
実際どんなことが標準で用意されているのか？をまとめてみたいと思います。&lt;br /&gt;
&lt;br /&gt;
画面遷移で行える以下のパターンを説明します。&lt;br /&gt;
1. 子階層のレベルの画面に遷移&lt;br /&gt;
2. 兄弟階層のレベルの画面に遷移&lt;br /&gt;
3. 全く違う画面に遷移(設定画面など)&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;1. 子階層レベルの画面に遷移&lt;/h2&gt;子階層に移動するには UINavigationController を使って遷移していきます。&lt;br /&gt;
UINavigationControllerの&lt;b&gt;標準の動きは "右から左の方向へ push"&lt;/b&gt; することにより遷移していきます。&lt;br /&gt;
&lt;br /&gt;
実際のコードはこれ。&lt;br /&gt;
[self.navigationController pushViewController:myController animated:YES];&lt;br /&gt;
&lt;br /&gt;
これを使うと、NavigationBar (画面上部のヘッダ部分) が引き継がれ、&lt;br /&gt;
左のボタンは、前画面へ戻るボタンが自動的に追加されます。&lt;br /&gt;
ボタン名称は、前画面の画面タイトル(Navigationのタイトル)になります。&lt;br /&gt;
&lt;br /&gt;
子階層の画面に遷移するときは、これ以外の動きのパターンは基本使わないかな..と思います。&lt;br /&gt;
が、スライド動作で、親画面にもどる 動作をコードで追加したい場合とか自分で組み込みたくなるときがあります。&lt;br /&gt;
そんな場合は、私はCATransitionを使っています。&lt;br /&gt;
&lt;br /&gt;
CATransition *transition = [CATransition animation];&lt;br /&gt;
transition.duration = 0.4;&lt;br /&gt;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];&lt;br /&gt;
transition.type = kCATransitionPush;&lt;br /&gt;
transition.subtype = kCATransitionFromLeft;&lt;br /&gt;
[self.navigationController.view.layer addAnimation:transition forKey:nil];&lt;br /&gt;
[self.navigationController pushViewController:setting animated:YES];&lt;br /&gt;
&lt;br /&gt;
上記の例は "左から右へ push" です。&lt;br /&gt;
設定は type と subtype があり、&lt;br /&gt;
typeは&lt;br /&gt;
kCATransitionFade&lt;br /&gt;
kCATransitionMoveIn&lt;br /&gt;
kCATransitionPush&lt;br /&gt;
kCATransitionReveal&lt;br /&gt;
subtypeは&lt;br /&gt;
kCATransitionFromRight&lt;br /&gt;
kCATransitionFromLeft&lt;br /&gt;
kCATransitionFromTop&lt;br /&gt;
kCATransitionFromBottom&lt;br /&gt;
があります。組み合わせでかなり細かく設定できますね。&lt;br /&gt;
&lt;br /&gt;
※ただ、これ以外にもっと楽な方法が有りそうな気もしなくもない... もっとよい方法があれば教えてください！&lt;br /&gt;
※CATransition ですが QuartzCore に入っているので、ライブラリを設定し、#import &lt;QuartzCore/QuartzCore.h&gt; でインポートしておく必要があります。&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;2. 兄弟階層のレベルの画面に遷移&lt;/h2&gt;この場合は、コンテンツの内容により、画面遷移のアニメーションは変わる可能性があります。&lt;br /&gt;
前画面が一覧画面で、現画面がその詳細画面 という場合には、&lt;br /&gt;
前のコンテンツへの移動は 上から下へのpush&lt;br /&gt;
次のコンテンツへの移動は 下から上へのpush&lt;br /&gt;
が自然な気がします。&lt;br /&gt;
&lt;br /&gt;
また、本の1ページのイメージの画面では&lt;br /&gt;
前のページへの移動は 左から右へのpush&lt;br /&gt;
前のページへの移動は 右から左へのpush&lt;br /&gt;
が自然ですね。&lt;br /&gt;
&lt;br /&gt;
このパターンの場合、画面のレイアウトは同じで、中身のコンテンツ(文字列とか)を再描画し直すというパターンが多いかと思います。&lt;br /&gt;
そんなときは画面遷移とは言わないかもしれませんがw&lt;br /&gt;
&lt;br /&gt;
Viewを単純に切り替えたい場合は、アニメーションは独自でゴリゴリ書くときもあるとおもいますが、表示中のViewに対して addSubView してあげる感じでしょうか。&lt;br /&gt;
その場合のアニメーションの指定は、前述のCATransitionが使えます。&lt;br /&gt;
&lt;br /&gt;
CATransition *transition = [CATransition animation];&lt;br /&gt;
transition.duration = 0.4;&lt;br /&gt;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];&lt;br /&gt;
transition.type = kCATransitionPush;&lt;br /&gt;
transition.subtype = kCATransitionFromLeft;&lt;br /&gt;
[self.navigationController.view.layer addAnimation:transition forKey:nil];&lt;br /&gt;
[self.view addSubview:myController.view];&lt;br /&gt;
&lt;br /&gt;
この場合、NavigationBarは同じものが表示されます。&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;3. 全く違う画面に遷移(設定画面など)&lt;/h2&gt;設定画面などは現在表示しているコンテンツとは全く違う情報を表示することになります。&lt;br /&gt;
どんなパターンがあるか...はアプリによりますが、設定画面のようなものと仮定すると、モーダル画面として使う事になるのがほとんどなのでそのパターンで説明します。&lt;br /&gt;
&lt;br /&gt;
その場合は、NavigationController の&lt;br /&gt;
[self.navigationController presentModalViewController:myController animated:YES];&lt;br /&gt;
を使用します。&lt;br /&gt;
&lt;b&gt;標準の動きは "下から上へのpush"&lt;/b&gt; です。&lt;br /&gt;
このアニメーションを変えるには、このコードの前に遷移先のViewControllerに対して modalTransitionStyle を設定します。&lt;br /&gt;
modalTransitionStyle は 以下の種類があります。&lt;br /&gt;
&lt;br /&gt;
UIModalTransitionStyleCoverVertical : 下から上へのpush&lt;br /&gt;
UIModalTransitionStyleFlipHorizontal : フリップ (画面がくるっと回りながら遷移)&lt;br /&gt;
UIModalTransitionStyleCrossDissolve : ディゾルブ (元画面がだんだん薄くなって先画面がだんだん濃くなる)&lt;br /&gt;
UIModalTransitionStylePartialCurl : ページカール ※v3.2以上 (マップアプリの右下のボタンの動き)&lt;br /&gt;
&lt;br /&gt;
画面遷移した後、元画面に戻る場合は、遷移先画面で&lt;br /&gt;
[self dismissModalViewControllerAnimated:YES];&lt;br /&gt;
を行います。&lt;br /&gt;
戻る場合にも同じようなアニメーションをかけてくれます。かしこい。&lt;br /&gt;
&lt;br /&gt;
presentModalViewController を使う場合は、元々表示されていたNavigationBarは表示されなくなります。&lt;br /&gt;
全く違う画面が表示されるから...ですね。&lt;br /&gt;
&lt;br /&gt;
でもモーダル画面でもヘッダ(NavigationBar)は表示したいというときがあります。&lt;br /&gt;
そのときはNavigationBarを新たに作って設定してあげます。&lt;br /&gt;
遷移先画面のレイアウト時に行うのではなく、NavigationControllerを作って、そのControllerで遷移をする方がスマートかと思います。&lt;br /&gt;
&lt;br /&gt;
UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:myController];&lt;br /&gt;
[self.navigationController presentModalViewController:navigation animated:YES];&lt;br /&gt;
&lt;br /&gt;
こんな感じ。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ながながと書いてしまった。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-1469231905307223148?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-NyPiy4JKEUJrKpdyuoUyvwb4T0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-NyPiy4JKEUJrKpdyuoUyvwb4T0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-NyPiy4JKEUJrKpdyuoUyvwb4T0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-NyPiy4JKEUJrKpdyuoUyvwb4T0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/PK0nixfv5Ws" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/1469231905307223148/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=1469231905307223148" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/1469231905307223148?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/1469231905307223148?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/PK0nixfv5Ws/iphone.html" title="iPhoneアプリ開発-画面遷移のアニメーション" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/07/iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIHR3kzfCp7ImA9WhZaEUw.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-9165520907849809495</id><published>2011-06-27T02:38:00.002+09:00</published><updated>2011-06-27T02:48:56.784+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-27T02:48:56.784+09:00</app:edited><title>スマートフォンUI考察-設定ボタンの場所</title><content type="html">アプリケーションには設定画面が付き物。&lt;br /&gt;
Androidの場合は、メニューボタンを押して出てくるメニューで設定画面へのボタンを用意できるのでさほど困らないのかな。&lt;br /&gt;
iPhoneの場合はちょっと悩みの種です。&lt;br /&gt;
&lt;br /&gt;
iPhoneでは、&lt;br /&gt;
　1. アプリ内で設定画面を用意する&lt;br /&gt;
　2. 端末の設定にて設定画面を用意する&lt;br /&gt;
の2種類が考えられます。&lt;br /&gt;
&lt;br /&gt;
2.端末の設定画面 はアプリ外の画面になるので見落としがちになります。&lt;br /&gt;
そのため、登録が必須なもの..アカウント設定など..はアプリ内で作る事が多く、本当にオプション的なもののみ 端末の設定で用意する事が多いようです。&lt;br /&gt;
&lt;br /&gt;
では、アプリ内で設定画面を表示するボタンは、どこに配置するのがよいのでしょうか？？&lt;br /&gt;
標準アプリではアプリ内の設定画面を用意しているものは少ないので、有名どころのアプリをみてみます。&lt;br /&gt;
&lt;p style="margin-left:20px;"&gt;twitter&lt;br /&gt;
アカウント設定画面(Root画面)の フッダ(ToolBar)左 の [設定] ボタン&lt;br /&gt;
&lt;br /&gt;
facebook&lt;br /&gt;
メニュー画面(Root画面)の ヘッダ左 を押すとActionMenuが表示されその中に各種設定へのリンクボタン&lt;br /&gt;
&lt;br /&gt;
Skype&lt;br /&gt;
フッダ(TabBar) の 一番右 の [アカウント情報] のタブ&lt;br /&gt;
&lt;br /&gt;
foursquare&lt;br /&gt;
フッダ(TabBar) の 一番右 の  {アカウント名}のタブ&lt;br /&gt;
&lt;br /&gt;
Evernote&lt;br /&gt;
全てのノート画面(Root画面)の ヘッダ左 の [設定]ボタン&lt;br /&gt;
(ヘッダ右にもボタンあり)&lt;br /&gt;
&lt;br /&gt;
Dropbox&lt;br /&gt;
フッダ(TabBar) の一番右 の [設定] のタブ&lt;br /&gt;
&lt;br /&gt;
Instagram&lt;br /&gt;
フッダ(TabBar) の一番右  の {アカウント名} のタブ&lt;br /&gt;
&lt;br /&gt;
Google Latitude&lt;br /&gt;
フッダ(TabBar) の一番右 の [設定] のタブ&lt;br /&gt;
&lt;br /&gt;
ロケタッチ&lt;br /&gt;
フッダ(TabBar) の一番右 の [ステータス]タブ 画面の ヘッダ右 のボタン (アイコンのみ)&lt;br /&gt;
&lt;br /&gt;
beluga&lt;br /&gt;
Pods画面(Root画面)のヘッダ左 の ボタン (アイコンのみ)&lt;br /&gt;
(ヘッダ右にもボタンあり)&lt;br /&gt;
&lt;br /&gt;
bump&lt;br /&gt;
メニュー画面(Root画面)のヘッダ右 のボタン(アイコンのみ)&lt;br /&gt;
(ヘッダ左にはボタンなし)&lt;br /&gt;
&lt;br /&gt;
byline&lt;br /&gt;
フォルダ画面(Root画面)のヘッダ右 の[設定]ボタン&lt;br /&gt;
(ヘッダ左にはボタンなし)&lt;br /&gt;
&lt;/p&gt;※ Root画面と書いているのは、初期表示画面ではなくて、ナビゲーションの最上位に位置する画面をさしています。&lt;br /&gt;
&lt;br /&gt;
ずらずらと書きましたが、まとめると&lt;br /&gt;
&lt;br /&gt;
&lt;p style="font-size:150%"&gt;TabBarを使用している画面は、&lt;br /&gt;
タブの一番右のボタンに配置&lt;/p&gt;&lt;p style="font-size:150%"&gt;TabBarを使用せず、ヘッダがNavigationタイプになっている画面は、&lt;br /&gt;
ヘッダ左右共にボタンがあるときは 左に配置&lt;br /&gt;
ヘッダに1つだけボタンがあるときは 右に配置&lt;/p&gt;が多いようです。&lt;br /&gt;
&lt;br /&gt;
みなみに、ヘッダがNavigationタイプでの設定画面への画面遷移(Transition)は&lt;br /&gt;
twitter フリップ&lt;br /&gt;
Evernote フリップ&lt;br /&gt;
beluga 下からスライド&lt;br /&gt;
bump フリップ&lt;br /&gt;
byline 下からスライド&lt;br /&gt;
でした。&lt;br /&gt;
思ったよりフリップ多いなーとの印象。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-9165520907849809495?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wYMUVnB4jQRV-8Ja4WqHWS0cfgE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wYMUVnB4jQRV-8Ja4WqHWS0cfgE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wYMUVnB4jQRV-8Ja4WqHWS0cfgE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wYMUVnB4jQRV-8Ja4WqHWS0cfgE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/k1_bDXQ5uxk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/9165520907849809495/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=9165520907849809495" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/9165520907849809495?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/9165520907849809495?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/k1_bDXQ5uxk/ui.html" title="スマートフォンUI考察-設定ボタンの場所" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/06/ui.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCQH85fip7ImA9WhZbGUk.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-4889793677188280033</id><published>2011-06-25T04:20:00.001+09:00</published><updated>2011-06-25T04:37:41.126+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-25T04:37:41.126+09:00</app:edited><title>スマートフォンUI考察-iPhone標準レイアウト</title><content type="html">スマートフォン向けのアプリを作ろうとするとき、アプリを見直して、何がどこにあるのが一般的かを毎回ぼーっとみています。&lt;br /&gt;
忘れてしまうぐらいなら記事にしてしまえ！ ということで、スマートフォンUI考察 シリーズ と題して書いてみようと思います。&lt;br /&gt;
&lt;br /&gt;
第一回は iPhone標準レイアウト&lt;br /&gt;
&lt;br /&gt;
HTMLではこんな配置が多いかと思います。&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-A2fwLgn2wm0/TgTEACgBPnI/AAAAAAAAAhM/nocZxiHefzE/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B2.05.33%25EF%25BC%2589.png" /&gt;&lt;/div&gt;&lt;br /&gt;
iPhone, Androidなどスマートフォンでは、解像度は高くなったとはいえ、画面サイズが小さいので全て1画面に収めるのには無理があります。&lt;br /&gt;
必要なの要素を、どれだけ省略してすっきり画面内に収めるか。というのが腕の見せ所(?)かと思います。&lt;br /&gt;
なにはともあれ、iPhoneの標準アプリがとっても参考になります。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;時計&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Z9vbQEnsrBE/TgTYTfDhUlI/AAAAAAAAAhc/KvIotDAzQwg/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B3.32.31%25EF%25BC%2589.png" /&gt;&lt;/div&gt;時計アプリには時計の他にストップウォッチなど、複数の機能があります。&lt;br /&gt;
それらの機能はグロバールナビゲーション的なタブ切替として一番下に配置されています。&lt;br /&gt;
iPhoneで"タブ"と呼ばれるもの(UITabbedPane)は、下に表示されるのが一般的です。&lt;br /&gt;
&lt;br /&gt;
この画面のレイアウトは、登録系画面の基本的な形になるかと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;AppStore, Youtube&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-LcF8S5JC4MA/TgTZT9cJf7I/AAAAAAAAAhk/di8lCr4wPis/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B3.36.29%25EF%25BC%2589.png" /&gt;&lt;/div&gt;フッダ部分にタブ形式でグローバルナビゲーション。&lt;br /&gt;
ヘッダ部分に表示切替のトグルボタン(SegmentedControll)が配置されています。&lt;br /&gt;
タブで表示内容を決め、トグルボタンでさらにフィルタをかけるイメージです。&lt;br /&gt;
&lt;br /&gt;
この画面のレイアウトは、一覧表示系の画面にて使用される形になります。&lt;br /&gt;
登録系画面では使用されないはず。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;カレンダー&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-17KosX82_68/TgTbAlS-ZuI/AAAAAAAAAhs/Hzh8aMIbuJg/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B3.43.37%25EF%25BC%2589.png" /&gt;&lt;/div&gt;タブがないパターン。&lt;br /&gt;
追加ボタンは、通常 ヘッダの右に配置される事が多いです。&lt;br /&gt;
この画面では追加ボタンがあるため、表示切替のトグルボタンは、フッダに配置されています。&lt;br /&gt;
たまに、ヘッダに 追加ボタンと表示切替のトグルボタンの両方がヘッダに配置されているアプリもあります。&lt;br /&gt;
&lt;br /&gt;
カレンダーの種類を設定する画面へのボタンがヘッダ左に配置されています。&lt;br /&gt;
階層的に親画面になるものは、ヘッダ左に遷移ボタンが配置されます。&lt;br /&gt;
遷移元画面へ戻るボタンで、 &lt;□□ の形のものがありますが、これは実際遷移を行ったときに表示されるものです。
カレンダーアプリではよく使うこの画面をデフォルトの画面にしているため、親画面を経由していません。
そのため □ の形状のボタンになっているのと思います。

&lt;h3&gt;&lt;br /&gt;
Map&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-DbK4NZ2333s/TgTdRtXcXTI/AAAAAAAAAh0/ad6Y8F6-4jY/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B3.53.21%25EF%25BC%2589.png" /&gt;&lt;/div&gt;&lt;br /&gt;
検索バーは通常画面上部に表示されます。&lt;br /&gt;
ヘッダ + 検索バーが表示されるレイアウトもありますが、コンテンツ表示可能サイズが小さくなってしまうので、その場合は検索バーは通常は非表示にする事が多いと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Safari&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-u7VpQTeVh9E/TgTd-5XpliI/AAAAAAAAAh8/w_KbRdihutM/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B3.56.24%25EF%25BC%2589.png" /&gt;&lt;/div&gt;Mapと似た配置になります。&lt;br /&gt;
ページタイトルは、検索バーの中に書くことでサイズを節約できています。&lt;br /&gt;
&lt;br /&gt;
標準アプリはUIの統一感がとれているとおもいませんか？&lt;br /&gt;
自然に使っているけど、よく考えられているんだろうなーと思います。&lt;br /&gt;
&lt;br /&gt;
標準アプリ以外の有名どころのアプリも少し見てみます。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Facebook&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-SCSVN_2_lPI/TgTgJeK5raI/AAAAAAAAAiE/EK5x_Qfz-7w/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B4.00.17%25EF%25BC%2589.png" /&gt;&lt;/div&gt;&lt;br /&gt;
処理ボタンがヘッダの下にあります。&lt;br /&gt;
ちょっと標準形式から崩れているので、何をするボタンだろう？ 表示切替かな? と始めに思ったりしなかったでしょうか?w&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;foursquare&lt;/h3&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0"  src="http://4.bp.blogspot.com/-ssdhJMtCPmM/TgTgpmWHFGI/AAAAAAAAAiM/DobgLHI07Sg/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B4.08.03%25EF%25BC%2589.png" /&gt;&lt;/div&gt;&lt;br /&gt;
標準形式にまだ似ているので、分かりやすいんじゃないかと思います。&lt;br /&gt;
ただ、&lt;br /&gt;
横の 周辺のスポット 、世界中 のトグルボタンは、この画面内の表示切替なのに、マップ表示の画面に飛ぶ処理ボタン(地球儀のマーク)がその横にあるのは分かりにくいなぁーと思います。&lt;br /&gt;
&lt;br /&gt;
画面が少ないから、いろんな機能、ボタンを収めてしまいたい！と思うのは良くわかるのですが、&lt;br /&gt;
横に並んでいるものは、画面遷移をするもの、画面内の情報を切り替えるもの は混在させない方が分かりやすいかと思います。&lt;br /&gt;
&lt;br /&gt;
今回はこんなところで。&lt;br /&gt;
次回も続く予定。たぶん。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-4889793677188280033?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7AQQqlxwr95PuNM3dB9Cac8-2EA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7AQQqlxwr95PuNM3dB9Cac8-2EA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7AQQqlxwr95PuNM3dB9Cac8-2EA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7AQQqlxwr95PuNM3dB9Cac8-2EA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/2FUR1ATJy-U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/4889793677188280033/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=4889793677188280033" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4889793677188280033?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4889793677188280033?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/2FUR1ATJy-U/ui-iphone.html" title="スマートフォンUI考察-iPhone標準レイアウト" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-A2fwLgn2wm0/TgTEACgBPnI/AAAAAAAAAhM/nocZxiHefzE/s72-c/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588%25EF%25BC%25882011-06-25%2B2.05.33%25EF%25BC%2589.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/06/ui-iphone.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8ERXczcSp7ImA9WhZUFU4.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-2141110872552913891</id><published>2011-06-08T20:00:00.005+09:00</published><updated>2011-06-08T20:00:04.989+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-08T20:00:04.989+09:00</app:edited><title>MacOSXのchromeでスマートフォン用UserAgentを偽装</title><content type="html">MacOSXのchromeでスマートフォン用のUserAgentを偽装して表示したかったので、User-Agent Switcher のExtensionを入れてみたのですがなんか上手く動かず、イラっとして起動用スクリプト書いてみました。&lt;br /&gt;
UserAgentの値は&lt;a href="http://maxfactory.biz/blog/sp_device_profile/"&gt;MAX FACTORY スマートフォン機種情報一覧&lt;/a&gt;から頂きました。有難うございます。&lt;br /&gt;
起動アプリはgmailになってます。(URLの変数の値を変えると変更できます)&lt;br /&gt;
終了時にchromeのエラーが出力されたりするのですが...気にせず使ってますが...なにか間違っていたらすいません。&lt;br /&gt;
&lt;br /&gt;
&lt;pre name="code" class="xml"&gt;#!/bin/sh

# 指定されたUserAgentをつかってGoogleChromeを起動します。@ Mac
# 
# chromeの設定は ${USER_DATA_DIR}の場所に入ります。

USER_DATA_DIR="/~/Library/Application Support/Google/Chrome/smartphonedev"
URL="https://mail.google.com/mail/"

# UserAgent一覧
iPhone4="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
iPhone3GS="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_3 like Mac OS X; ja-jp) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7E18 Safari/528.16"
iPad="Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5"

HT03A="Mozilla/5.0 (Linux; U; Android 1.5; ja-jp; HT-03A Build/CDB72) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
Xperia="Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEricssonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
GalaxyS="Mozilla/5.0 (Linux; U; Android 2.2; ja-jp; SC-02B Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
IS01="Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; IS01 Build/S6191) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"
IS02="Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 8.12; MSIEMobile 6.5) KDDI-TS01"
IS03="Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; IS03 Build/S2080) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"
Desire="Mozilla/5.0 (Linux; U; Android 2.1-update1; ja-jp; HTCX06HT Build/ERE27) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"
Aria="Mozilla/5.0 (Linux; U; Android 2.2.1; ja-jp; S31HT Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"

while true; do
    cat &amp;gt;&amp;gt;EOF
使用するUserAgentを選択してください
1:iPhone4
2:iPhone3GS
3:iPad
4:HT-03A
5:Xperia
6:GalaxyS
7:IS01
8:IS02
9:IS03
10:Desire
11:Aria
数字を入力してください
EOF
    read ACT
    case ${ACT} in
     1)  USER_AGENT=$iPhone4 break ;;
     2)  USER_AGENT=$iPhone3GS break ;;
     3)  USER_AGENT=$iPad break ;;
     4)  USER_AGENT=$HT03A break ;;
     5)  USER_AGENT=$Xperia break ;;
     6)  USER_AGENT=$GalaxyS break ;;
     7)  USER_AGENT=$IS01 break ;;
     8)  USER_AGENT=$IS02 break ;;
     9)  USER_AGENT=$IS03 break ;;
     10)  USER_AGENT=$Desire break ;;
     11)  USER_AGENT=$Aria break ;;
     *)
      printf "エラー: 無効な項目 \"%s\" が入力されました\n" "${ACT}"
      ;;
    esac
  done
 
echo userAgent = "${USER_AGENT}"

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir="${USER_DATA_DIR}" --app="${URL}" --user-agent="${USER_AGENT}"
exit 0

&lt;/pre&gt;&lt;br /&gt;
user-data-dir を指定するとか知りませんでした。&lt;br /&gt;
開発テストではdirを切り分けるとなにかと良いかも。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-2141110872552913891?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NBKSJPk2TlaEEQ75JsifOXS6X64/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NBKSJPk2TlaEEQ75JsifOXS6X64/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NBKSJPk2TlaEEQ75JsifOXS6X64/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NBKSJPk2TlaEEQ75JsifOXS6X64/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/8Ov1f6bjhoQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/2141110872552913891/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=2141110872552913891" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2141110872552913891?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/2141110872552913891?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/8Ov1f6bjhoQ/macosxchromeuseragent.html" title="MacOSXのchromeでスマートフォン用UserAgentを偽装" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/06/macosxchromeuseragent.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQGRHY8eSp7ImA9WhZUFEg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-7708786817146422396</id><published>2011-06-07T22:25:00.002+09:00</published><updated>2011-06-07T22:28:45.871+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-07T22:28:45.871+09:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="iPhone" /><category scheme="http://www.blogger.com/atom/ns#" term="iOS" /><title>UITabBarControllerのloadViewのタイミング</title><content type="html">iOS の UITabBarController でちょっとハマったのでメモ。&lt;br /&gt;
&lt;br /&gt;
UIViewController と UITabBarController とでは loadView, viewDidLoaded のイベントのタイミングが違うみたい。&lt;br /&gt;
&lt;pre name="code" class="c"&gt;@interface MyViewController : UIViewController {
}
@end

@implementation MyViewController
- (id) init {
    NSLog(@"super init call!");
    self = [super init];
    if (self) {
        NSLog(@"init call!");
   }
   return self;
}

- (void)loadView {
    [super loadView];
    NSLog(@"loadView call!");
}

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"viewDidLoad call!");
}
@end
&lt;/pre&gt;&lt;br /&gt;
こんな感じのUIViewController の場合、&lt;br /&gt;
1.  super init call!&lt;br /&gt;
2.  &lt;span style="color:red"&gt;init call!&lt;/span&gt;&lt;br /&gt;
3. loadView call!&lt;br /&gt;
4. viewDidLoad call!&lt;br /&gt;
の順番で呼ばれます。&lt;br /&gt;
&lt;br /&gt;
... が  継承元を UITabBarController にした場合、つまり上記のコードでinterface部分を&lt;br /&gt;
&lt;pre name="code" class="c"&gt;@interface MyViewController : UITabBarController {
}
@end
&lt;/pre&gt;とした場合は、&lt;br /&gt;
1.  super init call!&lt;br /&gt;
2. loadView call!&lt;br /&gt;
3. viewDidLoad call!&lt;br /&gt;
4.  &lt;span style="color:red"&gt;init call!&lt;/span&gt;&lt;br /&gt;
の順番で呼ばれるみたい。&lt;br /&gt;
&lt;br /&gt;
なので、UITabBarController の init の所でプロパティの初期化をするようなコードを書いいると、&lt;br /&gt;
loadView のタイミングでは初期化されていない という状態になってしまいます。&lt;br /&gt;
&lt;br /&gt;
Tabだからそういうもんかもしれないかもしれないけど、おかしい気もする。うーん ?&lt;br /&gt;
&lt;br /&gt;
私的には &lt;br /&gt;
UITabBarControllerを継承してクラスは作成しない方向でこれからは組む&lt;br /&gt;
...と心に決めましたw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-7708786817146422396?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pDLNn19Nidy_-DX6jbcxrwXGetE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pDLNn19Nidy_-DX6jbcxrwXGetE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pDLNn19Nidy_-DX6jbcxrwXGetE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pDLNn19Nidy_-DX6jbcxrwXGetE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/94s88p2NBWY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/7708786817146422396/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=7708786817146422396" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/7708786817146422396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/7708786817146422396?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/94s88p2NBWY/uitabbarcontrollerloadview.html" title="UITabBarControllerのloadViewのタイミング" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/06/uitabbarcontrollerloadview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCQn85fyp7ImA9WhZXE08.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-4200406967170379833</id><published>2011-04-30T23:50:00.005+09:00</published><updated>2011-05-02T17:01:03.127+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-02T17:01:03.127+09:00</app:edited><title>スマートフォン向けアプリ開発フレームワークとか</title><content type="html">スマートフォン向けのアプリ提供はほぼ必須になってきているこの状況。&lt;br /&gt;
何で作るのか? というのは、悩ましいところですよね。&lt;br /&gt;
&lt;br /&gt;
ネイティブアプリで作るのか？ WEBアプリ(HTML5+CSS3)で作るのか？ &lt;br /&gt;
...は開発者が揃っている云々もあるかもしれませんが、それよりも、そのアプリの特性/対象者によって決定する感じなのでしょうね。&lt;br /&gt;
会社のアプリならばインストールさせて使う系のネイティブの方が良さそうだけど、インストール無しでも..であればWEBアプリでという選択肢なのかな。あとは、Appleにお布施が可能なのかどうかとか..か。&lt;br /&gt;
&lt;br /&gt;
WEBアプリの方には全然注目していなかったのですが、「ネイティブと同じような動きで、iPhoneとAndroidのマルチプラットフォーム」となるとなかなか厄介なもんですね。&lt;br /&gt;
どこまでこだわるか？によるんでしょうけども、対象が iPhoneだけだったらライブラリつかってなんとかなりそうだがAndroidも加わるんだったらイバラの道 というのがなんとなくの現在のイメージ。&lt;br /&gt;
まだ本格的に作った訳じゃないから、違うかもしんないけど。&lt;br /&gt;
そもそもAndroidはアプリのメニューや戻るがハードボタンなので、ネイティブアプリに見せるWEBアプリは果たしてどうなんだろう？ 混乱しない？ とも思わくもないのですがね。&lt;br /&gt;
&lt;br /&gt;
ということで、JSで作成出来る便利ライブラリ系を最近探してみたのでいくつか書いてみます。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Sencha Touch&lt;/h3&gt;&lt;a href="http://www.extjs.co.jp/products/touch/"&gt;http://www.extjs.co.jp/products/touch/&lt;/a&gt;&lt;br /&gt;
ExtJSをベースに作成されているので、ExtJSに慣れている人なら学習コストは低そう。&lt;br /&gt;
HTMLは書かずにほぼJSでゴリゴリ書いていきます。&lt;br /&gt;
好き嫌いが別れるところですが、個人的にはHTMLで要素構造が書けないのでメンテが難しそうなイメージも。&lt;br /&gt;
ライセンス形態が変更になって、商用でも無料で使えるようになりました。&lt;br /&gt;
最終生成物はWEBアプリ。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;jQueryMobile&lt;/h3&gt;&lt;a href="http://jquerymobile.com/"&gt;http://jquerymobile.com/&lt;/a&gt;&lt;br /&gt;
HTMLでマークアップ+JQueryで書いていくタイプ。&lt;br /&gt;
ボタンとかのデザインはCSSの指定クラスを書いてその情報を元にJQueryMobileがHTMLを修正することにより反映していきます。&lt;br /&gt;
そのため、動的に追加したHTML要素については作成後に反映するrefresh的なJSメソッドをcallしたりする必要も有ります。&lt;br /&gt;
SenchaTouchと良く比較されているものを見ますが、個人的にはSenchaTouchより敷居が低い気がします。&lt;br /&gt;
ただ、GalaxySで見てみると画面遷移がカクついたりといまいち。&lt;br /&gt;
ヘッダ/フッダ固定機能も有りますが、スクロール後にヘッダ/フッダを描画しなおす感じもののです。その動きもなんだか不安定で表示されなくなったりも...&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;SproutCore&lt;/h3&gt;&lt;a href="http://www.sproutcore.com/"&gt;http://www.sproutcore.com/&lt;/a&gt;&lt;br /&gt;
AppleのMobileMeで使われているようです。&lt;br /&gt;
デモサイトを見てみたんですがなんかまともに動かなくて..&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://demo.sproutcore.com/sample_controls/"&gt;http://demo.sproutcore.com/sample_controls/&lt;/a&gt;&lt;br /&gt;
これを見ると、iPhoneっぽいきれいなUIが作れるコンポーネントが揃っているようです。&lt;br /&gt;
デザインは不得意な人にはよいかもしれません。&lt;br /&gt;
ライセンスはMIT license。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;qooxdoo&lt;/h3&gt;&lt;a href="http://qooxdoo.org/"&gt;http://qooxdoo.org/&lt;/a&gt;&lt;br /&gt;
qooxdoo1.4 が2011/4/7にリリースされて、モバイル対応も追加されたようです。&lt;br /&gt;
実験的に追加されたものらしく、iPhoneではデモサイトがそれなりにう動いてそうでしたが、GaralxySではヘッダ固定画面のスクロールはいまいちな動き。画面遷移のアニメーションも動かないところがいくつかありました。&lt;br /&gt;
でも、ヘッダ固定とか画面遷移のアニメーションとか欲しくなりそうなところを押さえてようとしている感じなので今後に期待。&lt;br /&gt;
ライセンスはLGPLとEPLのデュアル。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;PhoneGap&lt;/h3&gt;&lt;a href="http://www.phonegap.com/"&gt;http://www.phonegap.com/&lt;/a&gt;&lt;br /&gt;
JSで書いたものWebkitで動かすタイプだが、ネイティブアプリのパッケージになる。&lt;br /&gt;
開発環境も、iPhoneだったらXCodeらしい。&lt;br /&gt;
ObjectiveCの学習コストがかかるから...という人が選択するもんだと想像。&lt;br /&gt;
Rejectされる可能性もある?! と噂されていましたが、結局は大丈夫と落ち着いたみたい?&lt;br /&gt;
個人的には、フレームワークの使い方の学習コストを考えるなら、開発者だったらObjectiveCの開発コストの方が低いんじゃねの？ なんても思ったり。&lt;br /&gt;
でも、PhoneGapのページかわいい。好き。&lt;br /&gt;
MITライセンス。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Titanium Mobile&lt;/h3&gt;&lt;a href="http://www.appcelerator.com/products/titanium-mobile-application-development"&gt;http://www.appcelerator.com/products/titanium-mobile-application-development&lt;/a&gt;/ &lt;br /&gt;
&lt;strike&gt;JSで書いたコードをネィティブコードにジェネレートするタイプ。&lt;/strike&gt; &lt;a href="http://public.iwork.com/document/ja/?d=Titanium_Mobile_Workshop_2011_47_02_47_25.key&amp;a=p40748949"&gt;MASUIさんのスライド&lt;/a&gt;を見るとネイティブコードにジェネレートではないらしいです。 ですが、他のライブラリに比べてより多くのネイティブの機能を使えるのが特徴なんかと思います。書くJSコードもネイティブのクラスをJSのラッパーで触るのに近いイメージ。Androidだったらインテントを発行とかもできるらしい。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://mogsnap.jp/"&gt;mogsnap&lt;/a&gt;はTitaniumで作成されているようです。&lt;br /&gt;
なんかあつくなってきている感じですよねw&lt;br /&gt;
PhoneGapと同様、Rejectされる可能性もある?! と噂されていましたが、リリースされているアプリもあるし大丈夫って事なんでしょうー。&lt;br /&gt;
ジェネレート系なので、レスポンスもWEBアプリに比べていいだろうし、ネイティブのAPIが必要になっても最悪書いちゃえばOKという柔軟さもある。&lt;br /&gt;
ヘッダ固定とか、画面遷移のアニメーションとか をそれらしくすれば、それなりにネイティブアプリに近くなると思うのですが、WEBアプリ(HTML5+CSS3)でクロスプラットフォームでやるにはやっぱり大変。&lt;br /&gt;
本当に真面目にやるんであれば、iPhone用、Android用にソース分けた方が結局よい..とかなりそうな予感もするので、それだったらTitaniumのようなジェネレートタイプって結構現実的な気もします。&lt;br /&gt;
まぁ、やっぱりネックなのはiPhone用を作成するにはXCodeとか、開発用ライセンスが必要って事なんですけどもねー。&lt;br /&gt;
価格体系 → &lt;a href="http://www.appcelerator.com/products/plans-pricing"&gt;http://www.appcelerator.com/products/plans-pricing&lt;/a&gt;/&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;jQTouch&lt;/h3&gt;&lt;a href="http://jqtouch.com/"&gt;http://jqtouch.com/&lt;/a&gt;&lt;br /&gt;
iPhoneのwebkitに最適化されているjQueryのプラグイン。&lt;br /&gt;
MITライセンス。&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.extjs.co.jp/blog/2010/06/15/sencha-press-release/"&gt;http://www.extjs.co.jp/blog/2010/06/15/sencha-press-release/&lt;/a&gt;&lt;br /&gt;
これをみると、Senchaと一緒になったの？&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;iScroll&lt;/h3&gt;&lt;a href="http://cubiq.org/iscroll"&gt;http://cubiq.org/iscroll&lt;/a&gt;&lt;br /&gt;
スクロール用のライブラリ。&lt;br /&gt;
スマートフォン向けのWEBアプリはスクロールはネックの一つ。&lt;br /&gt;
ググると結構使われているみたいなんですけど、GalaxySでスクロールを見るとスクロールが動かなくなったりして動きが不安定。&lt;br /&gt;
使われているのはiPhone用のものなんかなぁー。&lt;br /&gt;
MITライセンス。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;WINK Toolkit&lt;/h3&gt;&lt;a href="http://www.winktoolkit.org/"&gt;http://www.winktoolkit.org/&lt;/a&gt;&lt;br /&gt;
かなりエフェクト系が多いです。こんなんまでいらんやろーw と思うくらい。&lt;br /&gt;
いっぱいdemoが用意されていますが、GalaxySでみるとFlipPageやCoverflowなど対応していないようでメニューが使用不可になっています。こちらもiPhoneメインの開発なんでしょうね。&lt;br /&gt;
ヘッダ固定のスクロールについてはiScrollと同じくGalaxySではちょっと怪しい動きもあるのは残念。&lt;br /&gt;
だけど、いろいろ参考になりそうです。&lt;br /&gt;
ライセンス : &lt;a href="http://www.winktoolkit.org/download/licence.txt"&gt;http://www.winktoolkit.org/download/licence.txt&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;mobl&lt;/h3&gt;&lt;a href="https://github.com/mobl/mobl"&gt;https://github.com/mobl/mobl&lt;/a&gt;&lt;br /&gt;
moblという独自言語を使って開発するフレームワーク。&lt;br /&gt;
開発環境は魅力的なEclipse (pluginが提供される)&lt;br /&gt;
まだ触っていないけど、どうなんだろ？&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;iUI&lt;/h3&gt;&lt;a href="http://code.google.com/p/iui/"&gt;http://code.google.com/p/iui/&lt;/a&gt;&lt;br /&gt;
iPhone用のUIが作れるJavaScriptライブラリ。&lt;br /&gt;
デモ : http://www.iui-js.org/mobile/demos.html#_home&lt;br /&gt;
New BSD ライセンス。&lt;br /&gt;
&lt;br /&gt;
2011/05/02 追加&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Jo&lt;/h3&gt;&lt;a href="http://www.joapp.com/"&gt;http://www.joapp.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.ibm.com/developerworks/jp/web/library/wa-joandphonegap/index.html"&gt;IBM DevelperWorks/Jo と PhoneGap を使用してネイティブ・モバイル・アプリケーションを作成する&lt;/a&gt;&lt;br /&gt;
記事を読むかぎり、JSをWebkit上で動かすタイプなのかな。&lt;br /&gt;
画面管理や、データのバインドなどがあるみたいなので、デザインよりもデータ管理の方面に強いフレームワークなのかな。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;appMobi&lt;/h3&gt;&lt;a href="http://www.appmobi.com/index.php"&gt;http://www.appmobi.com/index.php&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.moongift.jp/r/2010/10/appmobi/"&gt;MoonGift:Web上でiPhone/iPad/Androidアプリを開発する「appMobi」&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-4200406967170379833?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UR8-N8ZnjErTJ9lPpNj9fbkgVnU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UR8-N8ZnjErTJ9lPpNj9fbkgVnU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UR8-N8ZnjErTJ9lPpNj9fbkgVnU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UR8-N8ZnjErTJ9lPpNj9fbkgVnU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/3E2B2up65KY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/4200406967170379833/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=4200406967170379833" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4200406967170379833?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4200406967170379833?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/3E2B2up65KY/blog-post.html" title="スマートフォン向けアプリ開発フレームワークとか" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/04/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkADQXw8cSp7ImA9WhZQF0k.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-4538123342210995649</id><published>2011-04-26T00:18:00.001+09:00</published><updated>2011-04-26T00:19:30.279+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T00:19:30.279+09:00</app:edited><title>JQueryのliveイベントがiPhoneのSafariで登録できない</title><content type="html">JQueryのliveで登録したイベントがiPhoneのSafariでは動作しなくて暫くのハマり。&lt;br /&gt;
&lt;br /&gt;
$('#identifier').live("click", function);&lt;br /&gt;
&lt;br /&gt;
こんな感じの登録のやつです。&lt;br /&gt;
もち、PC上のブラウザでは動く。(多分Androidのブラウザも動いてた気がする)&lt;br /&gt;
&lt;br /&gt;
なぜか&lt;a href="http://cubiq.org/iscroll"&gt;iScroll&lt;/a&gt;に、対象のHTML要素を含んだものを入れるとイベント登録ができたりして、よけいに混乱しておりました。(理由不明)&lt;br /&gt;
&lt;br /&gt;
JQueryの該当チケットは多分コレ。&lt;br /&gt;
&lt;blockquote&gt;&lt;a href="http://bugs.jquery.com/ticket/5677"&gt;Ticket #5677&lt;/a&gt;&lt;br /&gt;
LIVE CLICK EVENTS DON'T REGISTER ON MOBILESAFARI (IPHONE)&lt;br /&gt;
&lt;/blockquote&gt;ここのコメントにありますが、回避方法は &lt;br /&gt;
&lt;span style="font-size:200%"&gt;onclick="" 属性を対象HTML要素に追加&lt;/span&gt;&lt;br /&gt;
です。&lt;br /&gt;
&lt;br /&gt;
これで無事に動くようになりました。それはそれで びっくりですけども。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-4538123342210995649?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iQfXpf0fYAgQGiLdgup0_LFVgqQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iQfXpf0fYAgQGiLdgup0_LFVgqQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iQfXpf0fYAgQGiLdgup0_LFVgqQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iQfXpf0fYAgQGiLdgup0_LFVgqQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/mt61-3txWN0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/4538123342210995649/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=4538123342210995649" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4538123342210995649?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4538123342210995649?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/mt61-3txWN0/jqueryliveiphonesafari.html" title="JQueryのliveイベントがiPhoneのSafariで登録できない" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/04/jqueryliveiphonesafari.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8EQXk8eip7ImA9WhZSFkg.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-1828221764496405414</id><published>2011-04-01T19:30:00.003+09:00</published><updated>2011-04-01T19:30:00.772+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-01T19:30:00.772+09:00</app:edited><title>NSAutoreleasePoolとNSValue</title><content type="html">さっき、ハマっていたのですが、あまりに初心者的なハマりだったので、&lt;br /&gt;
テストケースとしてコミットするのをやめ、ブログにメモとして残すことにしました (笑)&lt;br /&gt;
&lt;br /&gt;
[NSValue valueWithCGPoint:CGPointMake(10, 10)]&lt;br /&gt;
や&lt;br /&gt;
[NSDate date]&lt;br /&gt;
のようなallocしてなくてinit***から始まらないものは、Autoreleaseで解放されちゃうので注意 ということ。&lt;br /&gt;
&lt;br /&gt;
NSAutoreleasePoolなんて、つかってねーよ！ という場合でも使用ライブラリによっては実は走っていた！なんて事があるのでちゃんとしとかなくてはイケマセン。&lt;br /&gt;
&lt;br /&gt;
もれちゃうと、EXEC_BAD_ACCESS がでちゃったり、メモリーリークしちゃったり、このタイミングではOKなのに、その後のタイミングではNGだ ... と私のようにハマりますw&lt;br /&gt;
&lt;br /&gt;
以下、簡潔にしたテストコード。&lt;br /&gt;
&lt;pre name="code" class="java"&gt;- (void)testNSValue {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSValue *nsValue = [NSValue valueWithCGPoint:CGPointMake(10, 10)];
    [nsValue retain];
    STAssertEquals((int) [nsValue retainCount], 2, @"retain したので2つになっているはず");
    
    NSObject *nsObject = [[NSObject alloc] init];
    [nsObject retain];
    STAssertEquals((int) [nsObject retainCount], 2, @"retain したので2つになっているはず");
    
    NSDate *nsDate = [NSDate date];
    [nsDate retain];
    STAssertEquals((int) [nsDate retainCount], 2, @"retain したので2つになっているはず");

    [pool release]; // autorelease を release
    
    STAssertEquals((int) [nsValue retainCount], 1, @"autorelease により1になる");
    STAssertEquals((int) [nsObject retainCount], 2, @"NSObjectはallocしてるのでautoreleaseしても2のまま");
    STAssertEquals((int) [nsDate retainCount], 1, @"autorelease により1になる");
}
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-1828221764496405414?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4YYOw4_YozUpn_BHv7IByMszGlo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4YYOw4_YozUpn_BHv7IByMszGlo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4YYOw4_YozUpn_BHv7IByMszGlo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4YYOw4_YozUpn_BHv7IByMszGlo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/qw75u9wzMJ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/1828221764496405414/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=1828221764496405414" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/1828221764496405414?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/1828221764496405414?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/qw75u9wzMJ0/nsautoreleasepoolnsvalue.html" title="NSAutoreleasePoolとNSValue" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/04/nsautoreleasepoolnsvalue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ACQ349fCp7ImA9WhZTF0w.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-8540737871743171231</id><published>2011-03-21T19:36:00.002+09:00</published><updated>2011-03-21T21:49:22.064+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-21T21:49:22.064+09:00</app:edited><title>東日本大震災 10日目</title><content type="html">大地震、大津波から10日がたちました。&lt;br /&gt;
&lt;br /&gt;
被害が露になっていく一方、奇跡的なニュースも飛びかう日々。&lt;br /&gt;
ニュースで出てくる方々の表情を見ていると、お年寄りたちは強いなぁと感じます。&lt;br /&gt;
戦争や、かつての災害を経験しているからでしょうか。&lt;br /&gt;
&lt;br /&gt;
私の周りの東京では、大分食料も落ち着いてきて、その日のものはその日に買えるようになってきました。&lt;br /&gt;
我が家は23区にあるので停電はありませんが、スーパーは18時には閉店するし、飲食店の看板はほとんど消されているために、どの店が空いているのかは、目の前まで行かないと判断できない感じです。&lt;br /&gt;
&lt;br /&gt;
気になるところとしては、働いて、夜帰ってくる人が食料/生活用品にありつけないということ。&lt;br /&gt;
先週は自宅勤務だったので様子がよく見えたのですが、朝はちゃんと入荷があるんですよね。そこに、家にずっといてそうな方々がまとめ買いをしていくから、夜にはなくなる。&lt;br /&gt;
働いている人の事も考えて、買いだめの自粛してほしい...。&lt;br /&gt;
&lt;br /&gt;
相変わらず、ティッシュ類は買えませんが、節約して使っていると、いままで凄く浪費していたんだなぁということが良くわかります。モノがあふれていて鈍っていたのだろう。&lt;br /&gt;
&lt;br /&gt;
1日の電力消費量が発表されるので、予定より少なかった結果だと嬉しくなりますね。&lt;br /&gt;
この震災時だけでなく、常に数値を出してくれたらよい気も。&lt;br /&gt;
計画的停電はこれからもしばらく続きそうなので、これを機に節電が習慣づいたらよさそう。&lt;br /&gt;
&lt;br /&gt;
まぁ、今、被災地に対して出来る事といえば、募金と節電/節約 なのでこの調子で東京都民も頑張っていきたい！&lt;br /&gt;
&lt;br /&gt;
原発のニュースが、当初に比べて少なくなってきたのが気がかり。&lt;br /&gt;
情報を提供しすぎて整理できない視聴者が増えたから自粛したのか? 視聴者が飽きたと判断されたのか?&lt;br /&gt;
&lt;br /&gt;
ネット環境がある私としては、具体的な数値や、何の機器が壊れていて計測できないのか の事実だけでもいいのでタンタンと報告してほしいと思う。&lt;br /&gt;
&lt;br /&gt;
追記:公開されているデータ&lt;br /&gt;
文部科学省 全国の放射線モニタリング状況 &lt;a href="http://www.mext.go.jp/"&gt;http://www.mext.go.jp/&lt;/a&gt;&lt;br /&gt;
東京電力 福島第一・第二原子力発電所モニタリングによる計測状況 &lt;a href="http://www.tepco.co.jp/nu/monitoring/index-j.html"&gt;http://www.tepco.co.jp/nu/monitoring/index-j.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
政府が事実を隠蔽してしまう というのは世界中見ても常に発生しうる事であって、基本的にはみんな心からは信用していないと思う。&lt;br /&gt;
「大丈夫」とか「大丈夫でない」というのも、判断する人によって変わるだろうし、受け取り側の立場によっても違う。&lt;br /&gt;
まぁ、数値まで手を加えられていたら判断しようがないですけど、常に報告している数字が突然変わったり、報告がなくなったりする状態になれば、注意深く見ないとという判断ができる。&lt;br /&gt;
&lt;br /&gt;
家に帰ると、最新ニュースはないかを確認するためTVをつける日々なのですが、最近、ニュース番組も減ってしまったので、情報が入りにくい。&lt;br /&gt;
情報が欲しいときに、ピンポイントの情報が入りにくいというのはTVのデメリット。&lt;br /&gt;
&lt;br /&gt;
こういう事って、原発に限らず普段でも一緒ですね。&lt;br /&gt;
例えば、仕事についても。現場の人ではなく、プロジェクト管理者やエンドユーザーから見た観点と同じ感じ。&lt;br /&gt;
&lt;br /&gt;
来週から通常出勤になる会社も多いかと思うので、また電力が足りなくなったための、突発的な停電、電車本数の減少が有ると思いますので、無理せず余裕のある生活をおくりましょう。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-8540737871743171231?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Gq_vo-SMJL187LieOk_xZDgKEdc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Gq_vo-SMJL187LieOk_xZDgKEdc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Gq_vo-SMJL187LieOk_xZDgKEdc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Gq_vo-SMJL187LieOk_xZDgKEdc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/hqz-SRMF4G8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/8540737871743171231/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=8540737871743171231" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/8540737871743171231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/8540737871743171231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/hqz-SRMF4G8/10.html" title="東日本大震災 10日目" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/03/10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cFR3s-cCp7ImA9WhZTEE4.&quot;"><id>tag:blogger.com,1999:blog-7793912485391197584.post-4308104715318982808</id><published>2011-03-14T02:56:00.000+09:00</published><updated>2011-03-14T02:56:56.558+09:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-14T02:56:56.558+09:00</app:edited><title>東日本大震災</title><content type="html">阪神・淡路大震災の時は大阪にいて、今回は東京にいる...という、被災地とは呼べないが、部屋の中が散らかったぐらいの位置に暮らしています。&lt;br /&gt;
被災者の方々が少しでも早くに安心して暮らせるように祈るのみです。&lt;br /&gt;
&lt;br /&gt;
東京の状況はニュースにはでないと思うので、思い出すかぎり淡々と書いてみようかと思います。&lt;br /&gt;
&lt;br /&gt;
大きく揺れたがどれくらいの規模なのかが分からない。事務所にはテレビがない。&lt;br /&gt;
NHKがUSTしてくれたおかげで惨状を知る。&lt;br /&gt;
電話は全く通じないが、ネットは大丈夫。twitterも大丈夫。有り難い。&lt;br /&gt;
電車は無理だと判断して歩く決心をする。&lt;br /&gt;
16:30会社を出る。&lt;br /&gt;
&lt;br /&gt;
交通網が崩れると大変な事になる東京。&lt;br /&gt;
まともに歩けないぐらいの人の多さがずっと家まで続く。&lt;br /&gt;
家の前でさえ、集団でひたすら歩く人達の波&amp;車の渋滞は夜半過ぎまで続いていた。&lt;br /&gt;
自転車屋さんには自転車を買う人々で長蛇の列ができていた。かしこい。&lt;br /&gt;
こんな東京見た事ない....&lt;br /&gt;
&lt;br /&gt;
コンビニではまとめ買いをする人々。食料品の商品棚は18時くらいでほぼ無くなる。&lt;br /&gt;
家には、帰れなかった人達が集まり、ひたすらテレビを見る。&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Y7c-6qgM0I8/TXz8dZShjWI/AAAAAAAAAfw/54ulRf-IZsk/s1600/photo%2B%25282%2529.JPG" imageanchor="1" style=""&gt;&lt;img border="0" height="239" width="320" src="http://1.bp.blogspot.com/-Y7c-6qgM0I8/TXz8dZShjWI/AAAAAAAAAfw/54ulRf-IZsk/s320/photo%2B%25282%2529.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
電車の復旧は思ったより早く、終電時間ぐらいでポツポツ復旧した電車が出てきた。&lt;br /&gt;
その電車に並ぶ人達の数は数百人を超え、東京にはこんなに人がいるのだと改めて実感。&lt;br /&gt;
そんな状況なのに整然と並ぶ人達。譲り合う人達。&lt;br /&gt;
徹夜で復旧をし稼働して頂いた鉄道インフラの方々に感謝。&lt;br /&gt;
&lt;br /&gt;
24時間コンビニ、スーパーは、早々に閉まっていた。&lt;br /&gt;
売れる食料がもう無くなったためだろう。。&lt;br /&gt;
&lt;br /&gt;
なか卯は、食料はないがお茶は出せる。休憩にどうぞ の張り紙が。&lt;br /&gt;
帰宅困難者に向けて、ホテルなどが場所を提供している。&lt;br /&gt;
心温まる。&lt;br /&gt;
&lt;br /&gt;
翌日&lt;br /&gt;
朝10時にスーパーの開店と同時に行ってみる。&lt;br /&gt;
地震当日は早々に閉まってしまったスーパーだったため、豊富に食料があるのに安心。&lt;br /&gt;
安心しすぎて買いだめをしなかった。(後で後悔)&lt;br /&gt;
&lt;br /&gt;
テレビのニュースに釘付け。ニュースみていないと落ち着かない。&lt;br /&gt;
なにも作業をしない日になった&lt;br /&gt;
&lt;br /&gt;
翌日&lt;br /&gt;
お店は空いている店があるが、品薄の張り紙が多い。&lt;br /&gt;
スーパーは品切れ多発。&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VQEIg9ZrVfw/TX0BXEz2LJI/AAAAAAAAAf4/nxys9Tmmhk4/s1600/photo%2B%25281%2529.JPG" imageanchor="1" style=""&gt;&lt;img border="0" height="239" width="320" src="http://2.bp.blogspot.com/-VQEIg9ZrVfw/TX0BXEz2LJI/AAAAAAAAAf4/nxys9Tmmhk4/s320/photo%2B%25281%2529.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
被災地優先にして欲しいからしょうがないと思うのだが、お米が全然売っていないのを見るとなんだか焦った。やっぱり私は日本人。&lt;br /&gt;
しょうがないので、少し残っていたパスタを購入。&lt;br /&gt;
&lt;br /&gt;
なにが起こるか分からないので、お水を貯めた。 &lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Ob6zHG1F02w/TX0CPmHy6GI/AAAAAAAAAgA/ewo453lW16A/s1600/photo.JPG" imageanchor="1" style=""&gt;&lt;img border="0" height="239" width="320" src="http://4.bp.blogspot.com/-Ob6zHG1F02w/TX0CPmHy6GI/AAAAAAAAAgA/ewo453lW16A/s320/photo.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
明日は計画停電があるらしい。&lt;br /&gt;
私の家は停電地区に含まれていなかったが、突然決まった事なので何がおこるか分からない。&lt;br /&gt;
停電になったら、何が使えないかを考えていたら、気づかず電気に頼っているのが良く分かる。&lt;br /&gt;
&lt;br /&gt;
まだまだ余震も続く。&lt;br /&gt;
明日はどうなるのだろう。せめて晴れていてほしい。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7793912485391197584-4308104715318982808?l=aqubiblog.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a9sk2Wnkv7lCVrCL3SHuOlTkQoo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a9sk2Wnkv7lCVrCL3SHuOlTkQoo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a9sk2Wnkv7lCVrCL3SHuOlTkQoo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a9sk2Wnkv7lCVrCL3SHuOlTkQoo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/xlqaM/~4/8_gQPVlWDAY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://aqubiblog.blogspot.com/feeds/4308104715318982808/comments/default" title="コメントの投稿" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=7793912485391197584&amp;postID=4308104715318982808" title="0 件のコメント" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4308104715318982808?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7793912485391197584/posts/default/4308104715318982808?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/xlqaM/~3/8_gQPVlWDAY/blog-post_14.html" title="東日本大震災" /><author><name>aqubi</name><uri>http://www.blogger.com/profile/02007721538597371919</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://4.bp.blogspot.com/_ISBSdcIOzRU/SPttXT1FAiI/AAAAAAAAALw/P3AGw3PQhC8/S220/usa200.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-Y7c-6qgM0I8/TXz8dZShjWI/AAAAAAAAAfw/54ulRf-IZsk/s72-c/photo%2B%25282%2529.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://aqubiblog.blogspot.com/2011/03/blog-post_14.html</feedburner:origLink></entry></feed>

