<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BridgeMetaware</title>
	<atom:link href="http://www.bridgemw.co.jp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bridgemw.co.jp</link>
	<description>BridgeMetaware</description>
	<lastBuildDate>Tue, 13 Dec 2011 16:52:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>UIBezierPathの描画で注意するべきこと</title>
		<link>http://www.bridgemw.co.jp/uibezierpath%e3%81%ae%e6%8f%8f%e7%94%bb%e3%81%a7%e6%b3%a8%e6%84%8f%e3%81%99%e3%82%8b%e3%81%b9%e3%81%8d%e3%81%93%e3%81%a8.html</link>
		<comments>http://www.bridgemw.co.jp/uibezierpath%e3%81%ae%e6%8f%8f%e7%94%bb%e3%81%a7%e6%b3%a8%e6%84%8f%e3%81%99%e3%82%8b%e3%81%b9%e3%81%8d%e3%81%93%e3%81%a8.html#comments</comments>
		<pubDate>Thu, 18 Nov 2010 09:45:59 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=536</guid>
		<description><![CDATA[iOS3.2からUIBezierPathが利用できるようになりました。 2次元グラフィックを扱う人にとっては朗報ですね。 ところが、実際にUIBezierPathを使ってプログラミングしていたら驚くべきことが分りました。 [...]]]></description>
			<content:encoded><![CDATA[
<p>iOS3.2からUIBezierPathが利用できるようになりました。<br />
2次元グラフィックを扱う人にとっては朗報ですね。<br />
ところが、実際にUIBezierPathを使ってプログラミングしていたら驚くべきことが分りました。</p>
<p>UIBezierPathを使って多めの線分(3000本)を一気に描画してみました。</p>
<p>(1)普通のケース</p>
<pre>
- (void)drawRect:(CGRect)rect {
// 諸々描画準備

UIBezierPath *path = [[UIBezierPath alloc]init];
//path.lineWidth = 2; // 2ptの太線にする(今はコメントアウトしておく)
for (int i = 0; i < 3000; i++) {
  double sx = (rand() % 10) / 10.0 * w;
  double sy = (rand() % 10) / 10.0 * h;
  double ex = (rand() % 10) / 10.0 * w;
  double ey = (rand() % 10) / 10.0 * h;
  [path moveToPoint:CGPointMake(sx, sy)];
  [path addLineToPoint:CGPointMake(ex, ey)];
}
CGContextSetRGBStrokeColor(context, 1, 0, 0, 1);
NSTimeInterval started = [[NSDate date] timeIntervalSinceReferenceDate];
[path stroke];
NSLog(@"done:%f", ([[NSDate date] timeIntervalSinceReferenceDate] - started) * 1000);
}
</pre>
<p>実行結果は</p>
<p><strong>>done:265.557945</strong></p>
<p>300ミリ秒弱、ちょっと遅い感じもしますが、、、こんなものでしょうか。</p>
<p>(2)太線にしたケース<br />
上のコードの以下の部分を有効にしてみます。</p>
<pre>
path.lineWidth = 2; // 2ptの太線にする
</pre>
<p>実行結果は</p>
<p><strong>>done:178170.634985</strong></p>
<p>え？180秒？3分掛ってる？何かの間違いか？もしや、、これはJavaでも散々問題が発生したアレか？<br />
試しに<b>アンチエイリアス</b>をオフる。</p>
<p>実行結果は</p>
<p><strong>>done:809.293985</strong></p>
<p>うぅ、やっぱり。<br />
大量のグラフィックを描画する場合には、アンチイリアスが必要なものとそうでないものを分けて描画しましょう。</p>
<p>方法はこんな感じです。</p>
<pre>
// アンチエイリアスをOFFにする。
CGContextSetAllowsAntialiasing(context, false);
CGContextSetShouldAntialias(context, false);
</pre>
<p>せっかくの美しい画面がジャギジャギですが、背に腹はかえられません。<br />
何かもっと良い方法があるに違いないのですが、今のところ分りません。</p>
<p>&nbsp;</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/uibezierpath%e3%81%ae%e6%8f%8f%e7%94%bb%e3%81%a7%e6%b3%a8%e6%84%8f%e3%81%99%e3%82%8b%e3%81%b9%e3%81%8d%e3%81%93%e3%81%a8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone4でVGA出力</title>
		<link>http://www.bridgemw.co.jp/iphone4%e3%81%a7vga%e5%87%ba%e5%8a%9b.html</link>
		<comments>http://www.bridgemw.co.jp/iphone4%e3%81%a7vga%e5%87%ba%e5%8a%9b.html#comments</comments>
		<pubDate>Mon, 08 Nov 2010 12:24:14 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=524</guid>
		<description><![CDATA[Appleは、iPhone4のアンテナ感度がどうしたこうしたという問題を解決するために、何種類かのiPhone専用ケースを無償配布しました。その中で恐らく一番人気だったのが「バンパー」。確かApple純正ですよね？隙間な [...]]]></description>
			<content:encoded><![CDATA[
<p>Appleは、iPhone4のアンテナ感度がどうしたこうしたという問題を解決するために、何種類かのiPhone専用ケースを無償配布しました。その中で恐らく一番人気だったのが「バンパー」。確かApple純正ですよね？隙間なくキレイに収まって素敵です。<br />
&nbsp;<br />
んが、しかし！！同じく<strong>Apple純正のVGAアダプターが刺さらない</strong>じゃないかー！！<br />
一見するとちゃんと刺さってるように見えるんですが、ケースの厚みの分だけ浮いてます。VGAアダプターの根っこがちょこっと太いんです。</p>
<p>これではVGA出力できませんよね。あまりにシドイ…小一時間悩みました。VGA出力できないみなさん、ひょっとしたら原因は「バンパー」かもしれませんよ。<br />
&nbsp;<br />
「タダより高いものはない」<br />
&nbsp;</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/iphone4%e3%81%a7vga%e5%87%ba%e5%8a%9b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ審査落ち</title>
		<link>http://www.bridgemw.co.jp/iphone%e3%82%a2%e3%83%97%e3%83%aa%e5%af%a9%e6%9f%bb%e8%90%bd%e3%81%a1.html</link>
		<comments>http://www.bridgemw.co.jp/iphone%e3%82%a2%e3%83%97%e3%83%aa%e5%af%a9%e6%9f%bb%e8%90%bd%e3%81%a1.html#comments</comments>
		<pubDate>Fri, 05 Nov 2010 06:47:00 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[コラム]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[審査]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=494</guid>
		<description><![CDATA[サッカーワールドカップが遠い昔のことのように思えます。 当時、ワールドカップ向けのアプリがたくさんリリースされていました。 有名どころとしてはバーチャルブブゼラでしょうか。無料版、有料版が用意されていて、有料版はただ音が [...]]]></description>
			<content:encoded><![CDATA[
<p>サッカーワールドカップが遠い昔のことのように思えます。<br />
当時、ワールドカップ向けのアプリがたくさんリリースされていました。<br />
有名どころとしてはバーチャルブブゼラでしょうか。無料版、有料版が用意されていて、有料版はただ音が大きい(笑)というお遊びアプリでした。<br />
私もこれに負けじと、イエロー・レッドカードなるアプリを申請しました。<br />
アプリを起動すると下のような画面が表示されて、レッドカードかイエローカードを選択するとホイッスルの音がして画面が真っ赤、または真っ黄色になる、という実にナイスなアプリでした。<br />
スポーツバーでみんながこのアプリで遊んでいるところが目に浮かびました…</p>
<p>ところが、アップルのレビューでRejectされていまいました。Rejectの理由は、噂の「機能無し」でした！<br />
おおいに笑わせていただきました。が、もう少し洒落を分ってくれてもいいですよね！</p>
<p><img src="http://www.bridgemw.co.jp/wp-content/uploads/2010/11/yrcard.png" alt="" title="yrcard" width="120" height="180" class="alignleft size-full wp-image-498" /> <img src="http://www.bridgemw.co.jp/wp-content/uploads/2010/11/yellowcard.png" alt="" title="yellowcard" width="120" height="180" class="alignnone size-full wp-image-512" /> <img src="http://www.bridgemw.co.jp/wp-content/uploads/2010/11/redcard.png" alt="" title="redcard" width="120" height="180" class="alignnone size-full wp-image-508" /></p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/iphone%e3%82%a2%e3%83%97%e3%83%aa%e5%af%a9%e6%9f%bb%e8%90%bd%e3%81%a1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenGLで省電力</title>
		<link>http://www.bridgemw.co.jp/opengl%e3%81%a7%e7%9c%81%e9%9b%bb%e5%8a%9b.html</link>
		<comments>http://www.bridgemw.co.jp/opengl%e3%81%a7%e7%9c%81%e9%9b%bb%e5%8a%9b.html#comments</comments>
		<pubDate>Fri, 05 Nov 2010 06:08:44 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[技術情報]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[openGL]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=481</guid>
		<description><![CDATA[OpenGLでぶんぶんループを回っているようなアプリは、かなりの勢いで電池を消費するようです。 プレイヤーが考えている時間が長いパズルゲームを作ってしまったので、プレイしている間に消費電力を抑える工夫が必要でした。 そこ [...]]]></description>
			<content:encoded><![CDATA[
<p>OpenGLでぶんぶんループを回っているようなアプリは、かなりの勢いで電池を消費するようです。<br />
プレイヤーが考えている時間が長いパズルゲームを作ってしまったので、プレイしている間に消費電力を抑える工夫が必要でした。<br />
そこで一定の間操作が無かったらOpenGLのループを回さない、というごく単純な戦略をとりました。</p>
<pre>
// アニメーション開始
- (void)startAnimation {
  // 動作中のタイマーがあったら停止
  if (animationTimer != nil &#038;&#038; [animationTimer isValid]) {
    [animationTimer invalidate];
    animationTimer = nil;
  }
  // タイマー開始時間をメモ
  startTime = [NSDate timeIntervalSinceReferenceData];

  // 描画タイマー開始(30fpsをメドで再描画)
  animationTimer =
    [NSTimer scheduledTimerWithTimeInterval:1.0/30
          target:self selector:@selector(draw) userInfo:nil repeats:TRUE];
}

// アニメーション停止
- (void)stopAnimation {
  if (animationTimer != nil &#038;&#038; [animationTimer isValid]) {
    [animationTimer invalidate];
  }
  animationTimer = nil;
}

// ドラッグイベントハンドラ
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  // 操作時間更新
  startTime = [NSDate timeIntervalSinceReferenceDate];
  // ドラッグの処理
}

// 描画メソド
- (void)draw{
  // オブジェクトの描画

  NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
  NSTimeInterval interval = now - startTime;
  // 何もしていない時間が5秒あったらループ停止
  if (interval > 5) {
    [self stopAnimation];
  }
}
</pre>
<p>こんな感じでアニメーションを停止するようにしました。<br />
これで触っていないときに電池の減りを抑えることができました。</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/opengl%e3%81%a7%e7%9c%81%e9%9b%bb%e5%8a%9b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone/iPadアプリでのXMLパース</title>
		<link>http://www.bridgemw.co.jp/iphoneipad%e3%82%a2%e3%83%97%e3%83%aa%e3%81%a7%e3%81%aexml%e3%83%91%e3%83%bc%e3%82%b9.html</link>
		<comments>http://www.bridgemw.co.jp/iphoneipad%e3%82%a2%e3%83%97%e3%83%aa%e3%81%a7%e3%81%aexml%e3%83%91%e3%83%bc%e3%82%b9.html#comments</comments>
		<pubDate>Mon, 01 Nov 2010 13:03:44 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[技術情報]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=409</guid>
		<description><![CDATA[今回はiPhone/iPadアプリ内でXMLをパースする方法について書いてみます。 私の場合、iPhone/iPadでXML形式のデータを扱うのは主に以下のケースです。 iPhone/iPad内に保存されたアプリ独自のデ [...]]]></description>
			<content:encoded><![CDATA[
<p>今回はiPhone/iPadアプリ内でXMLをパースする方法について書いてみます。<br />
私の場合、iPhone/iPadでXML形式のデータを扱うのは主に以下のケースです。</p>
<ol>
<li>iPhone/iPad内に保存されたアプリ独自のデータを読込みする場合</li>
<li>サーバ(Servlet)と通信する場合</li>
</ol>
<p>まずはDOMでいくか、SAXでいくか選択します。小さいデータならDOMが扱いやすいので、普通にDOM形式で読みこんでしまいます。<br />
問題になるのは、ちょっと大きめのデータを扱う場合で、DOM形式で読みこんでから自分のオブジェクトに変換したのでは一時的に多くのメモリを必要としてしまいます。<strong>読込しながら自分のオブジェクトに変換</strong>していきたいところですから、定石どおりSAXを利用することにします。<br />
SAXを利用する場合はNSXMLParserを使うか、libxmlを使うか、の二つの選択肢が標準的に用意されています。<a href="http://journal.mycom.co.jp/column/iphone/007/index.html">NSXMLParserは使いやすく、libxmlは高速である</a>、との情報がありました。<strong>もちろん高速な方(libxml)を選択しますよ！</strong></p>
<p>SAXはXMLの構文解析をしながら、適切なメソドを呼び出してくれますので、我々はイベントハンドラの登録と、イベントハンドラの実装を行います。</p>
<pre>
// タグを読み込んだら呼び出されます。
static void startElementHandler(void* ctx,
					const xmlChar* localname,
					const xmlChar* prefix,
					const xmlChar* URI,
					int nb_namespaces,
					const xmlChar** namespaces,
					int nb_attributes,
					int nb_defaulted,
					const xmlChar**attributes);

// タグが閉じられたら呼び出されます。
static void	endElementHandler(void* ctx,
					const xmlChar* localname,
					const xmlChar* prefix,
					const xmlChar* uri);

// 文字列を読み込んだら呼び出されます。
static void charactersFoundHandler(void* ctx, const xmlChar* ch, int len);
</pre>
<p>それぞれのハンドラではタグ名等に応じて独自形式のオブジェクトを作成し、設定していけば良いのですが、startElementHandlerでElementから属性値を取得するのがとても面倒です。速い方を選択した代償だと思って頑張りましょう！以下にその方法を抜粋して記述します。</p>
<pre>
	if (nb_attributes > 0) {
		NSMutableDictionary *attributes = [[[NSMutableDictionary alloc]init]autorelease];
		for (int i = 0; i < nb_attributes; i++) {
			NSString *key = [NSString stringWithCString:(const char*)charAttributes[0] encoding:NSUTF8StringEncoding];
			int length = charAttributes[4] - charAttributes[3];
			NSString *val = [[NSString alloc]initWithBytes:charAttributes[3] length:length encoding:NSUTF8StringEncoding];
			[attributes setObject:val forKey:key];
			charAttributes += 5;
		}
		// TODO: ここでオブジェクトに属性(attributes)をセットして下さい。
	}
</pre>
<p>MAGICナンバーも出てきますけど、最近はあんまり気を使わなくなりました。番号が直接書いてあるほうが良い場合もあるということにしましょう。</p>
<p>これで大抵のXML要素のパースが可能になりました。</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/iphoneipad%e3%82%a2%e3%83%97%e3%83%aa%e3%81%a7%e3%81%aexml%e3%83%91%e3%83%bc%e3%82%b9.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>実機で画像が表示されない</title>
		<link>http://www.bridgemw.co.jp/%e5%ae%9f%e6%a9%9f%e3%81%a7%e7%94%bb%e5%83%8f%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84.html</link>
		<comments>http://www.bridgemw.co.jp/%e5%ae%9f%e6%a9%9f%e3%81%a7%e7%94%bb%e5%83%8f%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84.html#comments</comments>
		<pubDate>Mon, 01 Nov 2010 12:01:06 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[技術情報]]></category>
		<category><![CDATA[Image]]></category>
		<category><![CDATA[iPhone Simurator]]></category>
		<category><![CDATA[iPhoneシミュレータ]]></category>
		<category><![CDATA[UIImageView]]></category>
		<category><![CDATA[実機との違い]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=471</guid>
		<description><![CDATA[iPhoneシミュレータでは表示されるのに、実機にインストールすると画像が表示されない&#8230;。 そんなことが何度かありました。今回はUIImageViewでそんな現象に遭遇しました。 原因は不明(実機のイメージキ [...]]]></description>
			<content:encoded><![CDATA[
<p>iPhoneシミュレータでは表示されるのに、実機にインストールすると画像が表示されない&#8230;。<br />
そんなことが何度かありました。今回はUIImageViewでそんな現象に遭遇しました。<br />
原因は不明(実機のイメージキャッシュかな?)ですが、以下の手順で正常に表示されるようになりました。</p>
<ol>
<li>別の名前のイメージを指定</li>
<li>ビルドと実行</li>
<li>実機で画像を確認</li>
<li>アプリ終了</li>
<li>本来表示させたい画像を指定</li>
<li>ビルドと実行</li>
<li>実機で確認＝＞OK!!</li>
</ol>
<p>不思議なことに、これでちゃんと表示されるようになりました。</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/%e5%ae%9f%e6%a9%9f%e3%81%a7%e7%94%bb%e5%83%8f%e3%81%8c%e8%a1%a8%e7%a4%ba%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone/iPadクライアントとサーバ間通信</title>
		<link>http://www.bridgemw.co.jp/iphoneipad%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%81%a8%e3%82%b5%e3%83%bc%e3%83%90%e9%96%93%e9%80%9a%e4%bf%a1.html</link>
		<comments>http://www.bridgemw.co.jp/iphoneipad%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%81%a8%e3%82%b5%e3%83%bc%e3%83%90%e9%96%93%e9%80%9a%e4%bf%a1.html#comments</comments>
		<pubDate>Mon, 25 Oct 2010 05:39:18 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[技術情報]]></category>
		<category><![CDATA[GoF]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NSData]]></category>
		<category><![CDATA[ZIP]]></category>
		<category><![CDATA[コマンドパターン]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=369</guid>
		<description><![CDATA[サーバとクライアント間の通信にはみなさんどのような方式を使われていますか？ これまで、サーバ側がApache+Tomcatでクライアント側がJavaApplicationなどというアプリケーションを開発してきたため、かな [...]]]></description>
			<content:encoded><![CDATA[
<p>サーバとクライアント間の通信にはみなさんどのような方式を使われていますか？<br />
これまで、サーバ側がApache+Tomcatでクライアント側がJavaApplicationなどというアプリケーションを開発してきたため、かなり自由な方式を試してきました。その中で今でも生き残っているのは、XMLの通信によるコマンドパターン実装です。<br />
XMLによるコマンドを相互にやり取りすることで処理を進めていきます。サーバとクライアント実装を比較的独立して進めることができることも気に行っています。</p>
<p>ところが、このコマンドパターンで実装したシステムにiPhone/iPadの実装を追加しようとすると、ちょっと大変です。<br />
まず、XMLのパースがちょっと面倒です。さらに、データをZIP圧縮して送受信しているため、ZIPのハンドリングをしなければならず、これまた面倒です。</p>
<p>徐々にではありますが、</p>
<ul>
<li>iPhone/iPadにおけるXMLのパース</li>
<li>iPhone/iPadにおけるZIPデータの扱い</li>
</ul>
<p>に関して記述していこうと思います。</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/iphoneipad%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%81%a8%e3%82%b5%e3%83%bc%e3%83%90%e9%96%93%e9%80%9a%e4%bf%a1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>バージョンアップ承認</title>
		<link>http://www.bridgemw.co.jp/%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%a2%e3%83%83%e3%83%97%e6%89%bf%e8%aa%8d.html</link>
		<comments>http://www.bridgemw.co.jp/%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%a2%e3%83%83%e3%83%97%e6%89%bf%e8%aa%8d.html#comments</comments>
		<pubDate>Wed, 20 Oct 2010 08:21:29 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[製品情報]]></category>
		<category><![CDATA[AppStore]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Stone5]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=377</guid>
		<description><![CDATA[本日、AppStoreにてStone5のバージョンアップ版が承認されました。 日本語版だけで発生するバグの修正という内容だったのですが、「In Review」から「Ready for sale」まで結構長かったですね。約 [...]]]></description>
			<content:encoded><![CDATA[
<p>本日、AppStoreにて<a href="http://itunes.apple.com/jp/app/stone5/id345295778?mt=8" target="_BLANK">Stone5のバージョンアップ版</a>が承認されました。</p>
<p>日本語版だけで発生するバグの修正という内容だったのですが、「In Review」から「Ready for sale」まで結構長かったですね。約一週間掛ってます。<br />
たぶん、ロボットに勝利するまでやったからだと思いますよ(笑)</p>
<p>みなさまも是非手強いロボットをぎゃふんと言わせて下さい！</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e3%82%a2%e3%83%83%e3%83%97%e6%89%bf%e8%aa%8d.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>アプリ更新</title>
		<link>http://www.bridgemw.co.jp/%e3%82%a2%e3%83%97%e3%83%aa%e6%9b%b4%e6%96%b0.html</link>
		<comments>http://www.bridgemw.co.jp/%e3%82%a2%e3%83%97%e3%83%aa%e6%9b%b4%e6%96%b0.html#comments</comments>
		<pubDate>Tue, 12 Oct 2010 11:18:45 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[製品情報]]></category>
		<category><![CDATA[AppStore]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Stone5]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=340</guid>
		<description><![CDATA[iPhone上で動くOpenGLを使ったボードゲームアプリの&#8220;>Stone5をリリースしています。 前回の更新で「対戦するロボットを変更して設定すると落ちる」というレビューを頂いていたのですが、現象がなかなか [...]]]></description>
			<content:encoded><![CDATA[
<p>iPhone上で動くOpenGLを使ったボードゲームアプリの<a href="http://itunes.apple.com/jp/app/stone5/id345295778?mt=8" target="_BLANK">&#8220;>Stone5</a>をリリースしています。<br />
前回の更新で「対戦するロボットを変更して設定すると落ちる」というレビューを頂いていたのですが、現象がなかなか再現できずちょっと困っていたのですが、やっと原因がわかりました。<br/><br/></p>
<p>日本語版と英語版をリリースしているのですが、表示形式を多少調整するために、xibファイルを両方の言語で分けています。それがミスの原因で、英語版のOutlet接続は正しく変更したのに、日本語版のOutlet接続が間違っていました。AppStoreでは正しく動作するかどうかのチェックをしてくれているはずなのですが、今回は日本語版のみで発生するバグであったため、チェックを素通りしてしまったようです。<br/><br/></p>
<p>ご報告頂いたAppStoreレビュアーの方、ありがとうございました！<br/><br/></p>
<p>ただ今更新申請中ですので、承認された暁には是非ともアップデートして頂き、強いロボットと対戦して下さい！</p>
<p>追記(2010/10/13)：<br />
AppStoreヒマなのか、昨日提出したのに既に「In Review」になってます。</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/%e3%82%a2%e3%83%97%e3%83%aa%e6%9b%b4%e6%96%b0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBを使わない開発</title>
		<link>http://www.bridgemw.co.jp/ib%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e9%96%8b%e7%99%ba.html</link>
		<comments>http://www.bridgemw.co.jp/ib%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e9%96%8b%e7%99%ba.html#comments</comments>
		<pubDate>Mon, 11 Oct 2010 18:20:05 +0000</pubDate>
		<dc:creator>falcon</dc:creator>
				<category><![CDATA[iPhone/iPad開発]]></category>
		<category><![CDATA[技術情報]]></category>
		<category><![CDATA[IBOutlet]]></category>
		<category><![CDATA[Interface Builder]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://www.bridgemw.co.jp/?p=317</guid>
		<description><![CDATA[統合開発環境になじめず、viでコードを書かないと気持ちが乗らないロートルです。iPhone/iPadのアプリケーション開発ですらviを使ってコードを書いています。UI部分のコーディングにはインターフェースビルダーを使わな [...]]]></description>
			<content:encoded><![CDATA[
<p>統合開発環境になじめず、<a href="http://ja.wikipedia.org/wiki/Vi">vi</a>でコードを書かないと気持ちが乗らないロートルです。iPhone/iPadのアプリケーション開発ですらviを使ってコードを書いています。UI部分のコーディングにはインターフェースビルダーを使わないといけないものだとばかり思っていましたが、インターフェースビルダーを全く使わないで開発できることが分って、ほとんどの開発がShell+viでできるようになりました。同士のためにその方法をまとめておきます。</p>
<ol>
<li>プロジェクト新規作成<br />
ここは仕方ないので、XCodeを使って普通にプロジェクトを新規作成します。<br />
プロジェクト名はSampleとしましょう。</li>
<li><strong>main.mの修正(ここ忘れやすい)</strong><br />
元のコード<br />
int retVal = UIApplicationMain(argc, argv, nil, nil);</p>
<p>変更後のコード<br />
int retVal = UIApplicationMain(argc, argv, nil, @&#8221;SampleAppDelegate&#8221;);</p>
<p>これをしないといくらコードをいじっても画面が更新されずに途方にくれることに。</li>
<li>info.plistの編集<br />
Keyが[Main nib file base name]のエントリを削除します。</li>
<li>SampleAppDelegate.mの修正
<pre>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 全画面サイズでウィンドウを作成します
    CGRect frameForWindow = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc]initWithFrame:frameForWindow];

    // ここで必要な処理をします。
    // ビューコントローラーの作成やらなんやら。。。

    // ウィンドウを表示します。
    [window makeKeyAndVisible];
}
</pre>
</li>
<li>IBOutletを削除<br />
全ソース(*.m,*.h)からIBOutletを削除します。</li>
</ol>
<p>これでIBとさよならできました！</p>
<p>後は自分で座標も色も何もかもゴリゴリとソースに書いていきます。万人にお勧め出来る方法ではないかもしれませんが、<br />
インターフェースビルダーがらみのトラブルにうんざりした経験のある方は、IB無し開発を試してみてはいかがでしょうか？</p>

]]></content:encoded>
			<wfw:commentRss>http://www.bridgemw.co.jp/ib%e3%82%92%e4%bd%bf%e3%82%8f%e3%81%aa%e3%81%84%e9%96%8b%e7%99%ba.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.bridgemw.co.jp/feed ) in 0.82308 seconds, on Feb 7th, 2012 at 4:11 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 7th, 2012 at 5:11 am UTC -->
