<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>merge hatena group</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=TssmX7bb2xGYLar_l7okhQ</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=TssmX7bb2xGYLar_l7okhQ&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 23:05:42 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>storyboard 上で作った Container view で追加した childViewController を restoration したい場合</title>
         <link>http://iphone-dev.g.hatena.ne.jp/ktakayama/20150318/1426666700</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ベースとなる ViewController 内で encodeObject するだけでなんだかうまくいくようだ。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;) encodeRestorableStateWithCoder:(NSCoder *)coder {
    [&lt;span class=&quot;synStatement&quot;&gt;super&lt;/span&gt; encodeRestorableStateWithCoder:coder];

    UIViewController *viewController = &lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;.childViewControllers[&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;];
    [coder encodeObject:viewController forKey:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;viewController&amp;quot;&lt;/span&gt;];
}

&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;) decodeRestorableStateWithCoder:(NSCoder *)coder {
    [&lt;span class=&quot;synStatement&quot;&gt;super&lt;/span&gt; decodeRestorableStateWithCoder:coder];
}
&lt;/pre&gt;

			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 18 Mar 2015 08:18:20 +0000</pubDate>
      </item>
      <item>
         <title>iOS7対応でstatusBarHiddenが機能しなくなったら</title>
         <link>http://iphone-dev.g.hatena.ne.jp/horigood/20141028/1414507148</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;propertiesに View controller-based status bar appearance を追加して NO に設定。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 28 Oct 2014 14:39:08 +0000</pubDate>
      </item>
      <item>
         <title>iCloud + CoreData の動作でわかんないことがあるんで整理</title>
         <link>http://iphone-dev.g.hatena.ne.jp/ktakayama/20141016/1413450620</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;iCloud + CoreData でデータベーススキーマの更新が思う通りにいかない。そもそも根本的な理解が足りない部分があるのかなあ。まとめるために書きなぐり。&lt;/p&gt;
			&lt;p&gt;スキーマを更新したい場合はLightweight Migrationだけ対応してるってことで、これはデータモデルの「Add Model Version」をしてModel VersionのCurrentのところを変更するっていう、普通にCoreDataを使っている場合にもやるやり方だと思うんだけど…。&lt;/p&gt;
			&lt;blockquote title=&quot;Using the SQLite Store with iCloud &quot; cite=&quot;https://developer.apple.com/library/mac/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/UsingSQLiteStoragewithiCloud/UsingSQLiteStoragewithiCloud.html#//apple_ref/doc/uid/TP40013491-CH3-SW9&quot;&gt;
			&lt;p&gt;When you use the SQLite store with iCloud, the store supports only lightweight migration.&lt;/p&gt;
			&lt;cite&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://developer.apple.com/library/mac/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/UsingSQLiteStoragewithiCloud/UsingSQLiteStoragewithiCloud.html#//apple_ref/doc/uid/TP40013491-CH3-SW9&quot;&gt;Using the SQLite Store with iCloud &lt;/a&gt;&lt;/cite&gt;&lt;/blockquote&gt;
			&lt;p&gt;これだけだとデバイス間の同期が期待通りに行なわれない。&lt;/p&gt;
			&lt;p&gt;具体的には&lt;/p&gt;
			&lt;ol&gt;
				&lt;li&gt; デバイスAで登録した内容をデータAとする&lt;/li&gt;
				&lt;li&gt; デバイスBで登録した内容をデータBとする&lt;/li&gt;
				&lt;li&gt; この段階ではデバイスA・BでそれぞれデータA・Bが両方表示されていて、同期も問題なく超いい感じ&lt;/li&gt;
				&lt;li&gt; デバイスAで、スキーマを変更したアプリにアップデートすると、データAのみ表示される、データB（他のデバイスで登録した内容）はどっかいって戻ってこない&lt;/li&gt;
				&lt;li&gt; デバイスBでアプリをアップデートすると、デバイスAにデータBが戻ってくる&lt;/li&gt;
				&lt;li&gt; 以降はデバイスA・Bで同一の内容が同期される&lt;/li&gt;
			&lt;/ol&gt;
			&lt;p&gt;つまり、片方のデバイスを失くすと、そのデバイスで登録した内容も一緒に失われる状態。悲しい。&lt;/p&gt;
			&lt;p&gt;iCloud内のデータ(Macだと~/Library/Mobile Documents/)を見たりして、いま理解できているのは&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; iCloud上には、データベースのトランザクションログが記録される&lt;/li&gt;
				&lt;li&gt; ログが格納されるフォルダは、「デバイス固有のUUID(?)/NSPersistentStoreUbiquitousContentNameKeyで指定した名前/データベースモデルのハッシュ」みたいな感じ&lt;/li&gt;
				&lt;li&gt; → ようするに、デバイス毎＋データベースのバージョン毎に別々にトランザクションログが記録される&lt;/li&gt;
				&lt;li&gt; iCloud+CoreDataの同期の実装は、他のデバイスのトランザクションログをダウンロードしてきてローカルに適用する形&lt;/li&gt;
				&lt;li&gt; → ただし、適用するのはデータベースモデルのハッシュが同じものに限る&lt;/li&gt;
				&lt;li&gt; モデルの内容を変更したアプリを実行すると、データベースモデルのハッシュが変わり、そのデバイスで使うiCloud上のログ格納ディレクトリも新しく作られる&lt;/li&gt;
				&lt;li&gt; → その実行したデバイスで登録したトランザクションログに限って、この時作られる新しいフォルダにコピーされる&lt;/li&gt;
				&lt;li&gt; 新しいデータモデルに対応したアプリを実行しないと、そっちのデバイスで使っているiCloud上のトランザクションログの格納フォルダは古いまま更新されない&lt;/li&gt;
				&lt;li&gt; → [4]でデータが失われたのも、他のデバイスではモデルのバージョンが古いからくさい。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;トランザクションログを一箇所にまとめることはできないのか？または他のデバイスのモデルのバージョンが古くても同期する方法はないのか。ようわからん。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 16 Oct 2014 09:10:20 +0000</pubDate>
      </item>
      <item>
         <title>iOS7でdeprecatedになっていたメソッド</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sohei/20140111/p1</link>
         <description>とても久しぶりに・・・。  UIImagePickerControllerのメソッド   (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo  は非推奨になっているので、こちらを使う。   (void)imagePickerController:(UIImagePickerCon ...</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 10 Jan 2014 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>Qiitaを使うのがいいかなあ</title>
         <link>http://iphone-dev.g.hatena.ne.jp/ktakayama/20131218/1387337958</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;というわけで、このまえ書いたEKReminderのメモの続きとなるもの？をQiitaに投稿してみた。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://qiita.com/takayama/items/0fbf8d367844a6f2c944&quot;&gt;Objective-C - EventKitのリマインダーを使う方法 - Qiita&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;技術的なものはQiitaを使うのが情報がまとまってていい感じなのかなあ。hatena.vimみたいにvimで投稿できるものはあるかな。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 18 Dec 2013 03:39:18 +0000</pubDate>
      </item>
      <item>
         <title>EKReminderのメモ</title>
         <link>http://iphone-dev.g.hatena.ne.jp/ktakayama/20131213/1386929951</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;リマインダーアプリのデータを取ってこれるEKReminderについてのメモ。こんど簡単に使い方とかまとめたいのだけど、とりあえず今日調べたことについて書いておく。&lt;/p&gt;
			&lt;p&gt;EKReminderにはdueDateComponentsていうプロパティがあって、これとalarmsっていういかにも通知に使いそうなプロパティがあるんだけど、リマインダーアプリの編集画面には「通知」という項目しかないのでどうなってるのか気になった次第。&lt;/p&gt;
			&lt;p&gt;EKEventStoreでリマインダーデータを登録して、アプリでどんな感じで表示されるのか調べた。調べてる最中。&lt;/p&gt;
			&lt;ol&gt;
				&lt;li&gt; 期限(dueDateComponents)+アラーム(addAlarm)の両方を指定した場合&lt;/li&gt;
				&lt;li&gt; アラームのみ指定した場合&lt;/li&gt;
				&lt;li&gt; 期限のみ指定した場合&lt;/li&gt;
				&lt;li&gt; 期限で日付のみ指定した場合&lt;/li&gt;
				&lt;li&gt; 期限+アラームで時間が異なる場合&lt;/li&gt;
			&lt;/ol&gt;
			&lt;p&gt;iOS7とMac(Mavericks)のリマインダーアプリとicloud.comのリマインダー、3種類共にリストには「期限」の日時が表示される。Macの場合は[2]のアラームのみ指定の場合にアラームの日時が表示された。&lt;/p&gt;
			&lt;p&gt;編集画面では「通知」という名前でアラームに指定した内容が編集できるようになっていて、基本的に「期限」は編集できない。ただし、アラームと期限の時刻が異なる場合は両方編集できる。期限のみ指定されてる場合は、編集画面で通知を登録すると期限がどっかに消える。&lt;/p&gt;
			&lt;p&gt;Macとicloud.comのリマインダーの場合は、アラームのみ指定の場合に期限が編集できる。&lt;/p&gt;
			&lt;p&gt;なんだかまとまりがないけどこんな感じ。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/EventKitProgGuide/Introduction/Introduction.html&quot;&gt;Calendar and Reminders Programming Guide&lt;/a&gt; にはリマインダーのことについてさらっとしか書いてなくてどう使えばいいのかまでは書いてない。&lt;/p&gt;
			&lt;p&gt;もしかすると「最初はdueDateComponentsとアラームに同じ時間を登録する」→「期限がやってきて通知された」→「オプションで&quot;×分後に再通知&quot;を選択」という操作をするとdueDateComponentsとアラームが違う値になりそう。試してみたら実際にそのようになった。ので、リマインダーを編集する際は基本dueDateComponentsとアラームと同じにする、というのがリマインダーアプリと同じような動きにする秘訣かも。&lt;/p&gt;
			&lt;p&gt;そうそう、問題はdueDateComponentsに日付のみを指定した場合だ。リマインダーアプリから編集する場合は時間が必須でどうにもならんのだけど、EventKit直接触る場合はそうでもない。実際にドキュメントのdueDateComponentsの所に「時間指定をしなかった場合はall-dayのリマインダーになる」と書いてある。ただこのall-dayになったリマインダーをリマインダーアプリでいじるとall-dayな情報が消えちゃったかも。この辺はまだ検証していない。ちなみに時刻指定をしない場合は-(BOOL)allDayを呼ぶとYESが返ってきます。undocumentedですががが。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 13 Dec 2013 10:19:11 +0000</pubDate>
      </item>
      <item>
         <title>iOS7対応でUINavigationbarの高さを64にする方法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/horigood/20130914/1379179562</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;既知のことかも知れんけど、ググっても分からず、自分で見つけたのでメモ。&lt;/p&gt;
			&lt;p&gt;1. Interface Builderの Interface Builder Document &amp;gt; view as をiOS6.1 and Earlier に変更&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/horigood/20130915022056&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/h/horigood/20130915/20130915022056.png&quot; alt=&quot;f:id:horigood:20130915022056p:image&quot; title=&quot;f:id:horigood:20130915022056p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;2. iOS6/7 Deltas の height を +20 に。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/horigood/20130915022057&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/h/horigood/20130915/20130915022057.png&quot; alt=&quot;f:id:horigood:20130915022057p:image&quot; title=&quot;f:id:horigood:20130915022057p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;3.  Interface Builderの Interface Builder Document &amp;gt; view as をiOS7.0 and Later に戻す（これでUINavigationbarのheightが64に変わる）&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/horigood/20130915022058&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/h/horigood/20130915/20130915022058.png&quot; alt=&quot;f:id:horigood:20130915022058p:image&quot; title=&quot;f:id:horigood:20130915022058p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;4. iOS6での表示を変更するために iOS6/7 Deltas を調整（AutoLayout未使用）&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/horigood/20130915022059&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/h/horigood/20130915/20130915022059.png&quot; alt=&quot;f:id:horigood:20130915022059p:image&quot; title=&quot;f:id:horigood:20130915022059p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 14 Sep 2013 17:26:02 +0000</pubDate>
      </item>
      <item>
         <title>独自UTIを使用したファイル共有の方法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/noborunrun/20130823</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;独自のファイル形式なり、拡張子なりを特定のアプリで開きたい。とか思った時に調べたので記載しておく。&lt;/p&gt;
			&lt;p&gt;受け取り側で指定した独自UTIがシステムに保持されて、UIDocumentInteractionControllerなどで拡張子を指定すると受け取り側アプリが候補に上がるようになる。&lt;/p&gt;
			&lt;p&gt; 受け取る側の実装&lt;/p&gt;
			&lt;p&gt; info.plistに下記の設定をする&lt;/p&gt;
			&lt;p&gt; Export UTIs&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;		&amp;lt;key&amp;gt;UTExportedTypeDeclarations&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;array&amp;gt;&lt;/p&gt;
			&lt;p&gt;					&amp;lt;dict&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;key&amp;gt;UTTypeConformsTo&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;array&amp;gt;&lt;/p&gt;
			&lt;p&gt;							&amp;lt;string&amp;gt;public.item&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;/array&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;key&amp;gt;UTTypeDescription&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;string&amp;gt;my document type&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;key&amp;gt;UTTypeIdentifier&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;string&amp;gt;com.mycompany.myfiletypename&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;key&amp;gt;UTTypeTagSpecification&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;dict&amp;gt;&lt;/p&gt;
			&lt;p&gt;							&amp;lt;key&amp;gt;public.filename-extension&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;							&amp;lt;array&amp;gt;&lt;/p&gt;
			&lt;p&gt;								&amp;lt;string&amp;gt;ns&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;							&amp;lt;/array&amp;gt;&lt;/p&gt;
			&lt;p&gt;						&amp;lt;/dict&amp;gt;&lt;/p&gt;
			&lt;p&gt;					&amp;lt;/dict&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;/array&amp;gt;&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;XMLで書くとUIExportedTypeDeclarationsというキーの中に追加したいタイプ分のarrayを作成してその中にディクショナリを入れる。&lt;/p&gt;
			&lt;p&gt;ディクショナリの各項目は&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; UTTYpeConformsTo&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	UTTypeの指定を配列で行う。今回の場合はpublicの一番上の階層であるitemを指定した。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; UTTypeDescription&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	ExportするUTIのTypeの説明文を入れる。&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; UTTypeIdentifier&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	他とかぶらないようにしたこのUTI TypeのiDentifierを入れる。&lt;/p&gt;
			&lt;p&gt;	ドメインとかUserDefaultsに入れるような定義をすればよい。&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; UTTypeTagSpecification&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	拡張子など、ExportするUTIが持つタグをディクショナリで指定する。&lt;/p&gt;
			&lt;p&gt;	ディレクトリに入れるキーは拡張子の場合はpublic.filename-extensionを指定して、その値に配列で登録したい個数分の拡張子を文字列で指定する。&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;GUIで項目を追加すると下記の図のような形となる。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/noborunrun/20130824022442&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/n/noborunrun/20130824/20130824022442.png&quot; alt=&quot;f:id:noborunrun:20130824022442p:image&quot; title=&quot;f:id:noborunrun:20130824022442p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt; Document Types&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;		&amp;lt;key&amp;gt;CFBundleDocumentTypes&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;		&amp;lt;array&amp;gt;&lt;/p&gt;
			&lt;p&gt;			&amp;lt;dict&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;key&amp;gt;CFBundleTypeIconFiles&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;array&amp;gt;&lt;/p&gt;
			&lt;p&gt;					&amp;lt;string&amp;gt;document-320.png&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;					&amp;lt;string&amp;gt;document-64.png&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;					&amp;lt;string&amp;gt;nsicon&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;/array&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;key&amp;gt;CFBundleTypeName&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;string&amp;gt;My file&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;key&amp;gt;CFBundleTypeRole&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;string&amp;gt;Viewer&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;key&amp;gt;LSHandlerRank&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;string&amp;gt;Alternate&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;key&amp;gt;LSItemContentTypes&amp;lt;/key&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;array&amp;gt;&lt;/p&gt;
			&lt;p&gt;					&amp;lt;string&amp;gt;com.mycompany.myfiletypename&amp;lt;/string&amp;gt;&lt;/p&gt;
			&lt;p&gt;				&amp;lt;/array&amp;gt;&lt;/p&gt;
			&lt;p&gt;			&amp;lt;/dict&amp;gt;&lt;/p&gt;
			&lt;p&gt;		&amp;lt;/array&amp;gt;&lt;/p&gt;
			&lt;p&gt;XMLで書くとCFBundleDocumentTypesというキーの中に追加したいType分の配列を作成してその中にディクショナリを入れる。&lt;/p&gt;
			&lt;p&gt;ディクショナリの各項目は&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; CFBundleTypeIconFiles&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	使いたいアイコン画像を配列で指定する。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; CFBundleTypeName&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	Typeの名前を指定する。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; CFBundleTypeRole&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	Typeの役割を指定する。今回はViewerとした。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; LSHandlerRank&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	アプリがこのドキュメントタイプをどの程度サポートしているかを示すランク。&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	優先度が高い方から&lt;/p&gt;
			&lt;p&gt;	- Owner&lt;/p&gt;
			&lt;p&gt;	- Alternate&lt;/p&gt;
			&lt;p&gt;	- None&lt;/p&gt;
			&lt;p&gt;	- Default&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;	の順となる。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; LSItemContentTypes&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;	サポートするUTI形式の文字列を配列で入れる。今回の場合はcom.mycompany.myfiletypenameをExport UTIsで指定していてそれを開きたいため、UTTypeIdentifierで入れたものと同じものを入れる。&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;GUIでは下記の図のような形となる。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/noborunrun/20130824022443&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/n/noborunrun/20130824/20130824022443.png&quot; alt=&quot;f:id:noborunrun:20130824022443p:image&quot; title=&quot;f:id:noborunrun:20130824022443p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;	&lt;/p&gt;
			&lt;p&gt;		&lt;/p&gt;
			&lt;p&gt;送る側の実装&lt;/p&gt;
			&lt;p&gt;受渡したいファイルなどを先にプロジェクトに追加するなりの用意をして、ボタンアクションなどで下記のようなコードを記載する。今回はサンプルにsample.nsというファイルを送ってみることにする。&lt;/p&gt;
			&lt;p&gt;	NSURL* url = NSBundle mainBundle] URLForResource:@&quot;sample&quot; withExtension:@&quot;ns&quot;];&lt;/p&gt;
			&lt;p&gt;    docInteractionCon = [UIDocumentInteractionController interactionControllerWithURL:url];&lt;/p&gt;
			&lt;p&gt;    docInteractionCon.delegate = self;&lt;/p&gt;
			&lt;p&gt;    if ([docInteractionCon presentOptionsMenuFromRect:self.view.frame inView:self.view animated:YES]){&lt;/p&gt;
			&lt;p&gt;    }&lt;/p&gt;
			&lt;p&gt;    else{&lt;/p&gt;
			&lt;p&gt;        NSLog(@&quot;There is no app for this file.&quot;);&lt;/p&gt;
			&lt;p&gt;    }&lt;/p&gt;
			&lt;p&gt;受け取り側で登録したDocument Typesの中のLSItemContentTypesに指定した拡張子のファイルパスを取得して[UIDocumentInteractionController interactionControllerWithURL:]に渡してdocumentInteractionControllerを開けば受け取り側のアプリのアイコンが表示される。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 22 Aug 2013 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>近況報告とか紹介とか</title>
         <link>http://iphone-dev.g.hatena.ne.jp/noborunrun/20130408#1365410341</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ご無沙汰しております。&lt;/p&gt;
			&lt;p&gt;ブログ書きたいといってからはや年月。いかがお過ごしでしょうか？&lt;/p&gt;
			&lt;p&gt;といって、書く内容が宣伝なんですがね。&lt;/p&gt;
			&lt;p&gt;まずは近況（というか、すでにだいぶ前のこと）報告。&lt;/p&gt;
			&lt;p&gt;・FilmTrackrバージョンアップ&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://yanagisawano.sakura.ne.jp/wp/wp-content/uploads/2012/01/iTunesArtwork.png&quot;&gt;&lt;img width=&quot;128&quot; alt=&quot;iTunesArtwork&quot; src=&quot;http://yanagisawano.sakura.ne.jp/wp/wp-content/uploads/2012/01/iTunesArtwork-128x96.png&quot; class=&quot;alignnone size-thumbnail wp-image-499&quot; height=&quot;96&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;　色々と機能追加したバージョンアップをして、リリース出来ました。&lt;/p&gt;
			&lt;p&gt;　PVとかもつくったよ！&lt;/p&gt;
			&lt;p&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://vimeo.com/51990704&quot;&gt;https://vimeo.com/51990704&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;　デジカメウォッチさんに載せてもらったよ！&lt;/p&gt;
			&lt;p&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dc.watch.impress.co.jp/docs/news/20120105_502725.html&quot;&gt;http://dc.watch.impress.co.jp/docs/news/20120105_502725.html&lt;/a&gt;（最初）&lt;/p&gt;
			&lt;p&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dc.watch.impress.co.jp/docs/news/20121120_574149.html&quot;&gt;http://dc.watch.impress.co.jp/docs/news/20121120_574149.html&lt;/a&gt;（今回バージョン）&lt;/p&gt;
			&lt;p&gt;　AppStore&lt;/p&gt;
			&lt;p&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://itunes.apple.com/jp/app/filmtrakr/id489198234?mt=8&quot;&gt;https://itunes.apple.com/jp/app/filmtrakr/id489198234?mt=8&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;　&lt;/p&gt;
			&lt;p&gt;ところで、iPhoneアプリ作ってみたいなーとかいう方向けにスクールができるらしいので、ご興味があればいかがですか？&lt;/p&gt;
			&lt;p&gt;プログラミングとか敷居が高いなーって思ってるところを取っ払ってくれるそうです。&lt;/p&gt;
			&lt;p&gt;多分、iPhone開発に興味があったり、仕事でiPhoneアプリ開発のメンバーになったけどプログラマが何するのかよくわからないなーっていうデザイナさんとか、こんなことやってるんだーって理解ができていいのでは？という内容だと思います。&lt;/p&gt;
			&lt;p&gt;初回が説明会が今週末の4月13日（土）午後2時くらいから渋谷であるみたいなので、ご興味があればぜひ！&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://yanagisawano.sakura.ne.jp/wp/wp-content/uploads/2013/04/0413_pr.pdf&quot;&gt;&lt;img width=&quot;620&quot; alt=&quot;0413_pr&quot; src=&quot;http://yanagisawano.sakura.ne.jp/wp/wp-content/uploads/2013/04/0413_pr.png&quot; class=&quot;alignnone size-full wp-image-514&quot; height=&quot;877&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;そして、信頼のあのメンバーによるiOS6の開発本が発刊されました。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/gp/product/4844333852/ref=s9_newr_gw_d54_g14_ir02?pf_rd_m=AN1VRQENFRJN5&amp;pf_rd_s=center-6&amp;pf_rd_r=1EAJRB1X25KJYEGGT1C1&amp;pf_rd_t=101&amp;pf_rd_p=463376716&amp;pf_rd_i=489986&quot; title=&quot;iPhone&amp;#x0030a2;&amp;#x0030d7;&amp;#x0030ea;&amp;#x00958b;&amp;#x00767a;&amp;#x0030a8;&amp;#x0030ad;&amp;#x0030b9;&amp;#x0030d1;&amp;#x0030fc;&amp;#x0030c8;&amp;#x0030ac;&amp;#x0030a4;&amp;#x0030c9;&quot;&gt;&lt;img alt=&quot;jpeg&quot; src=&quot;http://ec2.images-amazon.com/images/I/51duZGlK7IL._SS500_.jpg&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;本屋さんで見かけたら買いましょう。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 08 Apr 2013 08:39:01 +0000</pubDate>
      </item>
      <item>
         <title>NSThreadとUIAlertView</title>
         <link>http://iphone-dev.g.hatena.ne.jp/horigood/20130302/1362192164</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;自分用覚え書き。&lt;/p&gt;
			&lt;p&gt;メイン以外のスレッドでタスクを実行、完了後&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;内で、UIAlertVIewを直接showするとクラッシュする。&lt;/p&gt;
			&lt;p&gt;ので、下記を使用のこと。&lt;/p&gt;
			&lt;p&gt;[self performSelectorOnMainThread:@selector(showAlert:) withObject:object waitUntilDone:NO];&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 02 Mar 2013 02:42:44 +0000</pubDate>
      </item>
      <item>
         <title>iOS6になってMapKitのAnnotationViewの上にオーバーレイが出るようになった</title>
         <link>http://iphone-dev.g.hatena.ne.jp/noborunrun/20121002#1349160326</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;iOS6のMapKit絡みでもう一個。&lt;/p&gt;
			&lt;p&gt;どうやら、MKMapViewの構造が変わってAnnotationViewとOverlayViewの位置が変わったみたい。&lt;/p&gt;
			&lt;p&gt;で、オーバーレイしてるとそのしたにアノテーションが表示されちゃう。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/noborunrun/20121002153555&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/n/noborunrun/20121002/20121002153555.png&quot; alt=&quot;f:id:noborunrun:20121002153555p:image:left&quot; title=&quot;f:id:noborunrun:20121002153555p:image:left&quot; class=&quot;hatena-fotolife hatena-image-left&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;●iOS４・iOS５  &lt;/p&gt;
			&lt;p&gt;&amp;lt;MKMapView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| &amp;lt;UIView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | &amp;lt;MKScrollView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | | &amp;lt;MKMapTileView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | | &amp;lt;MKAnnotationContainerView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| &amp;lt;UIImageView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;  &lt;/p&gt;
			&lt;p&gt;●iOS６    &lt;/p&gt;
			&lt;p&gt;&amp;lt;MKMapView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| &amp;lt;UIView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | &amp;lt;VKMapView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | | &amp;lt;VKMapCanvas&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | &amp;lt;MKScrollContainerView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | | &amp;lt;MKAnnotationContainerView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | | | &amp;lt;UIImageView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| | | | &amp;lt;MKPinAnnotationView&amp;gt;  &lt;/p&gt;
			&lt;p&gt;| &amp;lt;MKAttributionLabel&amp;gt;  &lt;/p&gt;
			&lt;p&gt;調査の結果、オーバーレイはUIViewで作成してMapkitのViewにaddSubview:してた。&lt;/p&gt;
			&lt;p&gt;まぁ、そうなるよね。という結果でした。&lt;/p&gt;
			&lt;p&gt;ちなみにiOS6ではここに入れれば問題ない。&lt;/p&gt;
			&lt;p&gt;[mapView subviews] objectAtIndex:0] subviews] objectAtIndex:0] addSubview:self];&lt;/p&gt;
			&lt;p&gt;それ以前は今調べてるとこ。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 02 Oct 2012 06:45:26 +0000</pubDate>
      </item>
      <item>
         <title>iOS6になってMapKitのAnnotationViewのrightCalloutAccessoryViewでUIButtonが表示されなくなった時の対処法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/noborunrun/20121001#1349122433</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;UIViewとかUIImageViewとか入れてみるとちゃんと出る。UIButtonだけButtonTypeどれにしても出なかった。&lt;/p&gt;
			&lt;p&gt;ドキュメント見ると、&lt;/p&gt;
			&lt;p&gt;&amp;gt;&amp;gt;This property is set to nil by default. The right callout view is typically used to link to more detailed information about the annotation. The height of your view should be 32 pixels or less. A common view to specify for this property is UIButton object whose type is set to UIButtonTypeDetailDisclosure.&lt;/p&gt;
			&lt;p&gt;って書いてある。&lt;/p&gt;
			&lt;p&gt;ってかいてあ、、、&lt;/p&gt;
			&lt;p&gt;UIButtonのFrameを32で指定してみたらでた。&lt;/p&gt;
			&lt;p&gt;    //    annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];&lt;/p&gt;
			&lt;p&gt;これを、こうした。&lt;/p&gt;
			&lt;p&gt;    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];&lt;/p&gt;
			&lt;p&gt;    [aButton setFrame:CGRectMake(0, 0, 32, 32)];&lt;/p&gt;
			&lt;p&gt;    annotationView.rightCalloutAccessoryView = aButton;&lt;/p&gt;
			&lt;p&gt;もともとのやり方がひどすぎたって話なのかもしれないけども。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 01 Oct 2012 20:13:53 +0000</pubDate>
      </item>
      <item>
         <title>SongsInfo-3.0.0 をリリースしました。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sawat/20120918/1347981992</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20120919001827&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20120919/20120919001827.png&quot; alt=&quot;f:id:sawat:20120919001827p:image&quot; title=&quot;f:id:sawat:20120919001827p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/jp/app/songsinfo/id428766423?mt=8&quot;&gt;App Storeへ&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;今回のリリースの目玉機能として、再生回数のランキング表示機能を追加しました。&lt;/p&gt;
			&lt;p&gt;再生回数の他にも、累積再生時間（=再生回数×曲の長さ）のランキングも表示できます。&lt;/p&gt;
			&lt;p&gt;再生回数と累積再生時間のランキングは、曲、アルバム、アーティストの単位で上位100位までです。&lt;/p&gt;
			&lt;p&gt;僕のiPhoneのアルバムごとの再生回数上位はこんな感じ。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20120919001825&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20120919/20120919001825.png&quot; alt=&quot;f:id:sawat:20120919001825p:image&quot; title=&quot;f:id:sawat:20120919001825p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;andymoriばっかりですね...(^^;)&lt;/p&gt;
			&lt;p&gt;ほら、andymoriってさ、曲が短いから。。。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;その他の変更点は以下の通り&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;累積再生時間の表示を追加しました。&lt;/li&gt;
				&lt;li&gt;歌詞などの詳細表示の画面に、現在再生中の曲名、アーティスト名、アートワークが表示されるようにしました。&lt;/li&gt;
				&lt;li&gt;iOS5以降では端末に登録されているTwitterアカウントを使用するようにしました。&lt;/li&gt;
				&lt;li&gt;ツイートにアートワークを添付できるようにしました（iOS5以降のみ)&lt;/li&gt;
				&lt;li&gt;アイコン等のグラフィックを変更しました。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;ちなみに、iPhone 5 の縦長画面対応はまだです。追ってやります。&lt;/p&gt;
			&lt;h4&gt;追記 2012/10/02&lt;/h4&gt;
			&lt;p&gt;ver 3.1.0 として4インチの縦長画面対応リリースしました。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/sawat/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 18 Sep 2012 15:26:32 +0000</pubDate>
      </item>
      <item>
         <title>ブログ引っ越します</title>
         <link>http://iphone-dev.g.hatena.ne.jp/tokorom/20120729/1343573393</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;ul&gt;
				&lt;li&gt; Gitで記事の管理/更新をしたい&lt;/li&gt;
				&lt;li&gt; 記事の記述をMarkdownで統一したい&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;など幾つかの理由により、今後は &lt;span style=&quot;font-weight:bold;&quot; class=&quot;deco&quot;&gt;Github Patges&lt;/span&gt; &amp; &lt;span style=&quot;font-weight:bold;&quot; class=&quot;deco&quot;&gt;Octoress&lt;/span&gt; でブログを書くことに決めました。&lt;/p&gt;
			&lt;p&gt;何日か試してみていろいろと都合が良さそうなので、&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.tokoro.me/&quot;&gt;http://www.tokoro.me/&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;に引っ越しをします。&lt;/p&gt;
			&lt;p&gt;今後とも宜しくお願いします！&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/tokorom/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 29 Jul 2012 14:49:53 +0000</pubDate>
      </item>
      <item>
         <title>iPodの音楽を再生しながらCocos2Dアプリを動かす</title>
         <link>http://iphone-dev.g.hatena.ne.jp/horigood/20120603/1338731370</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;Cocos2Dのオーディオエンジン SimpleAudioEngine は、とっても手軽に使えるけれど、残念ながら iPodMusicPlayer との相性がかなり悪い。（と思う）&lt;/p&gt;
			&lt;p&gt;stopBackgroundMusic や stopEffect: で再生を止めていても、いったん sharedEngine で作成したインスタンスが残っていると iPodMusicPlayer の音楽は再生されない。（っぽい）&lt;/p&gt;
			&lt;p&gt;再生を stop するのと合わせて　[ SimpleAudioEngine end]; としてやると、 iPodMusicPlayer は有効になるけれど、アプリがバックグラウンドに移行する際にクラッシュしてしまう。(cocos2D に sharedEngine を呼び出す処理があるのだと思う）&lt;/p&gt;
			&lt;p&gt;それじゃあということで、通常のアプリと同様に SystemSoundService で効果音を再生しようとすると何故か音が出ない。（なんなんだろうね？ホント）&lt;/p&gt;
			&lt;p&gt;で、いろいろ悩んだ末、BGM、効果音ともに AVAudioPlayer を使うことでなんとか解決。あああ、時間かかった!!!&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 03 Jun 2012 13:49:30 +0000</pubDate>
      </item>
      <item>
         <title>[ios][vim][tdd] vim-quickrun + GHUnit でTDD</title>
         <link>http://iphone-dev.g.hatena.ne.jp/tokorom/20120520/1337542304</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;VimmerなiOSプログラマの自分にとってはVim上でコーディングからユニットテストの実行/確認までできたら最高です。&lt;/p&gt;
			&lt;p&gt;ということで、vim-quickrunを使ってVim上でTDDできるようにした記録を残します。&lt;/p&gt;
			&lt;h4&gt; 参考記事&lt;/h4&gt;
			&lt;ul&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.karakaram.com/vim/phpunit-location-list/&quot;&gt;VimでPHPUnitの実行結果をシンプルに表示するプラグインを書いた | karakaram-blog&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;h4&gt; あらかじめインストールしておくもの&lt;/h4&gt;
			&lt;ul&gt;
				&lt;li&gt; vim-quickrun v0.6.0dev &lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#f1&quot; name=&quot;fn1&quot; title=&quot;https://github.com/thinca/vim-quickrun/tree/v0.6.0dev&quot;&gt;*1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
				&lt;li&gt; GHUnit &lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#f2&quot; name=&quot;fn2&quot; title=&quot;https://github.com/gabriel/gh-unit&quot;&gt;*2&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;GHUnitについては&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://akisute.com/2012/01/jenkins-ios-ghunit.html&quot;&gt;A-Liaison BLOG: Jenkins を iOS アプリ開発に導入してみた (GHUnit編)&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;が分かりやすいです。&lt;/p&gt;
			&lt;p&gt;ここを参考にCUIからテストが実行できるところまで設定をしておく必要があります。&lt;/p&gt;
			&lt;p&gt;VimでTDDするにはこのGHUnitの &lt;b&gt;CUIから特定のテストを実行できる&lt;/b&gt; というのが重要になります。&lt;/p&gt;
			&lt;p&gt;また、CUIでGHUnitのテストを実行した場合の &lt;b&gt;どこがエラーになっているのかが一目でわかりづらい&lt;/b&gt; というデメリットもvim-quickrunで解決します。&lt;/p&gt;
			&lt;h4&gt; やったこと&lt;/h4&gt;
			&lt;ul&gt;
				&lt;li&gt; vim-quickrunにGHUnit用のoutputterを追加&lt;/li&gt;
				&lt;li&gt; Objective-Cのテストコードでquickrunしたときはその追加したoutputterを使うように設定&lt;/li&gt;
			&lt;/ul&gt;
			&lt;h4&gt; 実行結果のイメージ&lt;/h4&gt;
			&lt;p&gt;&lt;b&gt;■ テスト失敗&lt;/b&gt;&lt;/p&gt;
			&lt;p&gt;こんなかんじに失敗したテストがレッドで表示されます。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20120521042646&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20120521/20120521042646.png&quot; alt=&quot;f:id:tokorom:20120521042646p:image&quot; title=&quot;f:id:tokorom:20120521042646p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;その後、失敗したテストの場所に自動でカーソルが移動します&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#f3&quot; name=&quot;fn3&quot; title=&quot;&amp;#x003053;&amp;#x003053;&amp;#x00306f;Xcode&amp;#x003088;&amp;#x00308a;&amp;#x004fbf;&amp;#x005229;&amp;#x00304b;&amp;#x003082;&amp;#x003002;&amp;#x003002;&amp;#x003002;&quot;&gt;*3&lt;/a&gt;&lt;/span&gt;。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20120521042738&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20120521/20120521042738.png&quot; alt=&quot;f:id:tokorom:20120521042738p:image&quot; title=&quot;f:id:tokorom:20120521042738p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;b&gt;■ テスト成功&lt;/b&gt;&lt;/p&gt;
			&lt;p&gt;こんなかんじにグリーンバーが表示されます。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20120521042737&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20120521/20120521042737.png&quot; alt=&quot;f:id:tokorom:20120521042737p:image&quot; title=&quot;f:id:tokorom:20120521042737p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;b&gt;■ ビルドエラー&lt;/b&gt;&lt;/p&gt;
			&lt;p&gt;おまけで、ビルドエラーのときもエラー箇所に自動でカーソルが移動します。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20120521042739&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20120521/20120521042739.png&quot; alt=&quot;f:id:tokorom:20120521042739p:image&quot; title=&quot;f:id:tokorom:20120521042739p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;h4&gt; vim-quickrunに追加したoutputter&lt;/h4&gt;
			&lt;p&gt;上記参考記事とvim-quickrunにはじめから入っているoutputterの &lt;b&gt;quickfix.vim&lt;/b&gt; をベースとして以下のようなoutputterを作成しました。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
let s:save_cpo = &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;cpo
set cpo&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;vim

let s:outputter = quickrun#outputter#buffered#new()
let s:outputter.config = {
&amp;#92; }

function! s:outputter.finish(session)
  let data = &lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;._result
  lclose
  &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; stridx(data, '** BUILD SUCCEEDED **') &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;
    &lt;span class=&quot;synConstant&quot;&gt;&amp;quot; Success&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;    let message = matchstr(data, 'Executed .*)&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;&amp;#92;.&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;')&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;    if 0 == strlen(message)&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;      let message = '** ALL GREEN **'&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;    endif&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;    highlight GHUnitSuccess term=reverse ctermbg=darkgreen guibg=darkgreen&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;    echohl GHUnitSuccess | echo message | echohl None&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;  else&lt;/span&gt;
&lt;span class=&quot;synConstant&quot;&gt;    &amp;quot;&lt;/span&gt; Failed
    try
      &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; data =~ '&amp;#92;vFile&amp;#92;:[^:]+Line&amp;#92;:'
        set errorformat=%E%.%#File:&amp;#92; %f,%C%.%#Line:&amp;#92; %l,%Z%.%#Reason:&amp;#92; %m
        let message = matchstr(data, '&amp;#92;zsFailed tests.*&amp;#92;zeCommand ')
        &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt; == strlen(message)
          let message = '** FAILED **'
        endif
      &lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt;
        set errorformat=%f:%l:%*[^:]:&amp;#92; %m
        let message = '** BUILD FAILED **'
      endif
      cgetexpr &lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;._result
      cwindow
      cc
      &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; winnr &lt;span class=&quot;synType&quot;&gt;in&lt;/span&gt; range(&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;, winnr(&lt;span class=&quot;synConstant&quot;&gt;'$'&lt;/span&gt;))
        &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; getwinvar(winnr, '&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;buftype') ==# 'ghunit'
          call setwinvar(winnr, 'quickfix_title', 'quickrun: ' .
          &amp;#92;   join(a:session.commands, ' &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;; '))
          &lt;span class=&quot;synStatement&quot;&gt;break&lt;/span&gt;
        endif
      endfor
      highlight GHUnitFailed term=reverse ctermbg=darkred guibg=darkred
      echohl GHUnitFailed | echo message | echohl None
    finally
    endtry
  endif
endfunction

function! quickrun#outputter#ghunit#new()
  &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; deepcopy(s:outputter)
endfunction

let &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;cpo = s:save_cpo
&lt;/pre&gt;

			&lt;p&gt;やっているのは大枠&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; GHUnitの実行結果が &lt;b&gt;テスト成功&lt;/b&gt; / &lt;b&gt;テスト失敗&lt;/b&gt; / &lt;b&gt;ビルドエラー&lt;/b&gt; のどのステータスかを判断&lt;/li&gt;
				&lt;li&gt; その実行結果によりerrorformatを差し替え&lt;/li&gt;
				&lt;li&gt; 実行結果の中から表示用メッセージを拾い、テスト成功ならグリーンで、テスト失敗/ビルドエラーならレッドで表示&lt;/li&gt;
				&lt;li&gt; QuickFix&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;といったことです。&lt;/p&gt;
			&lt;p&gt;このoutputterはgithub&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#f4&quot; name=&quot;fn4&quot; title=&quot;https://github.com/tokorom/vim-quickrun-ghunit&quot;&gt;*4&lt;/a&gt;&lt;/span&gt;に置いてあります。&lt;/p&gt;
			&lt;h4&gt; .vimrc に追加した項目&lt;/h4&gt;
			&lt;p&gt;最後に、これを実行するために.vimrcに追記したのが以下になります。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&amp;quot; ファイル名の最後がTest.mだったら objc.test というファイルタイプにする
autocmd BufWinEnter,BufNewFile *Test.m setfiletype objc.test

&amp;quot; quickrunの設定を初期化
let g:quickrun_config = {}
&amp;quot; quickrunのどのファイルタイプでも適用する設定
let g:quickrun_config[&amp;#39;*&amp;#39;] = {&amp;#39;split&amp;#39;: &amp;#39;below&amp;#39;}
&amp;quot; ファイルタイプがobjc.testの場合、make test を実行してその結果をghunit用のoutputterで出力する設定
let g:quickrun_config[&amp;#39;objc.test&amp;#39;] = {&amp;#39;command&amp;#39;: &amp;#39;make&amp;#39;, &amp;#39;cmdopt&amp;#39;: &amp;#39;test&amp;#39;, &amp;#39;outputter&amp;#39;: &amp;#39;ghunit&amp;#39;}

&amp;quot; Space, q でquickrunする（これは普段使っている設定にしてください）
silent! map &amp;#60;Space&amp;#62;q &amp;#60;Plug&amp;#62;(quickrun)
&amp;quot; Space, Space, q で今開いているテストケースだけquickrunする（ファイル名がテストクラス名と一致している前提です）
silent! map &amp;#60;expr&amp;#62; &amp;#60;Space&amp;#62;&amp;#60;Space&amp;#62;q &amp;#39;:QuickRun -args &amp;quot;TEST=&amp;#39; . expand(&amp;quot;%:t:r&amp;quot;) . &amp;#39;&amp;quot;&amp;#60;CR&amp;#62;&amp;#39;
&lt;/pre&gt;

			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/tokorom/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;
		&lt;div class=&quot;footnote&quot;&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#fn1&quot; name=&quot;f1&quot;&gt;*1&lt;/a&gt;：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://github.com/thinca/vim-quickrun/tree/v0.6.0dev&quot;&gt;https://github.com/thinca/vim-quickrun/tree/v0.6.0dev&lt;/a&gt;&lt;/p&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#fn2&quot; name=&quot;f2&quot;&gt;*2&lt;/a&gt;：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://github.com/gabriel/gh-unit&quot;&gt;https://github.com/gabriel/gh-unit&lt;/a&gt;&lt;/p&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#fn3&quot; name=&quot;f3&quot;&gt;*3&lt;/a&gt;：ここはXcodeより便利かも。。。&lt;/p&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#fn4&quot; name=&quot;f4&quot;&gt;*4&lt;/a&gt;：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://github.com/tokorom/vim-quickrun-ghunit&quot;&gt;https://github.com/tokorom/vim-quickrun-ghunit&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 20 May 2012 19:31:44 +0000</pubDate>
      </item>
      <item>
         <title>.Sched3リリースしました。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/kenhama/20120328</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;久しぶりの投稿ですが、宣伝です。&lt;/p&gt;
			&lt;p&gt;.Sched3をリリースしました。（.Sched2からの無償バージョンアップです。）&lt;/p&gt;
			&lt;p&gt;メジャーバージョンアップ記念ということで期間限定セールします！&lt;/p&gt;
			&lt;p&gt;紹介ムービー&lt;/p&gt;
			&lt;p&gt;(vimeo貼れてないみたいなので、URLはこちら&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://http://vimeo.com/39105449&quot;&gt;http://http://vimeo.com/39105449&lt;/a&gt; )&lt;/p&gt;
			&lt;p&gt;&lt;embed src=&quot;http://vimeo.com/moogaloop.swf?clip_id=39105449&amp;#38;server=vimeo.com&amp;#38;show_title=1&amp;#38;show_byline=1&amp;#38;show_portrait=1&amp;#38;color=00ADEF&amp;#38;fullscreen=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;601&quot; height=&quot;338&quot;&gt;&lt;/iframe&gt;&lt;/p&gt; 			&lt;br&gt;

			&lt;p&gt;詳しい情報は、&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.kjapps.com/2012/03/28/sched-3-sched2/&quot;&gt;http://blog.kjapps.com/2012/03/28/sched-3-sched2/&lt;/a&gt;　を参照ください。&lt;/p&gt;
			&lt;p&gt;よろしくお願いします！！&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 27 Mar 2012 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[iAlbumPlayer] iAlbumPlayer-2.4.0 をリリースしました。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sawat/20120204/1328372013</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20110915010529&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20110915/20110915010529.png&quot; alt=&quot;f:id:sawat:20110915010529p:image&quot; title=&quot;f:id:sawat:20110915010529p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/jp/app/ialbumplayer/id322962704?mt=8&quot;&gt;AppStoreへ&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20120205005833&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20120205/20120205005833.png&quot; alt=&quot;f:id:sawat:20120205005833p:image&quot; title=&quot;f:id:sawat:20120205005833p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;今回の新機能はプレイリスト等の選択画面に「履歴」タブを追加しました。 &lt;/p&gt;
			&lt;p&gt;最近15件までの選択されたプレイリスト、アーティスト、ジャンルを記憶します。 &lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20120205010925&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20120205/20120205010925.png&quot; alt=&quot;f:id:sawat:20120205010925p:image&quot; title=&quot;f:id:sawat:20120205010925p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;前回の2.3.0アップデートではここの更新をサボってしまいましたが、変更点は以下のとおりでした。&lt;/p&gt;
			&lt;p&gt;バージョン 2.3.0 &lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;新機能 
				&lt;ul&gt;
					&lt;li&gt; アルバム再生/ソート順に「年」を追加しました。iTunesの「年」の情報に従って、古いアルバムから順に再生します。 &lt;/li&gt;
					&lt;li&gt; アルバム再生/プレイリスト再生の設定を追加しました。プレイリスト指定時のアルバム再生を「プレイリストに含まれる曲のみ」か「アルバム全体」かを選べるようになりました。 &lt;/li&gt;
					&lt;li&gt;動作/自動ロック抑制の選択肢に「充電中はロックしない」を追加しました。 &lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;仕様変更 
				&lt;ul&gt;
					&lt;li&gt;「設定」アプリによる設定変更を廃止しました。アプリ内の設定画面を使用してください。 &lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;バグ修正 
				&lt;ul&gt;
					&lt;li&gt;一時停止中にアプリを起動して、アプリ内の再生ボタンを押下した際に、一時停止個所からではなくアルバムの最初から再生されてしまうバグを修正しました。&lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;今回のジャケ写は&lt;/p&gt;
			&lt;div class=&quot;hatena-asin-detail&quot;&gt;
  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B005LA8VZ0/hatena-hamazou-22/&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/41iLRckm9PL._SL160_.jpg&quot; class=&quot;hatena-asin-detail-image&quot; alt=&quot;JPN(&amp;#x00901a;&amp;#x005e38;&amp;#x0076e4;)&quot; title=&quot;JPN(&amp;#x00901a;&amp;#x005e38;&amp;#x0076e4;)&quot;&gt;&lt;/a&gt;
  &lt;div class=&quot;hatena-asin-detail-info&quot;&gt;
    &lt;p class=&quot;hatena-asin-detail-title&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B005LA8VZ0/hatena-hamazou-22/&quot;&gt;JPN(通常盤)&lt;/a&gt;&lt;/p&gt;
    &lt;ul&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;アーティスト:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/Perfume&quot; class=&quot;okeyword&quot;&gt;Perfume&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;出版社/メーカー:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%C6%C1%B4%D6%A5%B8%A5%E3%A5%D1%A5%F3%A5%B3%A5%DF%A5%E5%A5%CB%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%A5%BA&quot; class=&quot;okeyword&quot;&gt;徳間ジャパンコミュニケーションズ&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;発売日:&lt;/span&gt; 2011/11/30&lt;/li&gt;
                                                      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;メディア:&lt;/span&gt; CD&lt;/li&gt;
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;購入&lt;/span&gt;: 7人 &lt;span class=&quot;hatena-asin-detail-label&quot;&gt;クリック&lt;/span&gt;: 140回&lt;/li&gt;
      &lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/asin/B005LA8VZ0&quot;&gt;この商品を含むブログ (144件) を見る&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div class=&quot;hatena-asin-detail-foot&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

			&lt;p&gt;です。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/sawat/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 04 Feb 2012 16:13:33 +0000</pubDate>
         <category>iAlbumPlayer</category>
      </item>
      <item>
         <title>[debug] uncaught exceptionが発生した場所を確認する</title>
         <link>http://iphone-dev.g.hatena.ne.jp/tokorom/20111225/1324834977</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;h4&gt; uncaught exception でアプリリセット&lt;/h4&gt;
			&lt;p&gt;uncaught exceptionで&lt;b&gt;main.m&lt;/b&gt;の&lt;b&gt;UIApplicationMain&lt;/b&gt;のところでリセットが発生しているときに、以下のようなログが出て、&lt;/p&gt;
&lt;pre&gt;
2011-12-26 02:14:41.837 test&amp;#91;64894:f803] &amp;#42;&amp;#42;&amp;#42; Terminating app due to uncaught exception &amp;#39;NSRangeException&amp;#39;, reason: &amp;#39;&amp;#42;&amp;#42;&amp;#42; -&amp;#91;__NSArrayI objectAtIndex:]: index 1 beyond bounds &amp;#91;0 .. 0]&amp;#39;
&amp;#42;&amp;#42;&amp;#42; First throw call stack:
(0x12e2052 0x1896d0a 0x12ce674 0x4a7f7 0x2ab7 0x22d9d6 0x22e8a6 0x23d743 0x23e1f8 0x231aa9 0x21cffa9 0x12b61c5 0x121b022 0x121990a 0x1218db4 0x1218ccb 0x22e2a7 0x22fa9b 0x27d9 0x1fc5)
&lt;/pre&gt;

			&lt;p&gt;「で、けっきょくこのExceptionどこで発生してんねん」と思ってしまうことがあります&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#f1&quot; name=&quot;fn1&quot; title=&quot;&amp;#x00305d;&amp;#x003082;&amp;#x00305d;&amp;#x003082;&amp;#x003053;&amp;#x00306e;Exception&amp;#x00306e;&amp;#x00767a;&amp;#x00751f;&amp;#x005834;&amp;#x006240;&amp;#x003092;&amp;#x003059;&amp;#x003050;&amp;#x00306b;&amp;#x007279;&amp;#x005b9a;&amp;#x003067;&amp;#x00304d;&amp;#x00308b;&amp;#x0065b9;&amp;#x006cd5;&amp;#x003092;&amp;#x0065e2;&amp;#x0077e5;&amp;#x00306e;&amp;#x00304b;&amp;#x00305f;&amp;#x00306f;&amp;#x00662f;&amp;#x00975e;&amp;#x0030d5;&amp;#x0030a9;&amp;#x0030ed;&amp;#x0030fc;&amp;#x00304a;&amp;#x009858;&amp;#x003044;&amp;#x003057;&amp;#x00307e;&amp;#x003059;m(_ _)m&quot;&gt;*1&lt;/a&gt;&lt;/span&gt;。&lt;/p&gt;
			&lt;p&gt;ふつーにぱっと見で認識できるスタックトレースとか出してくれればいいのにねって。&lt;/p&gt;
			&lt;h4&gt; exception をキャッチしてデバッグ表示&lt;/h4&gt;
			&lt;p&gt;それなら、uncaughtなexceptionをキャッチしてあげようということで、UIApplicationMainのところをtry/catchで囲ってデバッグ表示を追加してみました。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; main(&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; argc, &lt;span class=&quot;synType&quot;&gt;char&lt;/span&gt; *argv[])
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; retVal;
  &lt;span class=&quot;synStatement&quot;&gt;@try&lt;/span&gt; {
    retVal = UIApplicationMain(argc, argv, &lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt;, NSStringFromClass([AppDelegate class]));
  }
  &lt;span class=&quot;synStatement&quot;&gt;@catch&lt;/span&gt; (NSException *exception) {
    NSLog(&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;%@&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;, [exception callStackSymbols]); &lt;span class=&quot;synComment&quot;&gt;//&amp;amp;#60; ★1&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;@throw&lt;/span&gt; exception; &lt;span class=&quot;synComment&quot;&gt;//&amp;amp;#60; ★2&lt;/span&gt;
  }
  &lt;span class=&quot;synStatement&quot;&gt;@finally&lt;/span&gt; {
    [pool release];
  }
  &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; retVal;
}
&lt;/pre&gt;

			&lt;h5&gt; ★1&lt;/h5&gt;
			&lt;p&gt;どうもiOS4.0から、NSExceptionに&lt;b&gt;callStackSymbols&lt;/b&gt;という便利メソッドが追加されたようなのでそれを利用。&lt;/p&gt;
			&lt;p&gt;そうすると、uncaughtなexceptionをキャッチして、以下ようにそのexceptionが発生するまでの経緯がログ出力されます。&lt;/p&gt;
&lt;pre&gt;
2011-12-26 02:27:18.933 test&amp;#91;65600:f803] (
	0   CoreFoundation                      0x012e206e __exceptionPreprocess + 206
	1   libobjc.A.dylib                     0x01896d0a objc_exception_throw + 44
	2   CoreFoundation                      0x012ce674 -&amp;#91;__NSArrayI objectAtIndex:] + 196
	3   test                                0x0004a6e7 -&amp;#91;RootViewController init] + 215
	4   test                                0x000029a7 -&amp;#91;AppDelegate application:didFinishLaunchingWithOptions:] + 567
	5   UIKit                               0x0022d9d6 -&amp;#91;UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1292
	6   UIKit                               0x0022e8a6 -&amp;#91;UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 508
	7   UIKit                               0x0023d743 -&amp;#91;UIApplication handleEvent:withNewEvent:] + 1027
	8   UIKit                               0x0023e1f8 -&amp;#91;UIApplication sendEvent:] + 68
	9   UIKit                               0x00231aa9 _UIApplicationHandleEvent + 8196
	10  GraphicsServices                    0x021cffa9 PurpleEventCallback + 1274
	11  CoreFoundation                      0x012b61c5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
	12  CoreFoundation                      0x0121b022 __CFRunLoopDoSource1 + 146
	13  CoreFoundation                      0x0121990a __CFRunLoopRun + 2218
	14  CoreFoundation                      0x01218db4 CFRunLoopRunSpecific + 212
	15  CoreFoundation                      0x01218ccb CFRunLoopRunInMode + 123
	16  UIKit                               0x0022e2a7 -&amp;#91;UIApplication _run] + 576
	17  UIKit                               0x0022fa9b UIApplicationMain + 1175
	18  test                                0x0000258b main + 187
	19  test                                0x00001d65 start + 53
)
&lt;/pre&gt;

			&lt;p&gt;これを見れば「RootViewControllerのinitメソッド内にダメなコードがあるんだね」ということがすぐに分かるようになります。&lt;/p&gt;
			&lt;h5&gt; ★2&lt;/h5&gt;
			&lt;p&gt;ちなみにexceptionをキャッチしっぱなしだとアプリ的には異常がなかったという扱いになってしまうので、同じexceptionをそのままthrowしておきます。&lt;/p&gt;
			&lt;h4&gt; DEBUGビルド時にだけこれを有効に&lt;/h4&gt;
			&lt;p&gt;DEBUGビルド時にだけこれを有効にしたい場合には、以下のように「#ifdef DEBUG」で囲ってやるのが良いかもしれません。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; main(&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; argc, &lt;span class=&quot;synType&quot;&gt;char&lt;/span&gt; *argv[])
{
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; retVal;
&lt;span class=&quot;synPreProc&quot;&gt;#ifdef DEBUG&lt;/span&gt;
  &lt;span class=&quot;synStatement&quot;&gt;@try&lt;/span&gt; {
&lt;span class=&quot;synPreProc&quot;&gt;#endif&lt;/span&gt;
    retVal = UIApplicationMain(argc, argv, &lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt;, NSStringFromClass([AppDelegate class]));
&lt;span class=&quot;synPreProc&quot;&gt;#ifdef DEBUG&lt;/span&gt;
  }
  &lt;span class=&quot;synStatement&quot;&gt;@catch&lt;/span&gt; (NSException *exception) {
    NSLog(&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;%@&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;, [exception callStackSymbols]);
    &lt;span class=&quot;synStatement&quot;&gt;@throw&lt;/span&gt; exception;
  }
  &lt;span class=&quot;synStatement&quot;&gt;@finally&lt;/span&gt; {
&lt;span class=&quot;synPreProc&quot;&gt;#endif&lt;/span&gt;
    [pool release];
&lt;span class=&quot;synPreProc&quot;&gt;#ifdef DEBUG&lt;/span&gt;
  }
&lt;span class=&quot;synPreProc&quot;&gt;#endif&lt;/span&gt;
  &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; retVal;
}
&lt;/pre&gt;

			&lt;h4&gt; ARCを利用する場合&lt;/h4&gt;
			&lt;p&gt;ARCを利用する場合はもうちょっとシンプルにできる。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; main(&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; argc, &lt;span class=&quot;synType&quot;&gt;char&lt;/span&gt; *argv[])
{
  &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; retVal;
  @autoreleasepool {
&lt;span class=&quot;synPreProc&quot;&gt;#ifdef DEBUG&lt;/span&gt;
    &lt;span class=&quot;synStatement&quot;&gt;@try&lt;/span&gt; {
&lt;span class=&quot;synPreProc&quot;&gt;#endif&lt;/span&gt;
      retVal = UIApplicationMain(argc, argv, &lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt;, NSStringFromClass([AppDelegate class]));
&lt;span class=&quot;synPreProc&quot;&gt;#ifdef DEBUG&lt;/span&gt;
    }
    &lt;span class=&quot;synStatement&quot;&gt;@catch&lt;/span&gt; (NSException *exception) {
      NSLog( &lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;%@&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;, [exception callStackSymbols] );
      &lt;span class=&quot;synStatement&quot;&gt;@throw&lt;/span&gt; exception;
    }
&lt;span class=&quot;synPreProc&quot;&gt;#endif&lt;/span&gt;
  }
  &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; retVal;
}
&lt;/pre&gt;

			&lt;h4&gt; でも、こんなごちゃごちゃ書かなくてもよいかもしれない&lt;/h4&gt;
			&lt;p&gt;ちなみに、uncaught exceptionを制御するための「NSSetUncaughtExceptionHandler」といった関数もあるようで、こちらを使えばもっとスマートな方法があるかもしれません&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#f2&quot; name=&quot;fn2&quot; title=&quot;&amp;#x003053;&amp;#x003061;&amp;#x003089;&amp;#x003082;&amp;#x0065e2;&amp;#x0077e5;&amp;#x00306e;&amp;#x00304b;&amp;#x00305f;&amp;#x00662f;&amp;#x00975e;&amp;#x0030d5;&amp;#x0030a9;&amp;#x0030ed;&amp;#x0030fc;&amp;#x003092;&amp;#x00304a;&amp;#x009858;&amp;#x003044;&amp;#x003057;&amp;#x00307e;&amp;#x003059;&quot;&gt;*2&lt;/a&gt;&lt;/span&gt;。&lt;/p&gt;
			&lt;p&gt;もう眠くなったのと、↑でも特に困らなかったので今日はここまで。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/tokorom/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;
		&lt;div class=&quot;footnote&quot;&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#fn1&quot; name=&quot;f1&quot;&gt;*1&lt;/a&gt;：そもそもこのExceptionの発生場所をすぐに特定できる方法を既知のかたは是非フォローお願いしますm(_ _)m&lt;/p&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/tokorom/#fn2&quot; name=&quot;f2&quot;&gt;*2&lt;/a&gt;：こちらも既知のかた是非フォローをお願いします&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 25 Dec 2011 17:42:57 +0000</pubDate>
         <category>debug</category>
      </item>
      <item>
         <title>[iAlbumPlayer] iAlbumPlayer-2.2.0 をリリースしました。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sawat/20111217/1324108359</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20110915010529&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20110915/20110915010529.png&quot; alt=&quot;f:id:sawat:20110915010529p:image&quot; title=&quot;f:id:sawat:20110915010529p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/jp/app/ialbumplayer/id322962704?mt=8&quot;&gt;AppStoreへ&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20111217164452&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20111217/20111217164452.png&quot; alt=&quot;f:id:sawat:20111217164452p:image&quot; title=&quot;f:id:sawat:20111217164452p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;すでにおとといになってしまいましたが、iAlbumPlayerのアップデートをリリースしました。&lt;/p&gt;
			&lt;p&gt;変更点は以下の通りです。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;新機能
				&lt;ul&gt;
					&lt;li&gt;アプリ内で設定変更ができるようになりました。右下の歯車アイコンをタップしてください。 &lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;仕様変更 
				&lt;ul&gt;
					&lt;li&gt;プレイリスト指定時にはアルバム全曲ではなく、プレイリストに含まれる曲のみを再生するようにしました。 &lt;/li&gt;
					&lt;li&gt;アーティスト一覧画面をアルバムアーティスト毎で表示するように変更しました。(iOS5以降のみ) &lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;バグ修正 
				&lt;ul&gt;
					&lt;li&gt;iOS5で非正方形のアートワークが正方形に引き延ばされて表示されるバグを修正しました。 &lt;/li&gt;
					&lt;li&gt;ボタン等の配置が崩れるバグを修正しました。 &lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt;その他、細かい修正をしました。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;アプリ内の設定画面を入れたのでいろいろ拡張しやすくなりました。次のアップデートで活用しまーす。&lt;/p&gt;
			&lt;p&gt;今回のジャケ写は&lt;/p&gt;
			&lt;div class=&quot;hatena-asin-detail&quot;&gt;
  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B005DIBJ2M/hatena-hamazou-22/&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/518PMlUX6UL._SL160_.jpg&quot; class=&quot;hatena-asin-detail-image&quot; alt=&quot;&amp;#x0030ce;&amp;#x0030eb;&amp;#x0030cb;&amp;#x0030eb;&amp;#x0030fb;&amp;#x005c11;&amp;#x005e74;&amp;#x003088;&amp;#x006211;&amp;#x00306b;&amp;#x005e30;&amp;#x00308c;&quot; title=&quot;&amp;#x0030ce;&amp;#x0030eb;&amp;#x0030cb;&amp;#x0030eb;&amp;#x0030fb;&amp;#x005c11;&amp;#x005e74;&amp;#x003088;&amp;#x006211;&amp;#x00306b;&amp;#x005e30;&amp;#x00308c;&quot;&gt;&lt;/a&gt;
  &lt;div class=&quot;hatena-asin-detail-info&quot;&gt;
    &lt;p class=&quot;hatena-asin-detail-title&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/B005DIBJ2M/hatena-hamazou-22/&quot;&gt;ノルニル・少年よ我に帰れ&lt;/a&gt;&lt;/p&gt;
    &lt;ul&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;アーティスト:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A4%E4%A4%AF%A4%B7%A4%DE%A4%EB%A4%A8%A4%C4%A4%B3%A5%E1%A5%C8%A5%ED%A5%AA%A1%BC%A5%B1%A5%B9%A5%C8%A5%E9&quot; class=&quot;okeyword&quot;&gt;やくしまるえつこメトロオーケストラ&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;出版社/メーカー:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%AD%A5%F3%A5%B0%A5%EC%A5%B3%A1%BC%A5%C9&quot; class=&quot;okeyword&quot;&gt;キングレコード&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;発売日:&lt;/span&gt; 2011/10/05&lt;/li&gt;
                                                      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;メディア:&lt;/span&gt; CD&lt;/li&gt;
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;購入&lt;/span&gt;: 11人 &lt;span class=&quot;hatena-asin-detail-label&quot;&gt;クリック&lt;/span&gt;: 597回&lt;/li&gt;
      &lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/asin/B005DIBJ2M&quot;&gt;この商品を含むブログ (108件) を見る&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div class=&quot;hatena-asin-detail-foot&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

			&lt;p&gt;です。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/sawat/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 17 Dec 2011 07:52:39 +0000</pubDate>
         <category>iAlbumPlayer</category>
      </item>
      <item>
         <title>[UIKit] MacアプリでもUIKitを使ってみる with Chameleon</title>
         <link>http://iphone-dev.g.hatena.ne.jp/tokorom/20111127/1322444527</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;h4&gt; Chameleon&lt;/h4&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://chameleonproject.org/&quot;&gt;Chameleon - UIKit for Mac development&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;このChameleonを使うとMacアプリの開発でもUIKitを使えるようになるとのこと。&lt;/p&gt;
			&lt;p&gt;前々から気になっていたので少し試してみた。&lt;/p&gt;
			&lt;p&gt;Chameleon自体は&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://github.com/BigZaphod/Chameleon&quot;&gt;BigZaphod/Chameleon - GitHub&lt;/a&gt;からダウンロード可能。&lt;/p&gt;
			&lt;p&gt;また、Chameleonを試用した本記事のソースコード一式は&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://github.com/tokorom/ChameleonUIKitDemo&quot;&gt;tokorom/ChameleonUIKitDemo - GitHub&lt;/a&gt;からダウンロード可能。&lt;/p&gt;
			&lt;p&gt;今回は、UIViewControllerで画面を１つ作り、そこにUIImageViewやUIButtonを貼りつけて動かしてみるところまで実験。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; まずはプロジェクトにChameleonを取り込む&lt;/h4&gt;
			&lt;p&gt;&lt;b&gt;※上記サイトからあらかじめChameleonをダウンロードしておくこと&lt;/b&gt;&lt;/p&gt;
			&lt;p&gt;まずはXcodeで空のMacアプリのプロジェクトを作成する。&lt;/p&gt;
			&lt;p&gt;そのプロジェクトにChameleonの中の&lt;b&gt;UIKit.xcodeproj&lt;/b&gt;だけ追加する。&lt;/p&gt;
			&lt;p&gt;次に、Build Phasesの&lt;b&gt;Link Binary With Libraries&lt;/b&gt;に&lt;b&gt;UIKit.framework&lt;/b&gt;を追加する。&lt;/p&gt;
			&lt;p&gt;↓このあたりの実施後の画面が↓になります↓&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20111128103910&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20111128/20111128103910.png&quot; alt=&quot;f:id:tokorom:20111128103910p:image&quot; title=&quot;f:id:tokorom:20111128103910p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; UIKitを他のコードから使えるようにimport&lt;/h4&gt;
			&lt;p&gt;■ChameleonUIKitDemo-Prefix.pch&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 
			&lt;p&gt;プロジェクトの中にはじめからあるプリコンパイル済みヘッダで、上記のように&lt;/p&gt;
			&lt;p&gt;UIKit/UIKit.h&lt;/p&gt;
			&lt;p&gt;UIKit/UIKitView.h&lt;/p&gt;
			&lt;p&gt;をimportしておく。&lt;/p&gt;
			&lt;p&gt;もちろん、各ソースコードから個別にimportしても構わない。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; UIKit用のAppDelegateを作っておく&lt;/h4&gt;
			&lt;p&gt;■ChameleonAppDelegate.h&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 
			&lt;p&gt;■ChameleonAppDelegate.m&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 			&lt;br&gt;

			&lt;p&gt;ここは普段のiOS用アプリ開発とほぼ同じでOK！&lt;/p&gt;
			&lt;p&gt;唯一違うのは、windowやViewControllerのautoresizingMaskを明示的に指定するコードを追加するくらい。&lt;/p&gt;
			&lt;p&gt;UIViewControllerがそのまま使えるというのは素晴らしい！&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; はじめに表示するRootViewControllerを作っておく&lt;/h4&gt;
			&lt;p&gt;ここはiOS用アプリ開発と全く同じ！&lt;/p&gt;
			&lt;p&gt;ここではUIImageViewとUIButtonを追加している。&lt;/p&gt;
			&lt;p&gt;※必要な画像はあらかじめプロジェクトに追加しておくこと&lt;/p&gt;
			&lt;p&gt;■RootViewController.h&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 
			&lt;p&gt;■RootViewController.m&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 			&lt;br&gt;

			&lt;h4&gt; Mac用のAppDelegateをUIKit用AppDelegateに接続&lt;/h4&gt;
			&lt;p&gt;■AppDelegate.h&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 
			&lt;p&gt;■AppDelegate.m&lt;/p&gt;
			&lt;p&gt;&lt;/p&gt; 			&lt;br&gt;

			&lt;p&gt;ここでは、UIKitViewと先ほど作成したChameleonAppDelegate（UIKit用のAppDelegate）を追加する。&lt;/p&gt;
			&lt;p&gt;UIKitViewは後ほどInterface Builderで接続するためIBOutletを付けておく。&lt;/p&gt;
			&lt;p&gt;そして、&lt;b&gt;applicationDidFinishLaunching&lt;/b&gt;の中で、UIKit用AppDelegateに移管するため、&lt;b&gt;UIKitView&lt;/b&gt;のインスタンスに対して&lt;b&gt;launchApplicationWithDelegate&lt;/b&gt;をコールして引数にUIKit用AppDelegateのインスタンスを指定する。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; Interface Builder で最後の仕上げ&lt;/h4&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20111128104037&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20111128/20111128104037.png&quot; alt=&quot;f:id:tokorom:20111128104037p:image&quot; title=&quot;f:id:tokorom:20111128104037p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;最後に、Interface Builderで&lt;b&gt;MainMenu.xib&lt;/b&gt;を開き、WindowsのメインViewにUIKitViewを追加する。&lt;/p&gt;
			&lt;p&gt;UIKitViewというオブジェクトはツール上は存在しないので、代わりに&lt;b&gt;Custom View&lt;/b&gt;というのを貼り付ける。&lt;/p&gt;
			&lt;p&gt;そして、そのClass名を&lt;b&gt;UIKitView&lt;/b&gt;に変更する。&lt;/p&gt;
			&lt;p&gt;※このあたりは↑のスクリーンキャプチャのとおりです&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;これができたら、そのUIKitViewをApp Delegateに作っておいたOutlet（&lt;b&gt;chameleonView&lt;/b&gt;）に接続する。&lt;/p&gt;
			&lt;p&gt;以上で完了。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; ビルド＆ラン！&lt;/h4&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20111128103636&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20111128/20111128103636.png&quot; alt=&quot;f:id:tokorom:20111128103636p:image&quot; title=&quot;f:id:tokorom:20111128103636p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;実行してみたところ&lt;b&gt;UIImageView&lt;/b&gt;も&lt;b&gt;UIButton&lt;/b&gt;もきっちり動き、ボタン押下のアクションも問題なくハンドリングされていました。&lt;/p&gt;
			&lt;p&gt;なかなか面白いですね！&lt;/p&gt;
			&lt;h4&gt; UIKit.frameworkをappの中に含める設定&lt;/h4&gt;
			&lt;p&gt;なお、このままだとappとして出力した後にUIKit.frameworkが見つからなくて動作しなくなってしまう。&lt;/p&gt;
			&lt;p&gt;そのため、&lt;b&gt;Builde Phases&lt;/b&gt;に&lt;b&gt;Copy Files&lt;/b&gt;という項を追加し、そこにUIKit.frameworkを設定しておく必要がある。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/tokorom/20111130030943&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/tokorom/20111130/20111130030943.png&quot; alt=&quot;f:id:tokorom:20111130030943p:image&quot; title=&quot;f:id:tokorom:20111130030943p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/tokorom/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/share&quot; class=&quot;twitter-share-button&quot;&gt;ツイートする&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 28 Nov 2011 01:42:07 +0000</pubDate>
         <category>UIKit</category>
      </item>
      <item>
         <title>[iOS][cocos2d] cocos2d入門書「cocos2d for iPhoneレッスンノート」を書きました</title>
         <link>http://iphone-dev.g.hatena.ne.jp/paella/20110928/1317195179</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://akio0911.net&quot;&gt;拡張現実ライフ&lt;/a&gt;の@akio0911さんとの共著で、cocos2dの入門-初心者向けの「cocos2d for iPhoneレッスンノート」 なる本を書きました。３つのゲーム作成を通じて、cocos2dの中身や扱い方が学べるようになっている本です。&lt;/p&gt;			&lt;br&gt;

			&lt;div class=&quot;hatena-asin-detail&quot;&gt;
  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4899772882/hatena-hamazou-22/&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/51n6i1uC3vL._SL160_.jpg&quot; class=&quot;hatena-asin-detail-image&quot; alt=&quot;cocos2d for iPhone&amp;#x0030ec;&amp;#x0030c3;&amp;#x0030b9;&amp;#x0030f3;&amp;#x0030ce;&amp;#x0030fc;&amp;#x0030c8;&quot; title=&quot;cocos2d for iPhone&amp;#x0030ec;&amp;#x0030c3;&amp;#x0030b9;&amp;#x0030f3;&amp;#x0030ce;&amp;#x0030fc;&amp;#x0030c8;&quot;&gt;&lt;/a&gt;
  &lt;div class=&quot;hatena-asin-detail-info&quot;&gt;
    &lt;p class=&quot;hatena-asin-detail-title&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4899772882/hatena-hamazou-22/&quot;&gt;cocos2d for iPhoneレッスンノート&lt;/a&gt;&lt;/p&gt;
    &lt;ul&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;作者:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%B2%C3%C6%A3%B4%B2%BF%CD&quot; class=&quot;okeyword&quot;&gt;加藤寛人&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%BA%B4%C6%A3%BF%AD%B8%E3&quot; class=&quot;okeyword&quot;&gt;佐藤伸吾&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;出版社/メーカー:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%E9%A5%C8%A5%EB%A5%BA&quot; class=&quot;okeyword&quot;&gt;ラトルズ&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;発売日:&lt;/span&gt; 2011/09/22&lt;/li&gt;
                                                      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;メディア:&lt;/span&gt; 単行本（ソフトカバー）&lt;/li&gt;
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;購入&lt;/span&gt;: 15人 &lt;span class=&quot;hatena-asin-detail-label&quot;&gt;クリック&lt;/span&gt;: 355回&lt;/li&gt;
      &lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/asin/4899772882&quot;&gt;この商品を含むブログ (9件) を見る&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div class=&quot;hatena-asin-detail-foot&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
			&lt;br&gt;

			&lt;p&gt;cocos2dの本と言えば「&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/asin/4844330411&quot;&gt;cocos2dで作る iPhone＆iPadゲームプログラミング&lt;/a&gt;」&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/paella/#f1&quot; name=&quot;fn1&quot; title=&quot;&amp;#x003053;&amp;#x003061;&amp;#x003089;&amp;#x003067;&amp;#x003082;&amp;#x003001;&amp;#x0076e3;&amp;#x004fee;&amp;#x003068;&amp;#x003057;&amp;#x003066;&amp;#x00307b;&amp;#x003093;&amp;#x00306e;&amp;#x005c11;&amp;#x003057;&amp;#x00304a;&amp;#x00624b;&amp;#x004f1d;&amp;#x003044;&amp;#x003055;&amp;#x00305b;&amp;#x003066;&amp;#x003082;&amp;#x003089;&amp;#x003044;&amp;#x00307e;&amp;#x003057;&amp;#x00305f;&quot;&gt;*1&lt;/a&gt;&lt;/span&gt;が有名ですが、その中にない情報もいくつか載っています。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;たとえば、書籍としてはあまり紹介されることのない高性能サウンドエンジン：CocosDenshionについて、基本の使い方からサウンドのフェードイン/フェードアウトエフェクトを簡単に扱う方法などを説明しています。また、使いこなせるとすごく役立つイージングアクションの丁寧な説明が載っているのもポイントです。Flashコンテンツによくあるような、物体の滑らかな移動を使いこなせるわけですね。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;cocos2dは、iOS上で動く2Dゲームエンジンとしてはかなり強力なものであるにも関わらず、高速で使い勝手もよいフレームワークです（執筆している最中、何度もそのことを再認識しました）。世界中の開発者も使っているエンジンを使って、いっしょに楽しいアプリを作りませんか？&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;サンプルコードのダウンロードなど、サポートページは&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.rutles.net/books/288.html&quot;&gt;こちら&lt;/a&gt;です。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; リンク&lt;/h4&gt;
			&lt;ul&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://akio0911.net/archives/7887&quot;&gt;iOSゲームアプリ開発の入門書！「cocos2d for iPhoneレッスンノート」を執筆しました！＆予約開始！ - 拡張現実ライフ&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/Seasons/20110907/1315385809&quot;&gt;cocos2d入門向けとして最適!! 「cocos2d for iPhoneレッスンノート」が発売されるぞぉ〜〜！！ - Seasons.NET&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/nakamura001/20110907/1315412598&quot;&gt;2冊目の日本語のcocos2d本「cocos2d for iPhoneレッスンノート」 - 強火で進め&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xionchannel.blogspot.com/2011/09/cocos2d-for-iphone.html&quot;&gt;xionchannel@software: cocos2d for iPhone レッスンノート レビュー&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;

		&lt;/div&gt;
		&lt;div class=&quot;footnote&quot;&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/paella/#fn1&quot; name=&quot;f1&quot;&gt;*1&lt;/a&gt;：こちらでも、監修としてほんの少しお手伝いさせてもらいました&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 28 Sep 2011 07:32:59 +0000</pubDate>
      </item>
      <item>
         <title>今までに購入したiOS開発本</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sawat/20110914/1316016776</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;-&amp;gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/sawat/20110914/1316015167&quot;&gt; 今までに購入したiOS開発本 - sawatの日記&lt;/a&gt;&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/sawat/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 14 Sep 2011 16:12:56 +0000</pubDate>
      </item>
      <item>
         <title>[iAlbumPlayer] iAlbumPlayer-2.0.0をリリースしました。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sawat/20110914/1316016775</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/sawat/20110915010529&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/sawat/20110915/20110915010529.png&quot; alt=&quot;f:id:sawat:20110915010529p:image&quot; title=&quot;f:id:sawat:20110915010529p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/jp/app/ialbumplayer/id322962704?mt=8&quot;&gt;AppStoreへ&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;変更点は以下の通りです。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; アプリのアイコンと起動画面のイメージを変更しました。 &lt;/li&gt;
				&lt;li&gt; アーティスト選択画面にインデックスを追加しました。 &lt;/li&gt;
				&lt;li&gt; 画面を左右にスワイプして前や次のアルバムを選択する操作を追加しました。 &lt;/li&gt;
				&lt;li&gt; 細かいバグ修正。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;前回のアップデートからずいぶん間が開いてしまいましたが、今は結構アプリ作りたいモードなので近いうちにまたバージョンアップするかも。&lt;/p&gt;
			&lt;p class=&quot;share-button sectionfooter&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://b.hatena.ne.jp/entry/http://iphone-dev.g.hatena.ne.jp/sawat/%23&quot; class=&quot;hatena-bookmark-button&quot; title=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot;&gt;&lt;img src=&quot;http://b.st-hatena.com/images/entry-button/button-only.gif&quot; alt=&quot;&amp;#x003053;&amp;#x00306e;&amp;#x0030a8;&amp;#x0030f3;&amp;#x0030c8;&amp;#x0030ea;&amp;#x0030fc;&amp;#x003092;&amp;#x00306f;&amp;#x003066;&amp;#x00306a;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&amp;#x0030de;&amp;#x0030fc;&amp;#x0030af;&amp;#x00306b;&amp;#x008ffd;&amp;#x0052a0;&quot; width=&quot;20&quot; height=&quot;20&quot; style=&quot;border:none;&quot;/&gt;&lt;/a&gt;&lt;/p&gt; 

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 14 Sep 2011 16:12:55 +0000</pubDate>
         <category>iAlbumPlayer</category>
      </item>
      <item>
         <title>Cocos2dへSquirrelを組み込み</title>
         <link>http://iphone-dev.g.hatena.ne.jp/saika_makoto/20110214/1297704680</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;RPGに使う敵AIには組み込みスクリプトが必要なんじゃなかろうか？&lt;/p&gt;
			&lt;p&gt;ということでCocos2dのテンプレートにSquirrelを組込んでみることにしてみた。&lt;/p&gt;
			&lt;h4&gt; ダウンロード＆展開&lt;/h4&gt;
			&lt;ul&gt;
				&lt;li&gt; ダウンロード &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/squirrel/downloads/list&quot;&gt;http://code.google.com/p/squirrel/downloads/list&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;調べてみると3.0 betaが出てるようだ。&lt;/p&gt;
			&lt;p&gt;ひとまず squirrel_3_0_beta3.tar.gz をダウンロードして使ってみることにする。&lt;/p&gt;
			&lt;p&gt;ダウンロードしたファイルを解凍すると、以下の画像の様にフォルダのアクセス権がロックされてて中を見る事ができない。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/saika_makoto/20110215013508&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/saika_makoto/20110215/20110215013508.png&quot; alt=&quot;f:id:saika_makoto:20110215013508p:image&quot; title=&quot;f:id:saika_makoto:20110215013508p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;フォルダを選択して Command + i でフォルダ情報を表示し、everyone に読み／書き権限を設定する。このままだと下位のフォルダの権限は変更されないため、下のギアアイコンから「内包している項目に適用」を選択して全てのフォルダ権限を変更する。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/saika_makoto/20110215013509&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/saika_makoto/20110215/20110215013509.png&quot; alt=&quot;f:id:saika_makoto:20110215013509p:image&quot; title=&quot;f:id:saika_makoto:20110215013509p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;これで使用準備完了。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; Cocos2dプロジェクトへの組み込み&lt;/h4&gt;
			&lt;p&gt;Cocos2dから生成されるテンプレートのlibsフォルダの下に先ほど展開したSQUIRREL3フォルダをコピーする。&lt;/p&gt;
			&lt;p&gt;そして、cocos2d Sourcesフォルダ内に新規にSQUIRREL3グループを作成し、更にその中に以下の表の様なグループを作成しファイルをドラッグ＆ドロップで追加する。&lt;/p&gt;

			&lt;table&gt;
				&lt;tr&gt;&lt;td&gt;グループ名&lt;/td&gt;&lt;td&gt;コピーするファイル&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt; SQUIRREL3/include &lt;/td&gt;&lt;td&gt; libs/SQUIRREL3/include 内の全ファイル &lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt; SQUIRREL3/squirrel &lt;/td&gt;&lt;td&gt; libs/SQUIRREL3/squirrel 内の全ファイル &lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt; SQUIRREL3/sqstdlib &lt;/td&gt;&lt;td&gt; libs/SQUIRREL3/sqstdlib 内のsqstdrex_old.cppを除いた全ファイル &lt;/td&gt;&lt;/tr&gt;

			&lt;/table&gt;
			&lt;p&gt;sqstdrex_old.cppを入れておくとコンパイル時にエラーになるので外した。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/saika_makoto/20110215015129&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/saika_makoto/20110215/20110215015129.png&quot; alt=&quot;f:id:saika_makoto:20110215015129p:image&quot; title=&quot;f:id:saika_makoto:20110215015129p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;最後にヘッダファイルの検索パスに libs/SQUIRREL3/include を追加する。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/saika_makoto/20110215015130&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/s/saika_makoto/20110215/20110215015130.png&quot; alt=&quot;f:id:saika_makoto:20110215015130p:image&quot; title=&quot;f:id:saika_makoto:20110215015130p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;これで組み込みは完了。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt; Object-CからSquirrelスクリプトの呼び出し&lt;/h4&gt;
			&lt;p&gt;テストするスクリプトはこんなカンジ。&lt;/p&gt;
			&lt;p&gt;仮に test.nut とでも名付けようか。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
        function foo(i, f, s) 
        { 
            print(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;Called foo(), i=&amp;quot;&lt;/span&gt;+i+&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;, f=&amp;quot;&lt;/span&gt;+f+&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;, s='&amp;quot;&lt;/span&gt;+s+&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;); 
        } 
&lt;/pre&gt;

			&lt;p&gt;ここからはCの実装になる。&lt;/p&gt;
			&lt;p&gt;最初にVMマシンを生成する。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
HSQUIRRELVM v = sq_open(&lt;span class=&quot;synConstant&quot;&gt;1024&lt;/span&gt;);  &lt;span class=&quot;synComment&quot;&gt;//1024はコールスタックサイズ&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;続いて、エラーレポートやprintの出力先関数を登録する。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
sqstd_seterrorhandlers(v);
sq_setprintfunc(v, printfunc, printfunc); &lt;span class=&quot;synComment&quot;&gt;//sets the print function&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;プリント関数は以下のようになる。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
        &lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt; printfunc(HSQUIRRELVM v, &lt;span class=&quot;synType&quot;&gt;const&lt;/span&gt; SQChar *s, ...) 
        { 
                &lt;span class=&quot;synType&quot;&gt;va_list&lt;/span&gt; arglist; 
                va_start(arglist, s); 
                scvprintf(s, arglist); 
                va_end(arglist); 
        } 
&lt;/pre&gt;

			&lt;p&gt;続いて、VMマシンにスクリプトファイルを読み込ませる。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
sq_pushroottable(v);
sqstd_dofile(v, &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;test.nut&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;);
&lt;/pre&gt;

			&lt;p&gt;読み込みに成功したら、スクリプト内関数のfoo()を呼出してみよう。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt; call_foo(HSQUIRRELVM v, &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; n,&lt;span class=&quot;synType&quot;&gt;float&lt;/span&gt; f,&lt;span class=&quot;synType&quot;&gt;const&lt;/span&gt; SQChar *s)
{
    &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; top = sq_gettop(v); &lt;span class=&quot;synComment&quot;&gt;//saves the stack size before the call&lt;/span&gt;
    sq_pushroottable(v); &lt;span class=&quot;synComment&quot;&gt;//pushes the global table&lt;/span&gt;
    sq_pushstring(v,_SC(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;foo&amp;quot;&lt;/span&gt;),-&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;);
    &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt;(SQ_SUCCEEDED(sq_get(v,-&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;))) { &lt;span class=&quot;synComment&quot;&gt;//gets the field 'foo' from the global table&lt;/span&gt;
        sq_pushroottable(v); &lt;span class=&quot;synComment&quot;&gt;//push the 'this' (in this case is the global table)&lt;/span&gt;
        sq_pushinteger(v,n); 
        sq_pushfloat(v,f);
        sq_pushstring(v,s,-&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;);
        sq_call(v,&lt;span class=&quot;synConstant&quot;&gt;4&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;); &lt;span class=&quot;synComment&quot;&gt;//calls the function &lt;/span&gt;
    }
    sq_settop(v,top); &lt;span class=&quot;synComment&quot;&gt;//restores the original stack size&lt;/span&gt;
}
&lt;/pre&gt;

			&lt;p&gt;かなり端折って説明してしまったので、より詳細な解説を知りたい人は以下の資料を参考にしてみてください。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; 参考資料：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/EmbeddingGettingStarted.html&quot;&gt;http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/EmbeddingGettingStarted.html&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;h4&gt; SquirrelスクリプトからC関数の呼び出し&lt;/h4&gt;
			&lt;p&gt;ついでにスクリプトからC関数を呼出す方法。&lt;/p&gt;
			&lt;p&gt;、、、眠いので詳細は後ほど。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; 参考資料：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SquirrelCallToCpp.html&quot;&gt;http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SquirrelCallToCpp.html&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;			&lt;br&gt;

			&lt;h4&gt; SquirrelとPythonの比較&lt;/h4&gt;
			&lt;p&gt;組み込みスクリプトの候補としてPythonも考えたがソースコード量が多い点がネックとなり、今回は見送りました。&lt;/p&gt;

			&lt;table&gt;
				&lt;tr&gt;&lt;td&gt; 種類 &lt;/td&gt;&lt;td&gt; コードサイズ &lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt; Python &lt;/td&gt;&lt;td&gt; ヘッダ＋ソースで２MB程度 &lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt; Squirrel &lt;/td&gt;&lt;td&gt; ヘッダ＋ソースで５００KB程度 &lt;/td&gt;&lt;/tr&gt;

			&lt;/table&gt;
			&lt;p&gt;２MBもあったらゲーム本体のソースより多くなりそうな気がする。。。&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;h4&gt; 組み込み済みのプロジェクト&lt;/h4&gt;
			&lt;p&gt;今回の説明のためにCocos2dのテンプレートにSquirrelを組込んでみたサンプル。&lt;/p&gt;
			&lt;p&gt;HelloWorldScene.mの-(id) initからtest.nutをロードしてfoo()関数を呼出しています。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://files.me.com/penguin.dream/pzk5zm&quot;&gt;https://files.me.com/penguin.dream/pzk5zm&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;※リンクは３ヶ月間のみ有効です。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 14 Feb 2011 17:31:20 +0000</pubDate>
      </item>
      <item>
         <title>[AVFoundation][AVAssetWriterInput] AVCaptureVideoDataOutputを使って縦方向のムービーを撮る方法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/paella/20110210/1297354542</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ムービーを撮影しているときにデータをフレーム毎に処理したい場合、AVCaptureVideoDataOutputクラスを使用します。しかしこのクラス、他と違ってsupportsVideoOrientationプロパティに全てNOを返すようです(4.2で確認)。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; (AVCaptureConnection *connection &lt;span class=&quot;synType&quot;&gt;in&lt;/span&gt; videoWriterOutput_.connections) {
    &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (connection.supportsVideoOrientation) {
        &lt;span class=&quot;synComment&quot;&gt;// ここに入ってこない！&lt;/span&gt;
        connection.videoOrientation = orientation;
    }
}
&lt;/pre&gt;

			&lt;p&gt;ですので、そのままAVAssetWriter&amp;AVAssetWriterInputでムービーファイルを作成すると、縦に持っていようが逆さまに持っていようが横向き(ホームボタンが右)のムービーが出来上がってしまいます。そんな見にくいムービーは要りません。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;これを解決するには、AVAssetWriterInputクラスのtransformプロパティを使います。縦方向のムービーにしたい場合のコードは以下のとおりです。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
assetWriter_ = [[AVAssetWriter assetWriterWithURL:saveLocationURL
                     fileType:AVFileTypeQuickTimeMovie
                     error:&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;error] retain];

NSDictionary *outputSettings = &lt;span class=&quot;synConstant&quot;&gt;NULL&lt;/span&gt;;
outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                     AVVideoCodecH264, AVVideoCodecKey,
                     [NSNumber numberWithInt:(&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt;)frameSize.width], AVVideoWidthKey,
                     [NSNumber numberWithInt:(&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt;)frameSize.height], AVVideoHeightKey,
                     &lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt; ];
videoWriterInput_ = [[AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeVideo
                     outputSettings:outputSettings] retain];
[videoWriterInput_ setExpectsMediaDataInRealTime:YES];

&lt;span class=&quot;synComment&quot;&gt;// 縦方向で録画するように変換行列を指定&lt;/span&gt;
CGAffineTransform transform = CGAffineTransformIdentity;
transform = CGAffineTransformTranslate(transform, frameSize.width/&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;, frameSize.height/&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;);
transform = CGAffineTransformRotate(transform, &lt;span class=&quot;synConstant&quot;&gt;90&lt;/span&gt;/&lt;span class=&quot;synConstant&quot;&gt;180.0f&lt;/span&gt;*PI); &lt;span class=&quot;synComment&quot;&gt;// ここでorientationを指定&lt;/span&gt;
&lt;span class=&quot;synComment&quot;&gt;//transform = CGAffineTransformScale(transform, 1.0, -1.0); // ← 間違い。左右反転してしまいます&lt;/span&gt;
transform = CGAffineTransformScale(transform, &lt;span class=&quot;synConstant&quot;&gt;1.0&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;1.0&lt;/span&gt;);
videoWriterInput_.transform = transform;
[assetWriter_ addInput:videoWriterInput_];
&lt;/pre&gt;

			&lt;p&gt;AVAssetWriter&amp;AVAssetWriterInputの初期化処理も自分メモ気味に書いてありますが、メインはtransformプロパティのところです。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;これで無事に縦方向で保存されます。&lt;/p&gt;
			&lt;p&gt;良かった良かった。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 10 Feb 2011 16:15:42 +0000</pubDate>
      </item>
      <item>
         <title>[書籍] iOS4プログラミングブックの書評</title>
         <link>http://iphone-dev.g.hatena.ne.jp/paella/20110208/1297136141</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;FastEverをはじめとしたステキなアプリを開発していて、札幌にて精力的な活動を続けていらっしゃる &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/frnk/&quot;&gt;id:frnk&lt;/a&gt; さんが、書籍「iOS4プログラミングブック」の&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/frnk/20110208/1297133398&quot;&gt;書評を書いてくれました&lt;/a&gt;。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;　　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/frnk/&quot;&gt;らっこのじゆうちょう&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;元々は「この本を使って、またステキなアプリを作ってくださいね」という下心全開でお送りしたのですが、書評まで書いていただいて嬉しい限りです。&lt;/p&gt;
			&lt;p&gt;さらには文中にて、&lt;/p&gt;			&lt;br&gt;

			&lt;blockquote&gt;
			&lt;p&gt;アプリ開発本を書くということは、読んだアプリ作者のためだけでなく、&lt;/p&gt;
			&lt;p&gt;そのユーザーさん全てのメリットになることなんだなあ、と改めて思いました。&lt;/p&gt;
			&lt;/blockquote&gt;			&lt;br&gt;

			&lt;p&gt;という、私たちが考えていたことを見透かすようなコメントまで書いてくれています。アプリ開発に対して何かをするということは、その先にいるユーザーに対してのおもてなしを提供することに他なりません。この本で開発者が楽をするのではなく、ユーザーが楽しめるにはということをずっと意識して書いていたのです。&lt;/p&gt;
			&lt;p&gt;さすがfrnkさん、ありがとうございます。&lt;/p&gt;			&lt;br&gt;

			&lt;div class=&quot;hatena-asin-detail&quot;&gt;
  &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4844329766/hatena-hamazou-22/&quot;&gt;&lt;img src=&quot;http://ecx.images-amazon.com/images/I/51uBscIjG8L._SL160_.jpg&quot; class=&quot;hatena-asin-detail-image&quot; alt=&quot;iOS4&amp;#x0030d7;&amp;#x0030ed;&amp;#x0030b0;&amp;#x0030e9;&amp;#x0030df;&amp;#x0030f3;&amp;#x0030b0;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&quot; title=&quot;iOS4&amp;#x0030d7;&amp;#x0030ed;&amp;#x0030b0;&amp;#x0030e9;&amp;#x0030df;&amp;#x0030f3;&amp;#x0030b0;&amp;#x0030d6;&amp;#x0030c3;&amp;#x0030af;&quot;&gt;&lt;/a&gt;
  &lt;div class=&quot;hatena-asin-detail-info&quot;&gt;
    &lt;p class=&quot;hatena-asin-detail-title&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.amazon.co.jp/exec/obidos/ASIN/4844329766/hatena-hamazou-22/&quot;&gt;iOS4プログラミングブック&lt;/a&gt;&lt;/p&gt;
    &lt;ul&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;作者:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%C8%AA%B7%BD%CA%E5&quot; class=&quot;okeyword&quot;&gt;畑圭輔&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%B2%C3%C6%A3%B4%B2%BF%CD&quot; class=&quot;okeyword&quot;&gt;加藤寛人&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%BA%E4%CB%DC%B0%EC%BC%F9&quot; class=&quot;okeyword&quot;&gt;坂本一樹&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%C6%A3%C0%EE%B9%A8%C7%B7&quot; class=&quot;okeyword&quot;&gt;藤川宏之&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%B9%E2%B6%B6%B7%BC%BC%A3%CF%BA&quot; class=&quot;okeyword&quot;&gt;高橋啓治郎&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%B2%AD%C5%C4%C3%CE%C9%A7&quot; class=&quot;okeyword&quot;&gt;沖田知彦&lt;/a&gt;,&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%CC%F8%DF%B7%BE%BA&quot; class=&quot;okeyword&quot;&gt;柳澤昇&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;出版社/メーカー:&lt;/span&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%D7%A5%EC%A5%B9%A5%B8%A5%E3%A5%D1%A5%F3&quot; class=&quot;okeyword&quot;&gt;インプレスジャパン&lt;/a&gt;&lt;/li&gt;
      
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;発売日:&lt;/span&gt; 2011/01/27&lt;/li&gt;
                                                      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;メディア:&lt;/span&gt; 単行本（ソフトカバー）&lt;/li&gt;
      &lt;li&gt;&lt;span class=&quot;hatena-asin-detail-label&quot;&gt;購入&lt;/span&gt;: 26人 &lt;span class=&quot;hatena-asin-detail-label&quot;&gt;クリック&lt;/span&gt;: 910回&lt;/li&gt;
      &lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/asin/4844329766&quot;&gt;この商品を含むブログ (33件) を見る&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div class=&quot;hatena-asin-detail-foot&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 08 Feb 2011 03:35:41 +0000</pubDate>
      </item>
      <item>
         <title>Cocos2dのCCSprite覚え書き</title>
         <link>http://iphone-dev.g.hatena.ne.jp/saika_makoto/20110201/1296578007</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;Cocos2dでよくお世話になるCCSpriteについて覚え書き。&lt;/p&gt;
			&lt;h4&gt;画像ファイルからCCSpriteを生成する&lt;/h4&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
CCSprite *sprite = [CCSprite spriteWithFile:@&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;my_texture.png&amp;quot;&lt;/span&gt;];
[self addChild:sprite];
&lt;/pre&gt;

			&lt;h4&gt;CCTexture2DからCCSpriteを生成する&lt;/h4&gt;
			&lt;p&gt;画像のサイズは２の階乗になってなくてもOK。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
NSString *imgPath = @&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;my_texture.png&amp;quot;&lt;/span&gt;;
CCTexture2D *tex = [[CCTextureCache sharedTextureCache] addImage:imgPath];
CCSprite *sprite = [CCSprite spriteWithTexture:tex rect:CGRectMake(&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,width,height)];
[self addChild:sprite];
&lt;/pre&gt;

			&lt;h4&gt;CCSpriteを半透明にする&lt;/h4&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
CCSprite *sprite = [CCSprite spriteWithFile:@&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;my_texture.png&amp;quot;&lt;/span&gt;];
[sprite setOpacity:&lt;span class=&quot;synConstant&quot;&gt;128&lt;/span&gt;];     &lt;span class=&quot;synComment&quot;&gt;// 50% alpha (0〜255)&lt;/span&gt;
[self addChild:sprite];
&lt;/pre&gt;

			&lt;h4&gt;子階層のCCNodeを全て破棄する&lt;/h4&gt;
			&lt;p&gt;第一引数をYESにすると、actionとcallbackもリムーブされる。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
[self removeAllChildrenWithCleanup:YES];
&lt;/pre&gt;
			&lt;br&gt;
			&lt;br&gt;

			&lt;ol&gt;
				&lt;li&gt;参考資料：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cocos2d-x.org/embedded/cocos2d-x/d4/de7/classcocos2d_1_1_c_c_sprite.html&quot;&gt;http://www.cocos2d-x.org/embedded/cocos2d-x/d4/de7/classcocos2d_1_1_c_c_sprite.html&lt;/a&gt;&lt;/li&gt;
			&lt;/ol&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 01 Feb 2011 16:33:27 +0000</pubDate>
      </item>
      <item>
         <title>beanstalkのSVN履歴操作</title>
         <link>http://iphone-dev.g.hatena.ne.jp/saika_makoto/20110129/1296279738</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ストレージ容量がいっぱいになってしまった場合の解決策があったのであわせてメモ。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;解決策３点&lt;/p&gt;
			&lt;ol&gt;
				&lt;li&gt;プランをアップグレードする&lt;/li&gt;
				&lt;li&gt;リポジトリをエクスポートし（バックアップのため）元のリポジトリを削除。ワーキングコピーから不要なファイルを消してインポートしなおす。&lt;/li&gt;
				&lt;li&gt; &quot;svndumpfilter&quot;を使って履歴を編集する。&lt;/li&gt;
			&lt;/ol&gt;			&lt;br&gt;

			&lt;p&gt;２の方法は過去の履歴が完全に消えてしまうためリビジョン１から出直す事になる。&lt;/p&gt;
			&lt;p&gt;&quot;svndumpfilter&quot;を使う場合は、削除されたファイルの履歴のみ消すことができる。&lt;/p&gt;
			&lt;p&gt;&quot;svndumpfilter&quot;の使い方：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://help.beanstalkapp.com/kb/basics-11/how-can-i-permanently-remove-files-from-a-repository&quot;&gt;http://help.beanstalkapp.com/kb/basics-11/how-can-i-permanently-remove-files-from-a-repository&lt;/a&gt;。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;参考資料：&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://help.beanstalkapp.com/kb/account-billing/exceeding-account-storage&quot;&gt;http://help.beanstalkapp.com/kb/account-billing/exceeding-account-storage&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 29 Jan 2011 05:42:18 +0000</pubDate>
      </item>
      <item>
         <title>SVNホスティングサービス比較</title>
         <link>http://iphone-dev.g.hatena.ne.jp/saika_makoto/20110129/1296276210</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;そろそろソースをバージョン管理しようと、プライベートで管理できるようなSVNホスティングサービスを探してみました。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;結論から先に言うと&lt;/p&gt;
			&lt;p&gt;【容量と値段のコストパフォーマンス】&lt;/p&gt;
			&lt;p&gt;xp-dev＞beanstalk＞unfuddle&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;【使いやすさ】&lt;/p&gt;
			&lt;p&gt;beanstalk＞＞unfuddle＞＞xp-dev&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;趣味で月々数百円程度で使いたいならxp-devが有力候補。&lt;/p&gt;
			&lt;p&gt;「仕事でバッチリ使うから１０００円以上払ってもいいぜ」って人にはbeanstalkがオススメ。&lt;/p&gt;			&lt;br&gt;

			&lt;h4&gt;実際に使ってみた感想&lt;/h4&gt;
			&lt;h5&gt;xp-dev&lt;/h5&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.xp-dev.com/&quot;&gt;http://www.xp-dev.com/&lt;/a&gt;&lt;/p&gt;

			&lt;table&gt;
				&lt;tr&gt;&lt;td&gt;プラン&lt;/td&gt;&lt;td&gt;料金&lt;/td&gt;&lt;td&gt;容量&lt;/td&gt;&lt;td&gt;プロジェクト数&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;FREE&lt;/td&gt;&lt;td&gt;ー&lt;/td&gt;&lt;td&gt;２００M&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Pro Small&lt;/td&gt;&lt;td&gt;５＄／月&lt;/td&gt;&lt;td&gt;１G&lt;/td&gt;&lt;td&gt;無制限&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Pro Medium&lt;/td&gt;&lt;td&gt;１５＄／月&lt;/td&gt;&lt;td&gt;４G&lt;/td&gt;&lt;td&gt;無制限&lt;/td&gt;&lt;/tr&gt;
			&lt;/table&gt;
			&lt;p&gt;ガチ技術者が作ったカンジのSVNホスティングサービス。&lt;/p&gt;
			&lt;p&gt;日本語表示、日本語ファイル名も問題なく対応。&lt;/p&gt;
			&lt;p&gt;フリーで試せて有料のプランも安いサービス。リポジトリのダンプもDLできる。&lt;/p&gt;
			&lt;p&gt;ただ管理ページの使い勝手がいまいちで、英語が苦手な人は立ち往生するかも。&lt;/p&gt;
			&lt;p&gt;Wikiなどが完備されているが少々分かりずらい。&lt;/p&gt;
			&lt;p&gt;コストパフォーマンス重視の英語OKな技術者向け。&lt;/p&gt;			&lt;br&gt;

			&lt;h5&gt;unfuddle&lt;/h5&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://unfuddle.com/&quot;&gt;http://unfuddle.com/&lt;/a&gt;&lt;/p&gt;

			&lt;table&gt;
				&lt;tr&gt;&lt;td&gt;プラン&lt;/td&gt;&lt;td&gt;料金&lt;/td&gt;&lt;td&gt;容量&lt;/td&gt;&lt;td&gt;プロジェクト数&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;FREE&lt;/td&gt;&lt;td&gt;ー&lt;/td&gt;&lt;td&gt;２００M&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Micro&lt;/td&gt;&lt;td&gt;９＄／月&lt;/td&gt;&lt;td&gt;５１２M&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Compact&lt;/td&gt;&lt;td&gt;２４＄／月&lt;/td&gt;&lt;td&gt;２G&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
			&lt;/table&gt;
			&lt;p&gt;日本語表示、日本語ファイル名も問題なく対応。&lt;/p&gt;
			&lt;p&gt;xp-devより管理画面が親切。SVNサービスの他にプロジェクト単位の管理も行える。&lt;/p&gt;
			&lt;p&gt;Wikiなども分かりやすく完備されているので、その点は便利。&lt;/p&gt;
			&lt;p&gt;評判はいいけど、有料化しても容量が５１２Mなのはちょっと心細い。&lt;/p&gt;			&lt;br&gt;

			&lt;h5&gt;beanstalk&lt;/h5&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://beanstalkapp.com/&quot;&gt;http://beanstalkapp.com/&lt;/a&gt;&lt;/p&gt;

			&lt;table&gt;
				&lt;tr&gt;&lt;td&gt;プラン&lt;/td&gt;&lt;td&gt;料金&lt;/td&gt;&lt;td&gt;容量&lt;/td&gt;&lt;td&gt;プロジェクト数&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Tryal&lt;/td&gt;&lt;td&gt;ー&lt;/td&gt;&lt;td&gt;１００M&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Brons&lt;/td&gt;&lt;td&gt;１５＄／月&lt;/td&gt;&lt;td&gt;３G&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tr&gt;
				&lt;tr&gt;&lt;td&gt;Silver&lt;/td&gt;&lt;td&gt;２５＄／月&lt;/td&gt;&lt;td&gt;６G&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;/tr&gt;
			&lt;/table&gt;
			&lt;p&gt;日本語表示、日本語ファイル名も問題なく対応。&lt;/p&gt;
			&lt;p&gt;管理ページがとてもよくできていて、英語が苦手な人でも十分使えるだろう。&lt;/p&gt;
			&lt;p&gt;Wikiなどの機能がないけど、よほど大規模開発にならなければいらない。&lt;/p&gt;
			&lt;p&gt;お値段だけがちょっと高いけどその価値のあるサービス。&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;p&gt;長くつきあうならbeanstalkが良さそうかなぁ。&lt;/p&gt;
			&lt;p&gt;１００M使いきるまでトライアルしてみよう。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 29 Jan 2011 04:43:30 +0000</pubDate>
      </item>
      <item>
         <title>はてなグループでアクセス解析</title>
         <link>http://iphone-dev.g.hatena.ne.jp/saika_makoto/20110126/1296057052</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;はてなダイアリーでははてなカウンタ（有料）という解析ツールが使えるらしいが、グループでは使えないらしい。&lt;/p&gt;
			&lt;p&gt;そこで、はてなグループでGoogle Analyticsのアクセス解析が行えないか調査してみました。&lt;/p&gt;
			&lt;p&gt;ウェブはあまり詳しくないので間違っている所があるかもしれませんが、覚え書きに日記に書いておきます。&lt;/p&gt;
			&lt;p&gt;もし間違っている点があれば後日修正します。&lt;/p&gt;			&lt;br&gt;

			&lt;ul&gt;
				&lt;li&gt;Google Analytics&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/analytics/&quot;&gt;http://www.google.com/analytics/&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;Google Analyticsはgmailアカウントがあれば利用できます。&lt;/p&gt;
			&lt;p&gt;はてなグループの詳細設定でScriptタグを記述するとタグがエスケープされてしまうが、Googleガジェットを設置することはできるそうです。&lt;/p&gt;
			&lt;p&gt;以下がアクセス解析を行うGoogleがジェットコード。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;?xml version=&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; encoding=&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;?&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;Module&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
 &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;ModulePrefs title=&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;Google Analytics for whatever-you-want&amp;quot;&lt;/span&gt;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
  &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;Require feature=&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;analytics&amp;quot;&lt;/span&gt;/&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
 &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;/ModulePrefs&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
 &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;Content type=&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;html&amp;quot;&lt;/span&gt;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;![CDATA[
  &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;script&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;_IG_Analytics(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;UA-XXXXXXX-X&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;/whatever-you-want&amp;quot;&lt;/span&gt;)&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;/script&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;]]&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
 &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;/Content&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;/Module&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synError&quot;&gt;;&lt;/span&gt;
&lt;/pre&gt;

			&lt;ol&gt;
				&lt;li&gt;UA-XXXXXXX-X の部分を自分のGoogle AnalyticsのIDに、whatever-you-wantの部分を自分のブログIDにしたファイルを作成します。&lt;/li&gt;
				&lt;li&gt;ファイル名は仮に analytics.xml とします。（各自ご自由に！）&lt;/li&gt;
				&lt;li&gt;保存したファイルをインターネットでアクセスできるサーバにアップします。&lt;/li&gt;
			&lt;/ol&gt;
			&lt;p&gt;コードはhfuさんのブログに記載されていたものを参考にしました。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;参考資料&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/hfu/20071010/1192078147&quot;&gt;http://d.hatena.ne.jp/hfu/20071010/1192078147&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;次にそのガジェットのXMLを読み込むコードを詳細設定のフッダに追記する。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;script src=&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;http://gmodules.com/ig/ifr?url=http://whatever-you-want/analytics.xml&amp;amp;#38;amp;&amp;amp;#38;amp;synd=open&amp;amp;#38;amp;w=250&amp;amp;#38;amp;h=30&amp;amp;#38;amp;title=&amp;amp;#38;amp;border=0&amp;amp;#38;amp;output=js&amp;quot;&lt;/span&gt;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;;&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;/script&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;;
&lt;/pre&gt;

			&lt;p&gt;whatever-you-want/のパスはさきほどのGoogleガジェットのXMLファイルをアップした場所を指定してください。&lt;/p&gt;
			&lt;p&gt;アクセス解析の結果は１〜２時間おきに反映されるらしいです。&lt;/p&gt;
			&lt;p&gt;明日の朝チェックしてみて、うまく動作してるといいなぁ。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 26 Jan 2011 15:50:52 +0000</pubDate>
      </item>
      <item>
         <title>[ref]</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100928/1285663890</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/glass-_-onion/20100802/1280758789&quot;&gt;http://d.hatena.ne.jp/glass-_-onion/20100802/1280758789&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/coizne/20100909/1283988193&quot;&gt;http://d.hatena.ne.jp/coizne/20100909/1283988193&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;後デザイン関係&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kachibito.net/marketing/40-minimal-business-card-dessign.html&quot;&gt;http://kachibito.net/marketing/40-minimal-business-card-dessign.html&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;ここら辺みてかっちょいいかんじのつくれないかなー。昔はてなのテーマ作ってたときもこんな感じのに（色は）最終的に収まって行った気はするけどどうも二次元配置能力が低いようだ...&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 28 Sep 2010 08:51:30 +0000</pubDate>
         <category>ref</category>
      </item>
      <item>
         <title>[UnitTest]&quot;An internal error occurred when handling command output:&quot;</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100928/1285654198</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://stackoverflow.com/questions/3516745/sentestcase-in-xcode-3-2-and-xcbuildlogcommandinvocationsection-errors&quot; title=&quot;SenTestCase in Xcode 3.2 and XCBuildLogCommandInvocationSection Errors - Stack Overflow&quot;&gt;http://stackoverflow.com/questions/3516745/sentestcase-in-xcode-3-2-and-xcbuildlogcommandinvocationsection-errors&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;これが解決法なんだけどどこをかきかえりゃいいんだ！&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;p&gt;rabbit2goさんありがとうございました。無事解決しました。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gist.github.com/586296&quot;&gt;http://gist.github.com/586296&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;あーでもやっぱOCMock使おうとすると同じの出るなぁ。どこの設定をいじくればよいのかいまいちわからんな。。。うーむ。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 28 Sep 2010 06:09:58 +0000</pubDate>
         <category>UnitTest</category>
      </item>
      <item>
         <title>[UIPopover]Popover出したい！</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100916/1284628290</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ということでいろいろ試した。&lt;/p&gt;
			&lt;p&gt;PopoverはUIPopoverControllerオブジェクトを利用する。で、このオブジェクトはIBにはないので、コードで書かなきゃいけない（ということに気づくまでかなりかかった）わけで。だがIBを使わない方法がわからない初心者にとっては(ry&lt;/p&gt;
			&lt;p&gt;UIPopoverControllerは中にたいていのViewは取り込めてしまう模様。インスタンスを作るときは&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
UIViewController* targetView = [[[UIViewController alloc]init] autorelease];
UIPopoverController* popover = [[UIPopoverController alloc]initWithCOntentViewController:targetView];
&lt;/pre&gt;

			&lt;p&gt;UIViewControllerの作り方ってこれでいいんだっけ；あとでテーブルヴューの場合で書いときます。&lt;/p&gt;
			&lt;p&gt;表示に際しては自分でデリゲートを受け取ってやる必要があるようです。たぶん。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
popover.delgate = &lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;.view;
&lt;/pre&gt;

			&lt;p&gt;警告が出てるのでなんかもっとやり方があるのかも。&lt;/p&gt;
			&lt;p&gt;実際に表示させるところは&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt;(!popover.popoverVisible){
		[popover presentPopoverFromBarButtonItem:&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
	}
&lt;/pre&gt;

			&lt;p&gt;この場合はメインのナビゲーションバーの右側のアイテムをタップすると表示されるようになっています。こまけぇことはまだわかりませんorz&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;とりあえずよくあるようにpopoverにTableView上のメニューを表示させるやり方。表示だけでpopoverの中で何か操作ができる訳ではありません。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;

&lt;span class=&quot;synComment&quot;&gt;//TableViewを作る&lt;/span&gt;
UITableView* tableView = [[UITableView alloc]initWithFrame:CGRectMake(&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;300&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;300&lt;/span&gt;) style:UITableViewStylePlain];

&lt;span class=&quot;synComment&quot;&gt;//TableViewControllerを作る&lt;/span&gt;
UITableViewController *settingVC = [[UITableViewController alloc]initWithStyle:UITableViewStylePlain];

&lt;span class=&quot;synComment&quot;&gt;//ControllerとViewをくっつける&lt;/span&gt;
[settingVC.view addSubview:tableView];

&lt;span class=&quot;synComment&quot;&gt;//とりあえずNavigation Barもつけておく&lt;/span&gt;
NSString* settings = NSLocalizedString(&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;Settings&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;Settings&amp;quot;&lt;/span&gt;);
UINavigationController* theNavController = [[UINavigationController alloc]initWithRootViewController:settingVC];
theNavController.navigationBar.topItem.title = settings;
[theNavController setNavigationBarHidden:NO];
[theNavController setToolbarHidden:NO];

&lt;span class=&quot;synComment&quot;&gt;//イベントが来たら表示する&lt;/span&gt;
popover = [[UIPopoverController alloc]initWithCOntentViewCOntroller:theNavController];
popover.delegate = &lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;.view;
[settingVC release];
[theNavController release];
[tableView release];
[listOfContents release];

&lt;span class=&quot;synComment&quot;&gt;//popoverが表示されていなかったら表示する&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt;(!popover.popoverVisible){
    [popover presentPopoverFromBarButtonItem:&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}

[popover release];

&lt;/pre&gt;

			&lt;p&gt;その場でオブジェクトつくって表示させていますが、popoverとかtableViewとかその他諸々はインクルードファイルの法で作るべきかとはおもいます。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 16 Sep 2010 09:11:30 +0000</pubDate>
         <category>UIPopover</category>
      </item>
      <item>
         <title>[NSArray][UINavigationBar]</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100916/1284625131</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;blockquote title=&quot;NSArray&amp;#x00306b;&amp;#x003064;&amp;#x003044;&amp;#x003066;&quot; cite=&quot;http://konton.ninpou.jp/program/cocoa/dataobject/nsarray.html&quot;&gt;
			&lt;p&gt;オブジェクトを列挙してNSArrayを作りたい -  initWithObjects:&lt;/p&gt;
			&lt;p&gt;                    &lt;/p&gt;
			&lt;p&gt;                    - (id)initWithObjects:(id)firstObj, ...&lt;/p&gt;
			&lt;p&gt;                    &lt;/p&gt;
			&lt;p&gt;                    &lt;/p&gt;
			&lt;p&gt;                    オブジェクトを順番に列挙してゆくことで、それらを格納したNSArrayを作ります。列挙したオブジェクトには順番に0, 1, 2, &lt;/p&gt;
			&lt;p&gt;                    …とインデックスが割り当てられます。一番最後にnilを指定します。このメソッドはUISegmentControlの要素を作るのによく使われます。&lt;/p&gt;
			&lt;p&gt;                    以下の例は3つに分かれたUISegmentControlを作る時のコードの一部です。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
                    
NSArray *items = [[NSArray alloc] initWithObjects:@&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;quot;少ない&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;quot;,@&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;quot;中程度&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;quot;,@&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;quot;多い&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;;quot;,&lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt;];
UISegmentControl *sControl = [[UISegmentedControl alloc]initWithItems:items];
[items release];

&lt;/pre&gt;

			&lt;cite&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://konton.ninpou.jp/program/cocoa/dataobject/nsarray.html&quot;&gt;NSArrayについて&lt;/a&gt;&lt;/cite&gt;&lt;/blockquote&gt;
			&lt;p&gt;ピンポイントすぐる。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 16 Sep 2010 08:18:51 +0000</pubDate>
      </item>
      <item>
         <title>とあるアイディア…</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sohei/20100910/p1</link>
         <description>d:id:yamaryoxxxx:20100908#1283952232  実は最初に作ったアプリはまさにこれ。 「RemoteVibe」ってやつ作った。P2P通信でiPhone2台で…(ry 社内では発表したんだけど、Appleの審査通れず無念な思いをした。 機会があればどこかで出したい。 [f:id:sohei:20100910124714j:image:h200]</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 09 Sep 2010 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[GUI][UIColor]おおこれは便利</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100908/1283928440</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hirano-dept.com/blog/2010/02/iphone-uicolor.html&quot;&gt;http://www.hirano-dept.com/blog/2010/02/iphone-uicolor.html&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;16進数で指定。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define HEXCOLOR(c) [UIColor colorWithRed:((c&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0xFF&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;255.0&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt; green:((c&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0xFF&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)) /&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;255.0&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt; blue:(c&amp;amp;#&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0xFF&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)/&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;255.0&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt; alpha:&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1.0&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;色見本&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.colordic.org/&quot;&gt;http://www.colordic.org/&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;個人的には一番ここが好き。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 08 Sep 2010 06:47:20 +0000</pubDate>
      </item>
      <item>
         <title>[view][GUI]viewからnavigation Controllerに移動して表示ができた！！！</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100907/1283850077</link>
         <description>&lt;br&gt;

		&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;やっとできたー。本のとおりから少し変形したらできなくなるとか…もうね…orz&lt;/p&gt;
			&lt;h4&gt;やっていること&lt;/h4&gt;
			&lt;ol&gt;
				&lt;li&gt;MainWindowにViewを貼り付ける。&lt;/li&gt;
				&lt;li&gt;ViewにさらにNavigationControllerを貼り付けてその中にViewを表示する&lt;/li&gt;
			&lt;/ol&gt;
			&lt;h4&gt;問題だったところ&lt;/h4&gt;
			&lt;p&gt;XxxAppDelegate.hで、&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synComment&quot;&gt;/*XxxAppDelegate.h*/&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;@interface&lt;/span&gt; XxxAppDelegate : NSObeject&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;UIApplicationDelegate&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;;{
    UIWindow *window;
    UIViewController *controller;
}
&lt;/pre&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synComment&quot;&gt;/*XxxAppDelegate.h*/&lt;/span&gt;
@synthesize controller;
(中略)
controller = [[MainViewController alloc]initWithNibName:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;MainView&amp;quot;&lt;/span&gt; bundle:[NSBundle mainBundle]];
&lt;/pre&gt;

			&lt;p&gt;って宣言してたんだけどインクルードファイルが問題だった様子。貼り付けるViewのサブクラスをMainViewControllerとするとき、ここはUIViewControllerではなくMainViewControllerとすべき、らしい。&lt;/p&gt;
			&lt;p&gt;ここをUIViewControllerにしていると、&quot;loaded the &quot;*&quot; nib but the view outlet was not set.&quot;とか&quot;unrecognized selector sent to instance xxx&quot;とかいわれるらしい。前者のほうは違う原因の気もするけれども…。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 07 Sep 2010 09:01:17 +0000</pubDate>
      </item>
      <item>
         <title>[GUI]部品のプロパティ参照したりとかってどうやってするの？</title>
         <link>http://iphone-dev.g.hatena.ne.jp/still_noname/20100907/1283838677</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;Visual StudioでいうところのコントロールにNameを指定すれば、同じクラスの中ではNameにアクセスすればプロパティ見たり操作したりできる、っていうのをどうやってすればいいんだ！！！Nameってあるけどなんかオブジェクトとして使えるわけじゃないし…とかって悩んでたんだけどやっと解決した。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synComment&quot;&gt;//hoge.h&lt;/span&gt;
&lt;span class=&quot;synStatement&quot;&gt;@interface&lt;/span&gt; hoge:UIViewController{
    IBOutlet UILabel *message;
    IBOutlet UIView *view1;
}

&lt;span class=&quot;synStatement&quot;&gt;@end&lt;/span&gt;
&lt;/pre&gt;
			&lt;br&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synComment&quot;&gt;//hoge.m&lt;/span&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)viewDidLoad{
    [&lt;span class=&quot;synStatement&quot;&gt;super&lt;/span&gt; viewDidLoad];
&lt;span class=&quot;synComment&quot;&gt;//IB使う場合&lt;/span&gt;
    message.txt = &lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;MESSAGE&amp;quot;&lt;/span&gt;;
    [view1.layer setCornerRadius:&lt;span class=&quot;synConstant&quot;&gt;10.0&lt;/span&gt;];
    [view1.layer setBorderColor:[[UIColor grayColor]CGColor]];

&lt;span class=&quot;synComment&quot;&gt;//IB使わない場合（view1に貼り付けてみる)&lt;/span&gt;
    UILabel *message2 = [[[UILabel alloc]initWithFrame:CGRectMake(&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;30&lt;/span&gt;)] autorelease];
    message2.text = &lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;MESSAGE2&amp;quot;&lt;/span&gt;;
    [view1 addSubview:message2];
    [message2 release];
}
&lt;/pre&gt;

			&lt;p&gt;IBのほうで作った部品はFile's Ownerから部品へ対応するOutletでリンクすること。これでオブジェクトとコントロールが結びつく。&lt;/p&gt;
			&lt;p&gt;はー。すげー基本的なことだとはわかってるんだけど、こういうのがわからんのだよなあ。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 07 Sep 2010 05:51:17 +0000</pubDate>
         <category>GUI</category>
      </item>
      <item>
         <title>手書きアプリのためのテストプログラム</title>
         <link>http://iphone-dev.g.hatena.ne.jp/hirogram/20100818</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;手描きのアプリは、指の動きに追従してなめらかな線を書くのがなかなかに難しいものです。いろんなアプリが色々工夫していることかと思います。SpeedTextも工夫しています。んで、色々工夫していると、速くなったんだか遅くなったんだか自分ではよく分からなくなってきます。人間の感覚って難しい。&lt;/p&gt;
			&lt;p&gt;というわけで、手書き系アプリのための描画速度を測るかんたんなテスト用ビューを作ってみました。アプリの処理を変える前後でテストすると、速くなったかどうか分かりやすいかな、と。&lt;/p&gt;
			&lt;p&gt;実行すると、画像みたいな感じで「2秒間かけて丸を等速で12個描くような」指の動きをシュミレートします。1つの丸に60個の座標、計720個の座標を用意して、１つの座標の描画が終わるたびに、スタートからの経過時間に応じた座標を描画用のビューに渡します。（描画用のビューとは、あなたのアプリのビューです。なお、iPhoneSDKでは、本物のtouchなんとかメソッドを呼べないため、アプリ側に擬似的なtouchなんとかメソッドを用意する必要があります）&lt;/p&gt;
			&lt;p&gt;んで、touchなんとかを呼んだ回数をカウントして最後に表示します。呼べた回数が多いほどいいです。これは大雑把なスコアといえます。丸の形も見ましょう。touchに対する処理速度が偏っていると、丸が歪な形になります。あと、丸の上部がどれだけ閉じているかは、指のつけ離しに対する追従性を表します。一つの丸から次の丸に移るときにtouchEnd、touchStartを呼びますので、そこで時間がかかると、円の開始を描くのが遅くなり、上の部分が開いてしまいます。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;使い方&lt;/p&gt;
			&lt;p&gt;1. この記事の最後に記したTestBaseViewクラスをプロジェクトに追加します。&lt;/p&gt;
			&lt;p&gt;2. テスト対象となるビューに、以下の３つのメソッドを追加します。locationに描画のための座標が入ってくるものとして、touchesBegan:withEvent等と同じ処理を記述してください。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)touchesBegan:(CGPoint)location;
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)touchesMoved:(CGPoint)location;
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)touchesEnded:(CGPoint)location;
&lt;/pre&gt;

			&lt;p&gt;3. 以下のような感じでTestBaseViewを画面に追加します。（追加先はテスト対象ビューと異なってもよいです）&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
TestBaseView *testBaseView = [[TestBaseView alloc]
     initWithFrame:CGRectMake(&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;320&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;100&lt;/span&gt;)];
[testBaseView autorelease];
[testBaseView setup];
[testBaseView setDrawView:drawView];     &lt;span class=&quot;synComment&quot;&gt;//このdrawViewを、アプリで使ってる描画用のビューにすること。&lt;/span&gt;
[&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; addSubview:testBaseView];    
&lt;/pre&gt;

			&lt;p&gt;TestBaseViewソース&lt;/p&gt;
			&lt;p&gt;テスト用なのでソース汚いです。すまんす。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
#import &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;UIKit/UIKit.h&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;;

&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_NUMBERS_OF_POINT (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;10000&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_NUMBERS_OF_DRAW_X (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_NUMBERS_OF_DRAW_Y (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_POINTS_IN_CIRCUL (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define VIEW_WIDTH (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;320&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define VIEW_HEIGHT (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define CIRCUL_RADIUS (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_FLAG_START (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_FLAG_MOVE (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#define TEST_FLAG_END (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;synPreProc&quot;&gt;#define COUNT_SECOND (&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;2.0&lt;/span&gt;&lt;span class=&quot;synPreProc&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;@interface&lt;/span&gt; TestBaseView : UIView {
     UITextView *consol;
    
     CGPoint points[TEST_NUMBERS_OF_POINT];
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; pointFlags[TEST_NUMBERS_OF_POINT];
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; drawIndex[TEST_NUMBERS_OF_POINT];
     CGPoint pointOfEnd[&lt;span class=&quot;synConstant&quot;&gt;1000&lt;/span&gt;];
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; countOfPoints;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; countOfDraws;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; pointIndex;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; lastDrawIndex;
     &lt;span class=&quot;synType&quot;&gt;BOOL&lt;/span&gt; isNextStart;
    
     &lt;span class=&quot;synType&quot;&gt;id&lt;/span&gt; drawTestView;
     NSDate *startDate;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; drawedPoints;
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)setup;
&lt;span class=&quot;synStatement&quot;&gt;@end&lt;/span&gt;
&lt;/pre&gt;

&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synPreProc&quot;&gt;#import &lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;TestBaseView.h&amp;quot;&lt;/span&gt;

&lt;span class=&quot;synStatement&quot;&gt;@implementation&lt;/span&gt; TestBaseView
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)drawPoint:(&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt;)index {
     &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (pointFlags[index]==TEST_FLAG_START) {
          [drawTestView touchesBegan:points[index]];
     }&lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (pointFlags[index]==TEST_FLAG_MOVE) {
          [drawTestView touchesMoved:points[index]];
     }&lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (pointFlags[index]==TEST_FLAG_END) {
          [drawTestView touchesEnded:points[index]];
     }
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)endOfDraw {
     consol.text = [NSString stringWithFormat:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;points:&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;%d&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;,drawedPoints];
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)drawNext {
     &lt;span class=&quot;synType&quot;&gt;double&lt;/span&gt; t = -[startDate timeIntervalSinceNow]; &lt;span class=&quot;synComment&quot;&gt;//double型で秒を返す(マイナス)&lt;/span&gt;
     drawedPoints ++;
    
     &lt;span class=&quot;synComment&quot;&gt;//COUNT_SECOND秒間でcountOfPointsまで描画するから、&lt;/span&gt;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; index = t*countOfPoints/(&lt;span class=&quot;synType&quot;&gt;double&lt;/span&gt;)COUNT_SECOND;
     &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (index &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;62&lt;/span&gt;; countOfPoints-&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;) {
          &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (isNextStart==NO) {
               &lt;span class=&quot;synComment&quot;&gt;//終了&lt;/span&gt;
               [drawTestView touchesEnded:pointOfEnd[lastDrawIndex]];
               [&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; endOfDraw];
          }
          &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt;;
     }
    
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; dIndex = drawIndex[index];
     &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (lastDrawIndex&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;dIndex) {
          &lt;span class=&quot;synComment&quot;&gt;//次の図になったので、前の図を終了&lt;/span&gt;
          &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (isNextStart==NO) {
               [drawTestView touchesEnded:pointOfEnd[lastDrawIndex]];
               isNextStart=YES;
          }&lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt;{
               &lt;span class=&quot;synComment&quot;&gt;//次の図の開始&lt;/span&gt;
               [drawTestView touchesBegan:points[index]];
               isNextStart = NO;
               lastDrawIndex = dIndex;
          }
     }&lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt; {
          [drawTestView touchesMoved:points[index]];
     }
    
     [NSTimer scheduledTimerWithTimeInterval:&lt;span class=&quot;synConstant&quot;&gt;0.0&lt;/span&gt; target:&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; selector:&lt;span class=&quot;synStatement&quot;&gt;@selector&lt;/span&gt;(drawNext) userInfo:&lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt; repeats:NO];
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)start:(&lt;span class=&quot;synType&quot;&gt;id&lt;/span&gt;)sender {
     NSLog(&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;start&amp;quot;&lt;/span&gt;);
     pointIndex = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
     isNextStart = YES;
     lastDrawIndex = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
     drawedPoints =&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
     [startDate release];
     startDate = [NSDate date];
     [startDate retain];
    
     [drawTestView touchesBegan:points[&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;]];
    
     [&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; drawNext];
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)dealloc {
     [startDate release];
     [consol release];
     [&lt;span class=&quot;synStatement&quot;&gt;super&lt;/span&gt; dealloc];
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)setup {
     UIButton *startButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
     startButton.frame = CGRectMake(&lt;span class=&quot;synConstant&quot;&gt;10&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;30&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;100&lt;/span&gt;, &lt;span class=&quot;synConstant&quot;&gt;30&lt;/span&gt;);
     [startButton setTitle:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;start&amp;quot;&lt;/span&gt; forState:UIControlStateNormal];
     [startButton addTarget:&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; action:&lt;span class=&quot;synStatement&quot;&gt;@selector&lt;/span&gt;(start:) forControlEvents:UIControlEventTouchUpInside];
     [&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; addSubview:startButton];
    
     consol = [[UITextView alloc]initWithFrame:CGRectMake(&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;320&lt;/span&gt;,&lt;span class=&quot;synConstant&quot;&gt;40&lt;/span&gt;)];
     consol.opaque = YES;
     consol.backgroundColor = [UIColor whiteColor];
     consol.text = &lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;hoge&amp;quot;&lt;/span&gt;;
     consol.alpha =&lt;span class=&quot;synConstant&quot;&gt;0.5&lt;/span&gt;;
     consol.userInteractionEnabled = NO;
     [&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; addSubview:consol];
    
     &lt;span class=&quot;synComment&quot;&gt;// point のセットアップ 丸を格子状に並べて描画する&lt;/span&gt;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; index = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
     &lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; dIndex = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
     CGFloat radius = &lt;span class=&quot;synConstant&quot;&gt;48&lt;/span&gt;;
     CGFloat addX =(VIEW_WIDTH-(radius*&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;)-&lt;span class=&quot;synConstant&quot;&gt;10&lt;/span&gt;)/TEST_NUMBERS_OF_DRAW_X;
     CGFloat addY =(VIEW_HEIGHT-(radius*&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;)-&lt;span class=&quot;synConstant&quot;&gt;10&lt;/span&gt;)/TEST_NUMBERS_OF_DRAW_Y;
     &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; (&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; drawY=&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;drawY&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;TEST_NUMBERS_OF_DRAW_Y;drawY++) {
          &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; (&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; drawX=&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;drawX&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;TEST_NUMBERS_OF_DRAW_X;drawX++) {
               CGFloat startX = drawX * addX + radius+&lt;span class=&quot;synConstant&quot;&gt;10&lt;/span&gt;;
               CGFloat startY = drawY * addY + radius+&lt;span class=&quot;synConstant&quot;&gt;10&lt;/span&gt;;
              
               &lt;span class=&quot;synStatement&quot;&gt;for&lt;/span&gt; (&lt;span class=&quot;synType&quot;&gt;int&lt;/span&gt; i=&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;i&amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;;TEST_POINTS_IN_CIRCUL ;i++) {
                    CGFloat x = startX-sin(&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;*&lt;span class=&quot;synConstant&quot;&gt;M_PI&lt;/span&gt;* i/TEST_POINTS_IN_CIRCUL)*radius;
                    CGFloat y = startY-cos(&lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;*&lt;span class=&quot;synConstant&quot;&gt;M_PI&lt;/span&gt;* i/TEST_POINTS_IN_CIRCUL)*radius;
                    points[index] = CGPointMake(x, y);
                    drawIndex[index] = dIndex;
                    pointFlags[index] = TEST_FLAG_MOVE;&lt;span class=&quot;synComment&quot;&gt;//move&lt;/span&gt;
                    &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (i==&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;) {
                         pointFlags[index]=TEST_FLAG_START;&lt;span class=&quot;synComment&quot;&gt;//start&lt;/span&gt;
                    }&lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (i==TEST_POINTS_IN_CIRCUL-&lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;) {
                         pointFlags[index]=TEST_FLAG_END;&lt;span class=&quot;synComment&quot;&gt;//end&lt;/span&gt;
                         pointOfEnd[dIndex] = CGPointMake(x, y);
                    }
                    index ++;
               }
               dIndex++;
          }
     }
     countOfPoints = index;
     countOfDraws =dIndex;
    
}
&lt;span class=&quot;synIdentifier&quot;&gt;-&lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)setDrawView:(&lt;span class=&quot;synType&quot;&gt;id&lt;/span&gt;)view {
     drawTestView = view;
}
&lt;span class=&quot;synStatement&quot;&gt;@end&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;VIEW_WIDTH、VIEW_HEIGHTは対象となるビューのサイズです。大きくすると、大きなビューを想定して丸の間隔が広がります。&lt;/p&gt;
			&lt;p&gt;ソースのCOUNT_SECONDは、シュミレートする時間(秒)です。ここを減らすと、もっとシビアな条件を測定できます（実際のSpeedTextのテスト時は1秒にしてます。画像は2秒のもの）&lt;/p&gt;
			&lt;p&gt;このテストプログラムでは、全体的に遅くても安定した速度で処理されると、いい結果になるので、描画自体の厳密な速度は測れないんですけどね。あと、touchが呼ばれる部分をスキップしちゃってるし。まあ、安定した速度で書けるかというテストですね。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 17 Aug 2010 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[XCode]iTunes経由でアプリを配布できるipaファイルの作成方法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sohei/20100722/p1</link>
         <description>Build and Archive → ビルド完了後オーガナイザが開く →「Archived Applications」 → ビルドした日付のものを選択して「Share Application」 → Identityでprofileを選択 → 「Save to Disk」で保存  画像付きの詳しい説明はこちら（英語）</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 21 Jul 2010 15:00:00 +0000</pubDate>
         <category>XCode</category>
      </item>
      <item>
         <title>[tips]上部メニューバーを非表示にする方法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sohei/20100525/1274789714</link>
         <description>xxx-info.plist で「Status bar is initially hidden」項目を追加してチェックを入れる。  でもできるみたい。</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 25 May 2010 12:15:14 +0000</pubDate>
         <category>tips</category>
      </item>
      <item>
         <title>[Xcode][tips]iPad/iPhoneユニバーサル対応にするための設定</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sohei/20100525/1274789141</link>
         <description>http://labs.techfirm.co.jp/ipad/cho/403 http://blog.myrss.jp/archives/2010/04/iphone_ipad.html</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 25 May 2010 12:05:41 +0000</pubDate>
      </item>
      <item>
         <title>[tips]自動スリープさせない方法</title>
         <link>http://iphone-dev.g.hatena.ne.jp/sohei/20100525/1274789140</link>
         <description>http://d.hatena.ne.jp/uosoft/20090524/1243150401</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 25 May 2010 12:05:40 +0000</pubDate>
         <category>tips</category>
      </item>
      <item>
         <title>Evernoteの海外イベントについてブログ書いた</title>
         <link>http://iphone-dev.g.hatena.ne.jp/hirogram/20100227/1267220112</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;はてなの日記の方に、Evernoteのイベントについてブログ書きました。&lt;/p&gt;
			&lt;p&gt;これって、自動でリンクとかできないのかしら。はてなグループの使い方が未だによく分かりません。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;2010-02-26 Evernoteの海外イベントに出ました&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/hirogram/20100226&quot;&gt;http://d.hatena.ne.jp/hirogram/20100226&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;おうちに帰ってブログ書くまでがイベントよね。&lt;/p&gt;
			&lt;p&gt;まだ帰ってませんけれども。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 26 Feb 2010 21:35:12 +0000</pubDate>
      </item>
      <item>
         <title>「トリックスター戦略会議」というイベントに出演</title>
         <link>http://iphone-dev.g.hatena.ne.jp/mswar/20100204/1265269575</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;iPhone塾などやってらっしゃるIAMAS赤松さんが講演/司会をつとめる「トリックスター戦略会議」というイベントに何故か参戦する事になりました！&lt;/p&gt;
			&lt;p&gt;パネルディスカッションとかいうトコで出る予定です。参加無料との事なのでお暇＆岐阜近郊の方であれば是非ご参加の程を。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.chuokai-gifu.or.jp/gia/2010/trickster/trickster.html&quot;&gt;http://www.chuokai-gifu.or.jp/gia/2010/trickster/trickster.html&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 04 Feb 2010 07:46:15 +0000</pubDate>
      </item>
      <item>
         <title>iPhoneアプリ「販売レポート共有支援サービス」MaryApps</title>
         <link>http://iphone-dev.g.hatena.ne.jp/akiraak/20100113/1263357612</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;iPhoneアプリの「販売レポート共有支援サービス」MaryApps を開始しました。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/akiraak/20100113133715&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/a/akiraak/20100113/20100113133715.jpg&quot; alt=&quot;f:id:akiraak:20100113133715j:image&quot; title=&quot;f:id:akiraak:20100113133715j:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;MaryApps はアプリごとに登録された複数のメールアドレスに、毎日販売レポートを送信してくれるサービスです。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/akiraak/20100113133714&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/a/akiraak/20100113/20100113133714.jpg&quot; alt=&quot;f:id:akiraak:20100113133714j:image&quot; title=&quot;f:id:akiraak:20100113133714j:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;現在は英語のみで運営を行っていますが、英語ユーザーから好評の声を頂きましたので、日本の開発者にも使っていただきたく、利用手順の説明を書かせて頂きました。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.moonshine-project.com/ja/?p=335&quot;&gt;http://blog.moonshine-project.com/ja/?p=335&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;また直近では、アプリの簡易紹介機能を実装しました。MaryApps は利用者のアプリが多くの人の目に触れ、販売に貢献できるように改善をおこなっていきます。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.moonshine-project.com/ja/?p=410&quot;&gt;http://blog.moonshine-project.com/ja/?p=410&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;どうぞよろしくお願いいたします。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 13 Jan 2010 04:40:12 +0000</pubDate>
      </item>
      <item>
         <title>.Sched Version.1.00 リリース!</title>
         <link>http://iphone-dev.g.hatena.ne.jp/kenhama/20091206</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ようやく、.SchedのVer.1.00がリリースされました。&lt;/p&gt;
			&lt;p&gt;ご要望の多かった、週５日表示と７日表示の切り替えに対応しました。&lt;/p&gt;
			&lt;p&gt;月次表示画面での、週５日表示と７日表示の違いはこんな感じです。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/kenhama/20091206192018&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kenhama/20091206/20091206192018.png&quot; alt=&quot;f:id:kenhama:20091206192018p:image&quot; title=&quot;f:id:kenhama:20091206192018p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/kenhama/20091206192019&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kenhama/20091206/20091206192019.png&quot; alt=&quot;f:id:kenhama:20091206192019p:image&quot; title=&quot;f:id:kenhama:20091206192019p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;表示の縦の長さを画面いっぱいまで表示するように調整したところ、かなり視認性があがったかと思います。よく見るとわかるかと思いますが、各イベントタイトルの前に、時刻を表示するようにしました（表示しない設定も可能）。（左側のイメージは、週の開始を月曜日に設定した状態です。）&lt;/p&gt;
			&lt;p&gt;週次の場合は、こんな感じになります。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/kenhama/20091206192016&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kenhama/20091206/20091206192016.png&quot; alt=&quot;f:id:kenhama:20091206192016p:image&quot; title=&quot;f:id:kenhama:20091206192016p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/kenhama/20091206192015&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kenhama/20091206/20091206192015.png&quot; alt=&quot;f:id:kenhama:20091206192015p:image&quot; title=&quot;f:id:kenhama:20091206192015p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;（右側のイメージの吹き出しは、次のVersionでリリース予定の機能です。長押しすると吹き出しが表示され、離すとその日時で新規予定の追加ができる機能です。）&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;そのほかにも、ご要望の多かった以下に対応してます。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; 開始曜日の設定（日曜or月曜)&lt;/li&gt;
				&lt;li&gt; 表示するカレンダーの選択&lt;/li&gt;
				&lt;li&gt; 起動時のメニュー表示ON/OFF&lt;/li&gt;
				&lt;li&gt; 起動時の自動同期のON/OFF&lt;/li&gt;
				&lt;li&gt; offlineでのイベント追加／修正&lt;/li&gt;
				&lt;li&gt; 検索機能&lt;/li&gt;
				&lt;li&gt; 特定の月にジャンプする機能（上部バーをタップ）&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;その他にも細かに、以下のような更新が入ってます。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; WeekViewでの初期表示時刻指定&lt;/li&gt;
				&lt;li&gt; 日曜日と土曜日の背景色変更設定機能&lt;/li&gt;
				&lt;li&gt; MonthViewの１日枠の縦長さ調整設定機能(fixed,strech)&lt;/li&gt;
				&lt;li&gt; 日時表示言語の選択（英語、System）&lt;/li&gt;
				&lt;li&gt; WeekViewで現在時刻を赤ラインで表示&lt;/li&gt;
				&lt;li&gt; WeekViewでのフリック感度調整&lt;/li&gt;
				&lt;li&gt; EventViewのデザイン見直し&lt;/li&gt;
			&lt;/ul&gt;			&lt;br&gt;

			&lt;p&gt;次のVersionでは、以下の機能をリリースします。（実装を終え、Apple審査待ちです。）&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; 予定のコピペ&lt;/li&gt;
				&lt;li&gt; 横画面(週表示)での予定の追加／修正&lt;/li&gt;
				&lt;li&gt; その他、細々と機能追加／見直しあり。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;引き続き機能強化を行っていきますので、ご要望があれば、ぜひkjapp(at)kjapp.180r.comまでご連絡ください。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 05 Dec 2009 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>AppleStore札幌にてイベント出演</title>
         <link>http://iphone-dev.g.hatena.ne.jp/mswar/20091202/1259723991</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;AppleStore札幌にて札幌発のiPhoneアプリ開発者という事で、イベント出演させて頂くことになりました。&lt;/p&gt;
			&lt;p&gt;12月2日 6:30 pm - 8:00 pm&lt;/p&gt;
			&lt;p&gt;iPhone Dev Sap presents: 札幌発iPhoneアプリのご紹介&lt;/p&gt;
			&lt;p&gt;AppleStore店内、入場自由&lt;/p&gt;
			&lt;p&gt;「札幌圏で活動するiPhoneデベロッパのコミュニティ、iPhone Dev Sapporoの主催によるイベントです。札幌で制作され全世界に配信されている数々のiPhoneアプリケーションを、開発者自身がデモを交えてご紹介します。iPhoneアプリ、およびその開発の楽しさを実感してください。」&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.apple.com/jp/retail/sapporo/&quot;&gt;http://www.apple.com/jp/retail/sapporo/&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 02 Dec 2009 03:19:51 +0000</pubDate>
      </item>
      <item>
         <title>KatokichiSoftのiPhoneApp</title>
         <link>http://iphone-dev.g.hatena.ne.jp/paella/20120101/1257866188</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;h4&gt; あなたの演奏を応援するために作りました。&lt;/h4&gt;
			&lt;p&gt;“&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cielo.rojo.jp/p/metronome_jp.html&quot;&gt;Metronome PRO&lt;/a&gt;”&lt;/p&gt;
			&lt;h4&gt; 黒歴史ソフトですが、初心忘れるべからずの気持ちで&lt;/h4&gt;
			&lt;p&gt;“&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://cielo.rojo.jp/p/Mosquito_Attack_jp.html&quot;&gt;Mosquito Attack&lt;/a&gt;”&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;ちなみにふつうのはてなダイアリーでもブログを書いています。&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/paella/&quot;&gt;こちら&lt;/a&gt;ですので、あわせてどうぞ。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 10 Nov 2009 15:16:28 +0000</pubDate>
      </item>
      <item>
         <title>Three20でUndocumented APIが使われている件</title>
         <link>http://iphone-dev.g.hatena.ne.jp/takuma104/20091106/1257516194</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://github.com/joehewitt/three20/&quot;&gt;Three20&lt;/a&gt;というすばらしいiPhone向けオープンソースライブラリがありますが、これがどうも、Undocumented APIを含んでしまっているようです。Three20のコードを含んだアプリをAppStoreに提出したのですが、この件でRejectをくらいました。作者様にはさきほどメールしておいたのですが、いちおうどこがまずそうなのかをとりいそぎということで。&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
&lt;span class=&quot;synStatement&quot;&gt;@implementation&lt;/span&gt; UITouch (TTCategory)
 
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;id&lt;/span&gt;)initInView:(UIView *)view location:(CGPoint)location {
  &lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (&lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt; = [&lt;span class=&quot;synStatement&quot;&gt;super&lt;/span&gt; init]) {
    _tapCount = &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;;
    _locationInWindow = location;
    _previousLocationInWindow = location;
 
    UIView *target = [view.window hitTest:_locationInWindow withEvent:&lt;span class=&quot;synConstant&quot;&gt;nil&lt;/span&gt;];
    _view = [target retain];
    _window = [view.window retain];
    _phase = UITouchPhaseBegan;
    _touchFlags._firstTouchForView = &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;;
    _touchFlags._isTap = &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;;
    _timestamp = [NSDate timeIntervalSinceReferenceDate];
  }
  &lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;synStatement&quot;&gt;self&lt;/span&gt;;
}
 
&lt;span class=&quot;synIdentifier&quot;&gt;- &lt;/span&gt;(&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)changeToPhase:(UITouchPhase)phase {
  _phase = phase;
  _timestamp = [NSDate timeIntervalSinceReferenceDate];
}
 
&lt;span class=&quot;synStatement&quot;&gt;@end&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://github.com/joehewitt/three20/blob/master/src/UIViewAdditions.m#L47-64&quot;&gt;http://github.com/joehewitt/three20/blob/master/src/UIViewAdditions.m#L47-64&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;の黄色くハイライトされたあたりです。このUITouchクラスのメンバ変数にはcategoryを使うとアクセスできてしまいますが、これはやはりまずそうです。&lt;/p&gt;
			&lt;p&gt;こういったOpen Sourceのコードを使う上では、ライセンス上、AS ISになっていますので、コード作者ではなく、もちろん使う側に責任があります。使う上ではこういったリスクもあります。&lt;/p&gt;
			&lt;p&gt;おそらく今後もこういったことは起きないとも限らないので、ビルドしたあと、そのバイナリを静的に解析して、そのアプリでUndocumented APIやPrivate APIが使われていないかどうかをチェックするツールが欲しいなあと思ったのですが(たぶんAppleも審査時にこういう方法で試験しているものと思います)、こういったものって、存在するんでしょうか? &lt;/p&gt;
			&lt;p&gt;もしないとすると、とりあえず作ろうと思っています。多分、PublicなFrameworkのヘッダをすべてスキャンして、使えるAPIのリストを作り、なおかつビルド後のバイナリからclass-dump-xなど経由ですべての使用しているAPIのリストをとり、その差分を取ることで、これが可能な気もしています。が、できるのかなあ。。もしこの辺の情報お持ちの方おられましたら、@takuma104 あたりまでコメントお願いできればと思います。&lt;/p&gt;
			&lt;p&gt;(追記)&lt;/p&gt;
			&lt;p&gt;Three20のこの件は、すでに既出の話題だったのを教えていただきました。うーん、、御本人はレスしてないかあ。とりあえず fork してこの辺のコードを削除してpull request送るとかなんでしょかね。こういう場合。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139&quot;&gt;http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/6d5046771539d139&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 06 Nov 2009 14:03:14 +0000</pubDate>
      </item>
      <item>
         <title>[game]初iPhoneゲーム「百鬼夜行」リリース！</title>
         <link>http://iphone-dev.g.hatena.ne.jp/mswar/20091106/1257515357</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;自分がプログラムで開発してた和風３Ｄシューティングゲームアプリ「百鬼夜行」が、ようやくAppStoreにて販売開始いたしました。&lt;/p&gt;
			&lt;p&gt;115円とお求め安い価格設定になっとりますんで、ぜひともお試し下さいませ！&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.appbank.net/2009/11/06/iphone-application/63283.php&quot;&gt;http://www.appbank.net/2009/11/06/iphone-application/63283.php&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 06 Nov 2009 13:49:17 +0000</pubDate>
         <category>game</category>
      </item>
      <item>
         <title>.Sched (本命アプリようやくリリース。)</title>
         <link>http://iphone-dev.g.hatena.ne.jp/kenhama/20091025/1256462127</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;その後、半年かかってしまいましたが、本命のアプリがようやくリリースできました。&lt;/p&gt;
			&lt;p&gt;審査に１ヶ月くらいかかりました。&lt;/p&gt;
			&lt;p&gt;.Schedは、Google Calendarと同期可能なカレンダーアプリケーションです。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/kenhama/20091025181334&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kenhama/20091025/20091025181334.png&quot; alt=&quot;f:id:kenhama:20091025181334p:image&quot; title=&quot;f:id:kenhama:20091025181334p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;詳しくはこちら。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kjapp.180r.com/sched&quot;&gt;http://kjapp.180r.com/sched&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;youtubeの動画はこちら&lt;/p&gt;
			&lt;p&gt;&lt;embed src=&quot;http://www.youtube.com/v/bkvLSIZg4tg&amp;hl=ja&amp;fs=1&amp;&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;560&quot; height=&quot;340&quot;&gt;&lt;/iframe&gt;&lt;/p&gt; 
			&lt;p&gt;よろしくお願いします。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 25 Oct 2009 09:15:27 +0000</pubDate>
      </item>
      <item>
         <title>[Layar][AR]拡張現実ブラウザ「Layar」のオープンセミナー行ってきた</title>
         <link>http://iphone-dev.g.hatena.ne.jp/mswar/20091022/1256196970</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/mswar/20091022/1256179203&quot;&gt;http://d.hatena.ne.jp/mswar/20091022/1256179203&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;講演内容のメモ書き&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 22 Oct 2009 07:36:10 +0000</pubDate>
      </item>
      <item>
         <title>OS2.2.1のデバイスでも動くけどOS3.0なら専用の機能が動くアプリを作る</title>
         <link>http://iphone-dev.g.hatena.ne.jp/hirogram/20090923</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;表題の通り、OS2.2.1のデバイスでも動くけどOS3.0なら専用の機能が動くアプリの作り方です。ADCにサンプルコードがあるのでご存じのかたも多いと思いますが、私は最近知ってありがたかったので、まあ報告します。&lt;/p&gt;
			&lt;p&gt;OS3.0特有の機能というとメールに画像が添付できたり、コピペが使えたりとかです。他にもあった気がします。OS3.1も出ちゃってるのでいろいろあることでしょう。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;やりかたは、ADCのサンプルコード&quot;MailComposer&quot;のReadMe.txtに丁寧に書いてあります。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;やるのは割と簡単ですが、注意すべき点を先に挙げておいたほうがいいようです。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; OS2.2.1のデバイスでOS3.0用の処理を通らないように、ソースを分岐する必要があります。分岐しないとアプリが異常終了します。なお、OS3.0の処理をソースに書いている時点でOS2.2.1のビルドはエラーになります。したがって、コンパイラに頼らず自分でチェックする必要があります。やっかいです。&lt;/li&gt;
				&lt;li&gt; 同様にOS3.0以降のデバイスでOS2.2.1専用の機能（あったっけ？）を通らないように注意する必要があります。こちらはOS3.0でビルドすればわかるはずなので問題ないかと思います。&lt;/li&gt;
				&lt;li&gt; アプリを申請に出すときに、構成を間違えないように注意する必要があります。デバイス3.0とかでビルドしちゃって、リリースされてから気づくなんてことのないように（書いてて自分が心配になってきた）。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;このようにソースコードが煩雑になり、ミスも誘発しやすくなりで、開発者にとってはいいことはありません。新しくアプリを作る場合は素直にOS3.1用で作った方がいいです。OS2.2.1でアプリリリースしちゃってて、この後どうしようかという人向けですね。私みたいに。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;最後に手順を書きます。MailComposerのReadMe.txtも読みましょう。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;1. ターゲットの情報を開いて、ビルドタブのアーキテクチャ-&amp;gt;ベースSDKを&quot;iPhone デバイス 3.0&quot;にします。&lt;/li&gt;
				&lt;li&gt;2. おなじくビルドタブのDeployment-&amp;gt;iPhone OS Deployment Targetを&quot;iPhone OS 2.2.1&quot;にします。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;これはすべての構成(Distributionも！)に対して行って、３回くらいチェックしてください。&lt;/p&gt;
			&lt;p&gt;そうすると、XCodeのウィンドウ左上の構成とかを選ぶドロップボックスに「ベースSDKを使用」というのが現れます。これがどっちでも動くよ版です。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/hirogram/20090923220353&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/h/hirogram/20090923/20090923220353.png&quot; alt=&quot;f:id:hirogram:20090923220353p:image&quot; title=&quot;f:id:hirogram:20090923220353p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;3. メールのようにOS3.0独自のフレームワークを使う場合は、フレームワークをプロジェクトに含めた上で、役割(?)をWeakに変更します。リンクの仕方がWeak Linkという奴になるようですね。XCodeのフォルダツリーでターゲットを選ぶと右画面で変更できます。&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/hirogram/20090923220355&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/h/hirogram/20090923/20090923220355.png&quot; alt=&quot;f:id:hirogram:20090923220355p:image&quot; title=&quot;f:id:hirogram:20090923220355p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;4. 処理を切り分けます。MailComposerではOS3.0用のクラスが存在するかどうかで切り分けていますね。私はこんな感じで、問い合わせをするメソッドを用意しました。&lt;/li&gt;
			&lt;/ul&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
-(id) init
{
	[super init];
	isOs30 = NO;
	Class pasteClass = (NSClassFromString(@&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;UIPasteboard&amp;quot;&lt;/span&gt;));
	&lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt; (pasteClass != nil)
	{ 
		isOs30 = YES;
	}
	
	&lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; self;
}

-(BOOL)isOs30 {
	&lt;span class=&quot;synStatement&quot;&gt;return&lt;/span&gt; isOs30;
}
&lt;/pre&gt;

			&lt;p&gt;以上です。MailComposerのReadMe.txtも熟読しましょう。&lt;/p&gt;
			&lt;p&gt;リジェクトされないか気になるところですが、今申請中なので通ったら報告します。サンプルコードがあるくらいなので大丈夫だと思いますが。。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 22 Sep 2009 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>有料トップアプリ１位御礼</title>
         <link>http://iphone-dev.g.hatena.ne.jp/hirogram/20090608/1244467433</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;SpeedTextが有料トップアプリケーションのNo.1を獲得しました！&lt;/p&gt;
			&lt;p&gt;応援してくださった皆さんありがとうございます。&lt;/p&gt;
			&lt;p&gt;で、今回ちょっといいことがわかりました。&lt;/p&gt;
			&lt;p&gt;それは、「小さなツールでしかも有料でも、ゲームアプリと勝負できるんだ」ということです。&lt;/p&gt;
			&lt;p&gt;言うまでもなくゲームは人気を取りやすいし売れるし、上位の物は私も持ってたりするんですが、&lt;/p&gt;
			&lt;p&gt;手の込んだ重量級アプリには勝てないとなっちゃうと、アプリ作るのもつまらんですよね。&lt;/p&gt;
			&lt;p&gt;まあ数時間後のWWDC以降、アプリの順位は大きく様変わりし、１位はつかの間のこととなるのは容易に予想がつきます。&lt;/p&gt;
			&lt;p&gt;それでも、ここまでこれたのは、私にとって結構な収穫でした。&lt;/p&gt;
			&lt;p&gt;もちろん、このアプリもまだまだがんばりますけどね！&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 08 Jun 2009 13:23:53 +0000</pubDate>
      </item>
      <item>
         <title>UIScrollViewで真ん中ってどうするんだろ</title>
         <link>http://iphone-dev.g.hatena.ne.jp/wadadanet/20090415</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;１時間ほどですっごい簡単なネタアプリを作ろうと思ったら、&lt;/p&gt;
			&lt;p&gt;躓いた。。。orz&lt;/p&gt;
			&lt;p&gt;UIScrollViewでズームアウトをすると、左上に勝手に移動しやがる。。。&lt;/p&gt;
			&lt;p&gt;それも、かっこよくアニメーションしながら移動しやがる。&lt;/p&gt;
			&lt;p&gt;憎いぜApple&lt;/p&gt;
			&lt;p&gt;いや、縮小した場所にいてくれたらいいから、、、&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;このページを参考にsrollViewDidEndZoomingを変更しましたが、&lt;/p&gt;
			&lt;p&gt;挙動が変&lt;/p&gt;
			&lt;p&gt;「&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.electrodream.jp/iphonedev/index.php/2009/04/uiscrollview&quot;&gt;http://www.electrodream.jp/iphonedev/index.php/2009/04/uiscrollview&lt;/a&gt;の中身をズームアウトした際、左上00に自動的/」&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
- (&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(&lt;span class=&quot;synType&quot;&gt;float&lt;/span&gt;)scale  
{  
    &lt;span class=&quot;synComment&quot;&gt;//ここでズームの変更も拾えるので、サイズを設定する//&lt;/span&gt;
	CGRect newRect = scrollView.frame;
	&lt;span class=&quot;synType&quot;&gt;float&lt;/span&gt; firstWidth = &lt;span class=&quot;synConstant&quot;&gt;261.f&lt;/span&gt;;
	&lt;span class=&quot;synType&quot;&gt;float&lt;/span&gt; firstHeight = &lt;span class=&quot;synConstant&quot;&gt;420.f&lt;/span&gt;;
	
	&lt;span class=&quot;synComment&quot;&gt;//firstWidthにはScrollViewの最初の幅が入っている&lt;/span&gt;
	&lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt;(firstWidth &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;; view.frame.size.width){&lt;span class=&quot;synComment&quot;&gt;//超えた場合は０に//&lt;/span&gt;
		newRect.origin.x = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
	}&lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt;{
		CGFloat fTemp = (firstWidth - view.frame.size.width) / &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;;
		newRect.origin.x = fTemp;
	}
	
	&lt;span class=&quot;synComment&quot;&gt;//firstHeightにはScrollViewの最初の高さが入っている&lt;/span&gt;
	&lt;span class=&quot;synStatement&quot;&gt;if&lt;/span&gt;(firstHeight &amp;amp;#&lt;span class=&quot;synConstant&quot;&gt;60&lt;/span&gt;; view.frame.size.height){
		newRect.origin.y = &lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;;
	}&lt;span class=&quot;synStatement&quot;&gt;else&lt;/span&gt;{
		CGFloat fTemp = (firstHeight - view.frame.size.height) / &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;;
		newRect.origin.y = fTemp;
	}
	_scrollView.frame = newRect;
}
&lt;/pre&gt;

			&lt;p&gt;アニメーションしなくていいんだけどなぁ。。。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 14 Apr 2009 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>UITabBarController + UINavigationController + UITableViewControllerはどうするんでしょ</title>
         <link>http://iphone-dev.g.hatena.ne.jp/wadadanet/20090321</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;表題の通りですが、なにやら詰まってしまった。&lt;/p&gt;
			&lt;p&gt;NIBsを使うのだろうけど、、、、&lt;/p&gt;
			&lt;p&gt;わ、わからないっす。&lt;/p&gt;
			&lt;p&gt;■ApplicationDelegate.h&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
　UIWindow *window;
　UITabBarController *tabBarController;
&lt;/pre&gt;

			&lt;p&gt;■ApplicationDelegate.m&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
- (&lt;span class=&quot;synType&quot;&gt;void&lt;/span&gt;)applicationDidFinishLaunching:(UIApplication *)application {    
    [window addSubview:tabBarController.view];
}
&lt;/pre&gt;

			&lt;p&gt;▼MainWindow.xibは&lt;/p&gt;
			&lt;p&gt;FIle's Owner&lt;/p&gt;
			&lt;p&gt;Tab Bar Controller( tabBarControllerとリンク )[*1]&lt;/p&gt;
			&lt;p&gt;└Tab Bar（UITabBar）&lt;/p&gt;
			&lt;p&gt;└Selected... ViewController( TestViewController )[*2]&lt;/p&gt;
			&lt;p&gt;　└UITabBarItem&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;・[1] UITabBarControllerの設置 - tabBarControllerとリンク&lt;/p&gt;
			&lt;p&gt;・[2] 一つ目のアイテムのClassをTestViewController&lt;/p&gt;
			&lt;p&gt;・今は必要ないので２つ目は削除&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;p&gt;■TestViewController.h&lt;/p&gt;
			&lt;p&gt;■TestViewController.m&lt;/p&gt;
			&lt;p&gt;特になし&lt;/p&gt;
			&lt;p&gt;TestViewController.xibは&lt;/p&gt;
			&lt;p&gt;File's Owner(TestViewController)&lt;/p&gt;
			&lt;p&gt;NavigationController(UINavigationController)[*1]&lt;/p&gt;
			&lt;p&gt;└NavigationBar&lt;/p&gt;
			&lt;p&gt;└ViewController( TestTableViewController )[*2]&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;・[1] UINavigationControllerの設置&lt;/p&gt;
			&lt;p&gt;・[2] UINavigationController内のUIViewControllerのClassをTestTableViewControllerに変更&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;p&gt;■TestTableViewCOntroller&lt;/p&gt;
			&lt;p&gt;新規作成のTableViewControllerです。&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;p&gt;こんな感じです。&lt;/p&gt;
			&lt;p&gt;どこかおかしいのでしょうか？&lt;/p&gt;
			&lt;p&gt;画面は真っ黒です。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 20 Mar 2009 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>つまり杉な自分。。。orz</title>
         <link>http://iphone-dev.g.hatena.ne.jp/wadadanet/20090313</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;はやく、解決したことをここに書きたいのに、、、&lt;/p&gt;
			&lt;p&gt;また詰まっちゃいました。&lt;/p&gt;
			&lt;p&gt;■したい事&lt;/p&gt;
			&lt;p&gt;５枚のCGImageを透明度を変えて合成&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;■CODE&lt;/p&gt;
&lt;pre&gt;
//tmpPhotosArrayには５枚ぐらいのCGImageRefが入っています。

CGSize size = CGSizeMake(320, 420);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();

for(int i=0; i&amp;#60;kPhotoNumber;i++){
    CGImageRef cImg = (CGImageRef)&amp;#91;tmpPhotosArray objectAtIndex:i];
    &amp;#91;cImg setAlpha:0.1];  //ここでエラー(&amp;#42;エラー1)
    CGContextDrawImage(context, rect, cImg);
    CFRelease(cImg);
}
UIGraphicsEndImageContext();

//ここでContextをUIImageに変換ってのを考え中...

&lt;/pre&gt;

			&lt;p&gt;(エラー１)&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;[NSCFType setAlpha:]: unrecognized selector sent to instance 0x13ca90&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFType setAlpha:]: unrecognized selector sent to instance 0x13ca90'&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;ってな感じになっちゃうんですよ。。。&lt;/p&gt;
			&lt;p&gt;そもそも、setAlphaつかうのかな。。。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 12 Mar 2009 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>おしえてください。。。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/wadadanet/20090303/1236058862</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;かなり詰まってます。&lt;/p&gt;
			&lt;p&gt;rootViewController&lt;/p&gt;
			&lt;p&gt;├gameViewController&lt;/p&gt;
			&lt;p&gt;　└gameView&lt;/p&gt;
			&lt;p&gt;├highScoreViewContlloer&lt;/p&gt;
			&lt;p&gt;　└highScoreView&lt;/p&gt;
			&lt;p&gt;１）「rootViewController.h」&lt;/p&gt;
			&lt;p&gt;GameViewController *gameViewController;&lt;/p&gt;
			&lt;p&gt;GameView *gameView;&lt;/p&gt;
			&lt;p&gt;２）「rootViewController.m」&lt;/p&gt;
			&lt;p&gt;gameViewController = gameViewController alloc] initWithNibName:@&quot;GameView&quot; bundle:nil];&lt;/p&gt;
			&lt;p&gt;みたいな感じで作ってるけど、&lt;/p&gt;
			&lt;p&gt;ゲームが終わったら、[gameViewController release]しますよね？&lt;/p&gt;
			&lt;p&gt;で、またゲームを作ろうとしたらどうしたらいいんだろ。。。&lt;/p&gt;
			&lt;p&gt;２）をもう一度実行したら、releaseしてるからつくれないし。。。&lt;/p&gt;
			&lt;p&gt;たぶん、初心者丸出しの悩みなんだろうなぁ。。。orz&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 03 Mar 2009 05:41:02 +0000</pubDate>
      </item>
      <item>
         <title>手が重くなって来た。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/aklaswad/20090301/1235879253</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;フィードリーダーを作ろうと思ってごりごり書いていたが、手が重くなって来た。特にxmlパーサーとか通信まわりの作り込みに関して。&lt;/p&gt;
			&lt;p&gt;なんかもう少し手抜きの出来る内容にシフトしてみようかな。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 01 Mar 2009 03:47:33 +0000</pubDate>
      </item>
      <item>
         <title>初アプリリリース!! 24 Photo Clock</title>
         <link>http://iphone-dev.g.hatena.ne.jp/kenhama/20090301</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;しばらく放置になってしまいましたが、初アプリリリースできました。&lt;/p&gt;
			&lt;p&gt;審査期間は一週間程度。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305610027&amp;mt=8&quot;&gt;24 Photo Clock&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305610027&amp;mt=8&quot; class=&quot;http-image&quot;&gt;&lt;img src=&quot;http://img.f.hatena.ne.jp/images/fotolife/k/kenhama/20090301/20090301150714.png&quot; class=&quot;http-image&quot; alt=&quot;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305610027&amp;mt=8&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/kenhama/20090301150713&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/k/kenhama/20090301/20090301150713.png&quot; alt=&quot;f:id:kenhama:20090301150713p:image&quot; title=&quot;f:id:kenhama:20090301150713p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;			&lt;br&gt;
			&lt;br&gt;

			&lt;p&gt;と思ったら、ネタも機能も完全にかぶってるアプリが出てる。。。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 28 Feb 2009 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>[Development]UIImageとキャッシュ</title>
         <link>http://iphone-dev.g.hatena.ne.jp/grimleaper/20090221/1235247990</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/mswar/20090221/1235238034&quot;&gt;http://d.hatena.ne.jp/mswar/20090221/1235238034&lt;/a&gt; を読んで、僕もUIImageを触っているときに UIImageがキャッシュされるときとそうでないときがあったりして困ったのでまとめておこうと思う。&lt;/p&gt;
			&lt;p&gt;　-initや+image系&lt;/p&gt;
			&lt;p&gt;　ほかのクラスと同じように、retainCountが0になると解放される。ここまでは何も悩むことはないんですが、&lt;/p&gt;
			&lt;p&gt;　+imagedNamed:&lt;/p&gt;
			&lt;p&gt;　こいつはアップルのドキュメントに書いてあるように、パスをKeyとして、イメージをキャッシュする。なので、下手にreleaseするとメモリーリークが発生する。+imageAtPath:というundocumentedなAPIも同じようにキャッシュしてくれるので、同じ画像を何度も使うときには最適。&lt;/p&gt;
			&lt;p&gt;　問題は、ビューアーやゲームで何度も違う画像を読み込む場合。+imageNamed:だと、どんどんキャッシュが溜まっていって、いつかはメモリが足りなくなり落ちます。僕が適当に試してみた結果、10M位を超えると落ちる感じでしょうか。この辺は環境によるかもしれませんが。&lt;/p&gt;
			&lt;p&gt;　なので、基本的にはinit系で画像を作り、何度も使い回す場合はimageNamed:で読み込む。という感じでしょう。一応、undocumentedなAPIに+removeImageNameFromCache:ってのがあるけど、僕の使い方が間違っていたのか、うまく消せている感じがしなかった。&lt;/p&gt;
			&lt;p&gt;で、サンプルコード。書いてみるとやっぱりimageNamed:が使いたくなる理由はわかる。&lt;/p&gt;
			&lt;p&gt;initWithContentsOfFile:&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
NSString *aImagePath = [[NSBundle mainBundle] pathForResource:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;gazou&amp;quot;&lt;/span&gt; ofType:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;png&amp;quot;&lt;/span&gt;];
UIImage *aImage = [[UIImage alloc] initWithContentsOfFile:aImagePath];
aImageView.image = aImage;
[aImage release];
&lt;/pre&gt;

			&lt;p&gt;imageWithContentsOfFile:&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
NSString *aImagePath = [[NSBundle mainBundle] pathForResource:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;gazou&amp;quot;&lt;/span&gt; ofType:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;png&amp;quot;&lt;/span&gt;];
aImageView.image = [UIImage imageWithContentsOfFile:aImagePath];
&lt;/pre&gt;

			&lt;p&gt;imageNamed:&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
aImageView.image = [UIImage imageNamed:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;gazou.png&amp;quot;&lt;/span&gt;];
&lt;/pre&gt;

			&lt;a rel=&quot;nofollow&quot; name=&quot;seemore&quot;&gt;&lt;/a&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 21 Feb 2009 20:26:30 +0000</pubDate>
         <category>Development</category>
      </item>
      <item>
         <title>角括弧がメッセージ式としてしか認識できない。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/aklaswad/20090218/1234944203</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;今はPerl書く時間です。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 18 Feb 2009 08:03:23 +0000</pubDate>
      </item>
      <item>
         <title>あうとれっとー。でりげいとー。</title>
         <link>http://iphone-dev.g.hatena.ne.jp/aklaswad/20090215/1234712512</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;どうも馴染めないなーIB。何回やっても理解出来ん。頭がウニになりそう。分かってしまえば楽になる筈の仕組みの筈なんだが。&lt;/p&gt;
			&lt;p&gt;なんか参考書買わないと駄目かも。うーん。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 15 Feb 2009 15:41:52 +0000</pubDate>
      </item>
      <item>
         <title>おもろいな</title>
         <link>http://iphone-dev.g.hatena.ne.jp/aklaswad/20090212/1234442611</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;iPhone3G発売直後くらいに10000円払ってから放置してたけど、ここ数日改めて触ってる。&lt;/p&gt;
			&lt;p&gt;なんか、初めてDelphi触ったときに似た感触が。オモロいな。iPhoneSDK。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 12 Feb 2009 12:43:31 +0000</pubDate>
      </item>
      <item>
         <title>[Development]UIChangesNotificationViewあっぷでーと</title>
         <link>http://iphone-dev.g.hatena.ne.jp/grimleaper/20090208/1234088281</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/fladdict/&quot;&gt;id:fladdict&lt;/a&gt;さんに指摘していただいた問題を解決しました。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://dl.getdropbox.com/u/339199/AppChangesNotification2.zip&quot;&gt;https://dl.getdropbox.com/u/339199/AppChangesNotification2.zip&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 08 Feb 2009 10:18:01 +0000</pubDate>
         <category>Development</category>
      </item>
      <item>
         <title>[Development]UIChangesNotificationView</title>
         <link>http://iphone-dev.g.hatena.ne.jp/grimleaper/20090207/1234001897</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;　&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/fladdict/status/1185313843&quot;&gt;http://twitter.com/fladdict/status/1185313843&lt;/a&gt; を聞いて、そういやそうか、と思い作成。見た目は以下のような感じです。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/grimleaper/20090207191214&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/g/grimleaper/20090207/20090207191214.png&quot; alt=&quot;f:id:grimleaper:20090207191214p:image&quot; title=&quot;f:id:grimleaper:20090207191214p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;a rel=&quot;nofollow&quot; name=&quot;seemore&quot;&gt;&lt;/a&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 07 Feb 2009 10:18:17 +0000</pubDate>
         <category>Development</category>
      </item>
      <item>
         <title>日記始めました</title>
         <link>http://iphone-dev.g.hatena.ne.jp/grimleaper/20090207/1234001624</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;　HatenaやTwitterで皆様が色々有益な情報を交換していらっしゃるので、僭越ですが僕も受け取るだけでなく何か発信できないかと思い、この日記を立ち上げました。&lt;/p&gt;
			&lt;p&gt;皆様よろしくお願いします。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 07 Feb 2009 10:13:44 +0000</pubDate>
      </item>
      <item>
         <title>「貼る蔵 for iPhone」を制作しました</title>
         <link>http://iphone-dev.g.hatena.ne.jp/yossy44/20090126/1232944452</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;ul&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.be-interactive.org/index.php?itemid=446&quot;&gt;http://www.be-interactive.org/index.php?itemid=446&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 26 Jan 2009 04:34:12 +0000</pubDate>
      </item>
      <item>
         <title>真のカメラアイコンを作ってもらいました</title>
         <link>http://iphone-dev.g.hatena.ne.jp/yossy44/20090123/1232710317</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;ul&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.be-interactive.org/index.php?itemid=445&quot;&gt;http://www.be-interactive.org/index.php?itemid=445&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 23 Jan 2009 11:31:57 +0000</pubDate>
      </item>
      <item>
         <title>拙作 JellyPics にライバル</title>
         <link>http://iphone-dev.g.hatena.ne.jp/yossy44/20090122/1232603785</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;これは反則だと思うんだ。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; Wobble
				&lt;ul&gt;
					&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=301166113&amp;mt=8&quot;&gt;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=301166113&amp;amp;mt=8&lt;/a&gt;&lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
				&lt;li&gt; JellyPics
				&lt;ul&gt;
					&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=299970481&amp;mt=8&quot;&gt;http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=299970481&amp;amp;mt=8&lt;/a&gt;&lt;/li&gt;
				&lt;/ul&gt;
				&lt;/li&gt;
			&lt;/ul&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 22 Jan 2009 05:56:25 +0000</pubDate>
      </item>
      <item>
         <title>id:fladdict に便乗して1万ポイントの質問</title>
         <link>http://iphone-dev.g.hatena.ne.jp/yossy44/20090113/1231844372</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/fladdict/&quot;&gt;id:fladdict&lt;/a&gt; に便乗して俺も1万ポイントの質問してみた&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://q.hatena.ne.jp/1231839959&quot;&gt;http://q.hatena.ne.jp/1231839959&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 13 Jan 2009 10:59:32 +0000</pubDate>
      </item>
      <item>
         <title>iPhone開発入門</title>
         <link>http://iphone-dev.g.hatena.ne.jp/taiko19xx/20081224/1230095153</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;忙しいのも終ったので、そろそろ再開させたい。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;とはいえ、情報を集めないと先に進まない。&lt;/p&gt;
			&lt;p&gt;入門っぽいやつを見つけたので、個人用メモとして。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://journal.mycom.co.jp/special/2008/iphone/menu.html&quot;&gt;iPhoneアプリケーション開発入門 | マイナビニュース&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gihyo.jp/dev/serial/01/iphone&quot;&gt;目指せ！iPhoneアプリ開発エキスパート：連載｜gihyo.jp … 技術評論社&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Wed, 24 Dec 2008 05:05:53 +0000</pubDate>
      </item>
      <item>
         <title>16進数変換</title>
         <link>http://iphone-dev.g.hatena.ne.jp/CueNarga/20081123</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;a なら 10 b なら 11 と変換とか…どーすんだ？と思って調べてたら&lt;/p&gt;
			&lt;p&gt;力つきた（汗&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;ま、それなら rangeOfString でどーとでもなる。&lt;/p&gt;
			&lt;p&gt;逆は…？10 なら a 11 なら b&lt;/p&gt;
			&lt;p&gt;なんかあんのかな？　使わないけど知っておかねばなぁ&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 22 Nov 2008 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>touch系 #3</title>
         <link>http://iphone-dev.g.hatena.ne.jp/CueNarga/20081122</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;電話をかけると Touch させてくれる人が自宅等に来るんですよね。&lt;/p&gt;
			&lt;p&gt;こちらも嫌いじゃないです…（汗&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;さて、 Touch 系メソッドについて無知すぎる感がアリアリですが、聞くは一時の恥精神で&lt;/p&gt;
			&lt;p&gt;いってみましょう。&lt;/p&gt;
			&lt;p&gt;touchesEnded などで…&lt;/p&gt;
&lt;pre class=&quot;syntax-highlight&quot;&gt;
	&lt;span class=&quot;synComment&quot;&gt;// 2本指タッチテスト&lt;/span&gt;
	NSSet *allTouches = [event allTouches];
	&lt;span class=&quot;synStatement&quot;&gt;switch&lt;/span&gt; ([allTouches count]) {
		&lt;span class=&quot;synStatement&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;1&lt;/span&gt;: {
			&lt;span class=&quot;synStatement&quot;&gt;break&lt;/span&gt;;
		}
		&lt;span class=&quot;synStatement&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;synConstant&quot;&gt;2&lt;/span&gt;: {
			
		[mesArray removeObjectAtIndex:&lt;span class=&quot;synConstant&quot;&gt;0&lt;/span&gt;];
		[mesArray addObject:&lt;span class=&quot;synConstant&quot;&gt;@&amp;quot;22 TWO FINGER 22&amp;quot;&lt;/span&gt;];
			&lt;span class=&quot;synStatement&quot;&gt;break&lt;/span&gt;;
		}
		&lt;span class=&quot;synStatement&quot;&gt;default&lt;/span&gt;:{
		}
	}
	&lt;span class=&quot;synComment&quot;&gt;// 2本指タッチテスト end&lt;/span&gt;
&lt;/pre&gt;

			&lt;p&gt;こおすっと2本指のタップが取れる。&lt;/p&gt;
			&lt;p&gt;んで、つらつらっと UITouch Class Reference を見てみると気になる記述が…&lt;/p&gt;
			&lt;p&gt;UITouchSwipedRight&lt;/p&gt;
			&lt;p&gt;ん？　これで「右よ！」みたいなん取れるのかな？&lt;/p&gt;
			&lt;p&gt;試してないけど。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 21 Nov 2008 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>setNeedsDisplay</title>
         <link>http://iphone-dev.g.hatena.ne.jp/CueNarga/20081121</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;Array を保持しておく時に retain さえしときゃ良いんだ…&lt;/p&gt;
			&lt;p&gt;というユルユルな感じで配列を確保してました。&lt;/p&gt;
			&lt;p&gt;描画でも同じノリでいきましょう。&lt;/p&gt;
			&lt;p&gt;掴んでるレイヤーに対して　setNeedsDisplay　これ。&lt;/p&gt;
			&lt;p&gt;とりあえず描いたらコレ　setNeedsDisplay&lt;/p&gt;
			&lt;p&gt;お茶のお供に　setNeedsDisplay&lt;/p&gt;
			&lt;p&gt;気になるあの娘に　setNeedsDisplay&lt;/p&gt;
			&lt;p&gt;（GO-BANG'S の CD のようだが、お若い方にはわかるまい）&lt;/p&gt;
			&lt;p&gt;Touch系メソッドの中で描画してて、なんか遅れるなーと思ってたんですが、再描画すれば&lt;/p&gt;
			&lt;p&gt;良かったんですね。&lt;/p&gt;
			&lt;p&gt;[self setNeedsDisplay];&lt;/p&gt;
			&lt;p&gt;こんな風に。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;色々な方がアプリをリリースする中、まだまだ開発進捗は 10% 程ですね。&lt;/p&gt;
			&lt;p&gt;週末プログラマには辛い試練だ。だが耐えよう。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Thu, 20 Nov 2008 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>CGContextSetLineWidth</title>
         <link>http://iphone-dev.g.hatena.ne.jp/CueNarga/20081116</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;CGContextSetLineWidth(context, 1.0);&lt;/p&gt;
			&lt;p&gt;とやってれば、1ドット(1pxiel)の線やら矩形やらが描けると思ってた。&lt;/p&gt;
			&lt;p&gt;が、&lt;/p&gt;
			&lt;p&gt;スクリーンショットをマジマジと見ていたら違った。&lt;/p&gt;
			&lt;p&gt;CGContextMoveToPoint や CGContextAddLineToPoint では 0.5 単位の指定が必要らしい。&lt;/p&gt;
			&lt;p&gt;なんぞこれ…&lt;/p&gt;
			&lt;p&gt;ちなみに、愛媛でも色々あって、自分の実家だと&lt;/p&gt;
			&lt;p&gt;なんなんこれ… となる。ま、どーでもいいんだけどｗ&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sat, 15 Nov 2008 15:00:00 +0000</pubDate>
      </item>
      <item>
         <title>作りたいやつ</title>
         <link>http://iphone-dev.g.hatena.ne.jp/taiko19xx/20081109/1226234285</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;傾けたら音なるやつ作りたい。&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;で、UIAccelerometerを使うんだけど、いまいちよく分かんない。&lt;/p&gt;
			&lt;p&gt;というか基礎からよく見ないとだめですね＞＜&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;音ならすのはSystem Audio Servicesでいいっぽいと思う。&lt;/p&gt;
			&lt;p&gt;ループさせればいいだろうし。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 09 Nov 2008 12:38:05 +0000</pubDate>
      </item>
      <item>
         <title>スタートライン</title>
         <link>http://iphone-dev.g.hatena.ne.jp/taiko19xx/20081107/1226063700</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;たのしいCocoaプログラミング[Leopard対応版]と&lt;/p&gt;
			&lt;p&gt;詳解 Objective-C2.0を読みつつ、&lt;/p&gt;
			&lt;p&gt;iPhone Dev CenterのCoding How-to'sを読みふけっています。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Fri, 07 Nov 2008 13:15:00 +0000</pubDate>
      </item>
      <item>
         <title>[pending contract]住所の文字化けの修正依頼メール文面(参考)</title>
         <link>http://iphone-dev.g.hatena.ne.jp/takuma104/20081021/1224569663</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/takuma104/20081006/1223242939&quot;&gt;AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か? - Takuma104.m - iPhoneアプリ開発グループ&lt;/a&gt;に関連して。&lt;/p&gt;
			&lt;p&gt;僕は、iTSPayments@apple.comとdevcontracts@apple.comそれぞれに以下のような文面でメールしたら住所が英語になりました。(ただし、どちらとも返事がなかった)また、iTunes株式会社からもその前に住所問い合わせのメールがあったので、いまいち意味あるかわからないんですが。。&lt;/p&gt;
			&lt;p&gt;英語はちょっと自信ないですがｗ，もしよろしければ、なにかの参考まで。&lt;/p&gt;
&lt;pre&gt;
To whom it may concern,

I&amp;#39;m a iPhone Developer Program member.

I&amp;#39;m asking for pending contract problem.
I&amp;#39;ve been in pending contract problem for more then three weeks.

I don&amp;#39;t know that it relate to the issue, I found some bugs
in Contact Info &amp;#34;Company (Legal Entity) Address&amp;#34;.
It seems my address is unreadable.
(It might be Japanese Character.)


The following currently displayed.
--
??? ?????? ????
City:??????
State/Province:???
Zip/Postal Code:100-0000
Country:Japan


The following is correct info.
--
#301 hogehoge
City: Ohta-ku
State/Province: Tokyo
Zip/Postal Code:100-0000
Country:Japan


Would you please fix it?

Best regards,

---
Takuma Mori &amp;#60;takuma@104.net&amp;#62;
#301 hogehoge, Ohta-ku Tokyo, Japan
Person ID: &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;
Application Name: &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;
Apple ID: &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;

&lt;/pre&gt;

		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Tue, 21 Oct 2008 06:14:23 +0000</pubDate>
      </item>
      <item>
         <title>AppStoreへの提出アプリがPending Contractで嵌らない為の最低条件は何か?</title>
         <link>http://iphone-dev.g.hatena.ne.jp/takuma104/20081006/1223242939</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://f.hatena.ne.jp/takuma104/20080924073425&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;img src=&quot;http://cdn-ak.f.st-hatena.com/images/fotolife/t/takuma104/20080924/20080924073425.png&quot; alt=&quot;f:id:takuma104:20080924073425p:image&quot; title=&quot;f:id:takuma104:20080924073425p:image&quot; class=&quot;hatena-fotolife&quot;&gt;&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;いま僕のアプリ(NatsuLiphone)は、FreeAppとして提出しているにもかかわらず、&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://d.hatena.ne.jp/takuma104/20080915/1221511082&quot;&gt;3週間以上Pending Contractの刑を食っているという謎な状況&lt;/a&gt;になっています。&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/takuma104/#f1&quot; name=&quot;fn1&quot; title=&quot;Pending Contract&amp;#x00554f;&amp;#x00984c;&amp;#x00306b;&amp;#x003064;&amp;#x003044;&amp;#x003066;&amp;#x00306f;&amp;#x003001;[http://fladdict.net/blog/2008/10/eternalpendingcontract.html:title=fladdict&amp;#x003055;&amp;#x003093;&amp;#x00306e;&amp;#x00307e;&amp;#x003068;&amp;#x003081;]&amp;#x00304c;&amp;#x005206;&amp;#x00308a;&amp;#x003084;&amp;#x003059;&amp;#x003044;&amp;#x00304b;&amp;#x003068;&amp;#x00601d;&amp;#x003044;&amp;#x00307e;&amp;#x003059;&quot;&gt;*1&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
			&lt;p&gt;iTunes Connect の &quot;Contracts, Tax, &amp; Banking Information&quot; の &quot;Your Contracts In Process&quot; 部分のスクリーンショットはこんな感じで、Free Applicationのところの &quot;Setup Complete&quot; がグリーンになっていないことが分ります。&lt;/p&gt;
			&lt;p&gt;&lt;img src=&quot;http://gyazo.com/4d85b45a7dc693ec6e3e7b0f5e6a1ed1.png&quot;&gt;&lt;/p&gt;
			&lt;p&gt;週末Twitterで、実際にFreeアプリケーションをAppStoreでリリースされている方に状況とかを確認してみたのですが、総合すると、どうやら問題は、&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;&lt;b&gt;アプリの審査終了時点(Ready for Saleメールが来た段階)で、&quot;Contracts, Tax, &amp; Banking Information&quot;画面の、Paid ApplicationのContact InfoのEditで見れる&quot;Company (Legal Entity) Address&quot;が化けないで(??とかにならないで)表示されている&lt;/b&gt;&lt;/p&gt;			&lt;br&gt;

			&lt;p&gt;というのが1つの条件になるようです。また、名前の部分も僕の場合「琢磨 Mori」などとなっていますが、これは問題にならないようです。&lt;span class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/takuma104/#f2&quot; name=&quot;fn2&quot; title=&quot;&amp;#x00306a;&amp;#x00305c;&amp;#x00304b;&amp;#x003068;&amp;#x003044;&amp;#x003046;&amp;#x003068;&amp;#x003001;[http://rejaw.com/tools:title=Rejaw for iPhone]&amp;#x00306a;&amp;#x003069;&amp;#x00304c;&amp;#x003001;&amp;#x003053;&amp;#x003053;&amp;#x00304c;&amp;#x006f22;&amp;#x005b57;&amp;#x00306e;&amp;#x00307e;&amp;#x00307e;&amp;#x00516c;&amp;#x00958b;&amp;#x003055;&amp;#x00308c;&amp;#x003066;&amp;#x003044;&amp;#x00308b;&amp;#x00305f;&amp;#x003081;&amp;#x003067;&amp;#x003059;&quot;&gt;*2&lt;/a&gt;&lt;/span&gt; ということで、ここの住所部分が文字化けしている人は、アプリを申請する前にでも、iTSPayments @ apple.com もしくは、 devcontracts @ apple.com にメールするなりして修正してもらったのを確認してから提出するのが良いと思われます。また7/11以前にDev Programsに加入できた人は、どうやらここの住所はiTunes Storeの情報ではない(?)ようなので、7/11以降に加入した人が対象になっているものと思われます。&lt;/p&gt;
			&lt;p&gt;それで、結局僕のほうは、これが2日前に修正されたわけなのですが、一向にまだPending Contract状態のままです。もしかすると、いまのこの状態から、このPending Contractを解除する人が仕事をちゃんとしていないのではないか、という余計な邪推もできます。今週動きがなかったら、また電話するなりしてみようと思います。&lt;/p&gt;
		&lt;/div&gt;
		&lt;div class=&quot;footnote&quot;&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/takuma104/#fn1&quot; name=&quot;f1&quot;&gt;*1&lt;/a&gt;：Pending Contract問題については、&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fladdict.net/blog/2008/10/eternalpendingcontract.html&quot;&gt;fladdictさんのまとめ&lt;/a&gt;が分りやすいかと思います&lt;/p&gt;
			&lt;p class=&quot;footnote&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/takuma104/#fn2&quot; name=&quot;f2&quot;&gt;*2&lt;/a&gt;：なぜかというと、&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rejaw.com/tools&quot;&gt;Rejaw for iPhone&lt;/a&gt;などが、ここが漢字のまま公開されているためです&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Sun, 05 Oct 2008 21:42:19 +0000</pubDate>
      </item>
      <item>
         <title>[NDA]iPhone SDK の NDA の廃止を嘆願する署名運動が行われています</title>
         <link>http://iphone-dev.g.hatena.ne.jp/takuma104/20080825/1219654052</link>
         <description>&lt;div class=&quot;section&quot;&gt;
			&lt;p&gt;ここで行われているようです。&lt;/p&gt;
			&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ipetitions.com/petition/iPhoneNDA/index.html&quot;&gt;http://www.ipetitions.com/petition/iPhoneNDA/index.html&lt;/a&gt;&lt;/p&gt;
			&lt;p&gt;さっそく僕も署名しました。&lt;a rel=&quot;nofollow&quot; class=&quot;keyword&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/keyword/NDA&quot;&gt;NDA&lt;/a&gt;自体は廃止してもらったほうが良いとは思いますが、全廃じゃなくても、個人的には以下の3つが出来るようになれば良いと考えているので、そのように署名コメントしてみました。&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt; iPhone SDKについて書かれた本が自由に出版できること&lt;/li&gt;
				&lt;li&gt; &lt;a rel=&quot;nofollow&quot; class=&quot;keyword&quot; target=&quot;_blank&quot; href=&quot;http://iphone-dev.g.hatena.ne.jp/keyword/NDA&quot;&gt;NDA&lt;/a&gt;締結者同士の無制限の情報交換を可能にすること(オンライン・オフライン問わず)&lt;/li&gt;
				&lt;li&gt; iPhone SDK用に自分達が書いたコードが自由に公開できること&lt;/li&gt;
			&lt;/ul&gt;
			&lt;p&gt;なおこの署名サイト iPetitions は、署名すると、「iPetitionsサイト維持のために、募金してくれ画面」が出ますが、任意でないようで実は任意です。募金しないでも、署名自体は行われますので、ご注意ください。&lt;/p&gt;
		&lt;/div&gt;</description>
         <guid isPermaLink="false"></guid>
         <pubDate>Mon, 25 Aug 2008 08:47:32 +0000</pubDate>
         <category>NDA</category>
      </item>
   </channel>
</rss>
<!-- fe6.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 23:05:42 UTC 2015 -->
