<?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>アストロデオブログ &#187; iPhone</title>
	<atom:link href="http://astrodeo.com/blog/archives/category/iphone/feed" rel="self" type="application/rss+xml" />
	<link>http://astrodeo.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 11 Jul 2011 01:38:11 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>iPhone4でも画像をキレイに表示する方法</title>
		<link>http://astrodeo.com/blog/archives/1143</link>
		<comments>http://astrodeo.com/blog/archives/1143#comments</comments>
		<pubDate>Wed, 13 Oct 2010 10:33:18 +0000</pubDate>
		<dc:creator>hayachi</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[未分類]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1143</guid>
		<description><![CDATA[iPhoneとiPhone4では解像度が違うらしい、iPhone4では画像を２倍の解像度で表示されてしまい折角のデザインが台無し(・ω・｀) そんな時は画像をあらかじめ２倍の解像度で切り抜き今度はiPhoneでおっきく表示されないようにcssで大きさを指定してあげればできあがり＾＾ 背景画像の場合は .sumple{ background: url(./image/bg_image.png) repeat 0 0; -webkit-background-size: 91px 84px; } で、たぶんできるはずです iPhon4ってちょっと面倒くさい　っ(・ω・｀)]]></description>
			<content:encoded><![CDATA[<p>iPhoneとiPhone4では解像度が違うらしい、iPhone4では画像を２倍の解像度で表示されてしまい折角のデザインが台無し(・ω・｀)<br />
そんな時は画像をあらかじめ２倍の解像度で切り抜き今度はiPhoneでおっきく表示されないようにcssで大きさを指定してあげればできあがり＾＾</p>
<p>背景画像の場合は</p>
<textarea name="code" class="php:nocontrols" cols="30" rows="5">
.sumple{
     background: url(./image/bg_image.png) repeat 0 0;	    
      -webkit-background-size: 91px 84px;
}
</textarea>
<p></p>
<p>で、たぶんできるはずです</br><br />
iPhon4ってちょっと面倒くさい　っ(・ω・｀)</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1143/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneサイト制作で参考したサイト</title>
		<link>http://astrodeo.com/blog/archives/1050</link>
		<comments>http://astrodeo.com/blog/archives/1050#comments</comments>
		<pubDate>Tue, 14 Sep 2010 11:13:12 +0000</pubDate>
		<dc:creator>hayachi</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[デザイン]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=1050</guid>
		<description><![CDATA[初めてiPhoneサイトの制作することになりました。 ゴウさんのiPodタッチをいじりながらこちらのサイトを参考にしました。 サイト iPhoneデザインアーカイブ iPhone &#038; Web Design Gallery 素材 Designers Toolbox iPhone GUI iPhone GUI PSD Version 4 デザインしていてますますiphone欲しくなりました。 ウチのsoftbankのケータイまだ１年しかたってないしないな　っ(・ω・｀) 持つのはまだ先になりそうです。]]></description>
			<content:encoded><![CDATA[<p>初めてiPhoneサイトの制作することになりました。<br />
ゴウさんのiPodタッチをいじりながらこちらのサイトを参考にしました。</p>
<h4>サイト</h4>
<ul>
<li><a href="http://iphonedesignarchive.jp/"target="_blank">iPhoneデザインアーカイブ</a></li>
<li><a href="http://www.cssiphone.com/gallery/page/4"target="_blank">iPhone &#038; Web Design Gallery</a></li>
</ul>
<h4>素材</h4>
<ul>
<li><a href="http://www.designerstoolbox.com/designresources/iphone/"target="_blank">Designers Toolbox iPhone GUI</a></li>
<li><a href="http://www.teehanlax.com/blog/2010/06/14/iphone-gui-psd-v4/"target="_blank">iPhone GUI PSD Version 4</a></li>
</ul>
<p>デザインしていてますますiphone欲しくなりました。<br />
ウチのsoftbankのケータイまだ１年しかたってないしないな　っ(・ω・｀)<br />
持つのはまだ先になりそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/1050/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小さな事</title>
		<link>http://astrodeo.com/blog/archives/582</link>
		<comments>http://astrodeo.com/blog/archives/582#comments</comments>
		<pubDate>Fri, 03 Sep 2010 11:32:30 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=582</guid>
		<description><![CDATA[iPhoneアプリの開発を始めて間もない頃に、シミュレータの傾け方とピンチイン・アウトのやり方がわからないって状況になりました。（調べてすぐに分かったのですが・・・） 傾けるには「command」+「→」or 「command」+「←」 ピンチイン・ピンチアウトは「alt」+「ドラッグ」 どんどん内容が薄っぺらくなってる気がしますが、手抜きしてる訳では・・・ありま・・・せん。]]></description>
			<content:encoded><![CDATA[<p>iPhoneアプリの開発を始めて間もない頃に、シミュレータの傾け方とピンチイン・アウトのやり方がわからないって状況になりました。（調べてすぐに分かったのですが・・・）</p>
<p>傾けるには「command」+「→」or 「command」+「←」<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/11.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/11-600x322.png" alt="" title="1" width="600" height="322" class="alignnone size-large wp-image-583" /></a></p>
<p>ピンチイン・ピンチアウトは「alt」+「ドラッグ」</p>
<p>どんどん内容が薄っぺらくなってる気がしますが、手抜きしてる訳では・・・ありま・・・せん。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/582/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>project.pbxprojの怪</title>
		<link>http://astrodeo.com/blog/archives/598</link>
		<comments>http://astrodeo.com/blog/archives/598#comments</comments>
		<pubDate>Tue, 11 May 2010 07:19:33 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=598</guid>
		<description><![CDATA[iPhoneアプリの開発をしている際に、今までうまく行っていたのに、何故か急に実機登録ができなくなる(プロビジョニングに失敗する)事がある。 僕の場合は、大体「project.pbxproj」を疑う。 何故なら過去に痛い目を見たから。。 僕がハマった問題は、何故だか「project.pbxproj」の「PROVISIONING_PROFILE」や「CODE_SIGN_IDENTITY」に古い情報が残ったままになっていて、code sign errorが出ていた。 対除方法は「project.pbxproj」のバックアップを取り、中に書かれている「PROVISIONING_PROFILE」と「CODE_SIGN_IDENTITY」を行ごと消して再コンパイルしている。 「project.pbxproj」の編集方法は、Finderから作業中の「.xcodeproj」で右クリックし、パッケージの内容を表示を選択 すると、中に対象となる「project.pbxproj」ファイルがある。 慣れていれば簡単に見つけられるのかもしれないが、一番始めは何が起こってるか分からず苦戦した。 別の問題でつい最近、コンパイルは通るし、ソースも合っているはずなのに画面遷移すると意図しない動きが発生していた。 調べてみたら、Begin PBXGroup section の「children」の中に何故だかxibが紛れ込んでいた・・・ 正しい場所に書き直してあげたらうまく行くという。 なんでこうなったのか、原因が分からないのは非常に怖いが、これでなんとか対処できた。]]></description>
			<content:encoded><![CDATA[<p>iPhoneアプリの開発をしている際に、今までうまく行っていたのに、何故か急に実機登録ができなくなる(プロビジョニングに失敗する)事がある。</p>
<p>僕の場合は、大体「project.pbxproj」を疑う。</p>
<p>何故なら過去に痛い目を見たから。。</p>
<p>僕がハマった問題は、何故だか「project.pbxproj」の「PROVISIONING_PROFILE」や「CODE_SIGN_IDENTITY」に古い情報が残ったままになっていて、code sign errorが出ていた。</p>
<p>対除方法は「project.pbxproj」のバックアップを取り、中に書かれている「PROVISIONING_PROFILE」と「CODE_SIGN_IDENTITY」を行ごと消して再コンパイルしている。</p>
<p>「project.pbxproj」の編集方法は、Finderから作業中の「.xcodeproj」で右クリックし、パッケージの内容を表示を選択<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/05/me1.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/05/me1.png" alt="" title="me" width="354" height="414" class="alignnone size-full wp-image-603" /></a></p>
<p>すると、中に対象となる「project.pbxproj」ファイルがある。</p>
<p>慣れていれば簡単に見つけられるのかもしれないが、一番始めは何が起こってるか分からず苦戦した。</p>
<p>別の問題でつい最近、コンパイルは通るし、ソースも合っているはずなのに画面遷移すると意図しない動きが発生していた。<br />
調べてみたら、Begin PBXGroup section の「children」の中に何故だかxibが紛れ込んでいた・・・<br />
正しい場所に書き直してあげたらうまく行くという。</p>
<p>なんでこうなったのか、原因が分からないのは非常に怖いが、これでなんとか対処できた。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/598/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NSXMLParserでハマった事</title>
		<link>http://astrodeo.com/blog/archives/594</link>
		<comments>http://astrodeo.com/blog/archives/594#comments</comments>
		<pubDate>Mon, 10 May 2010 06:58:27 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=594</guid>
		<description><![CDATA[NSXMLParserを使用してXMLの解析をする部分で、使用方法を勘違いしていてハマったのでメモ。 下記メソッドで要素開始タグを検出し、 -(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict { 下記メソッドでタグ内の要素を検出して、 -(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string { 下記メソッドで要素終了タグを検出していた。 -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { この際に、2番目のメソッド内にて検出した値をそのまま配列に入れて使おうとしたところ、 どうも「1980円」等の文字が、配列の1つ目の中に「1980」、2つ目の中に「円」と入ってしまって、うまく行かなかった。 調べてみたところ、どうやら2番目のメソッドが呼ばれた時点では、引数のstringに全て入っていないという。 と言う訳で、2番目のメソッド内にてNSMutableStringに結合していき、3番目のメソッドにて要素終了タグを検知した時に配列にしまうようにしたところうまく行くようになった。 確かに、そうでないと要素終了タグを検出する意味もあまりなかったような気がしてきます。 (正確には、しっかり検知してなかったので配列の1つ目の中に「1980」、2つ目の中に「円」と入っていました。) これで、次回からはこの問題でハマる事もなさそうです。]]></description>
			<content:encoded><![CDATA[<p>NSXMLParserを使用してXMLの解析をする部分で、使用方法を勘違いしていてハマったのでメモ。</p>
<p>下記メソッドで要素開始タグを検出し、</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
-(void) parser:(NSXMLParser *) parser 
didStartElement:(NSString *) elementName 
  namespaceURI:(NSString *) namespaceURI 
 qualifiedName:(NSString *) qName
	attributes:(NSDictionary *) attributeDict {
</textarea>
<p>下記メソッドでタグ内の要素を検出して、</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string
{
</textarea>
<p>下記メソッドで要素終了タグを検出していた。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
-(void)parser:(NSXMLParser *)parser 
didEndElement:(NSString *)elementName 
 namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qName
{
</textarea>
<p>この際に、2番目のメソッド内にて検出した値をそのまま配列に入れて使おうとしたところ、<br />
どうも「1980円」等の文字が、配列の1つ目の中に「1980」、2つ目の中に「円」と入ってしまって、うまく行かなかった。</p>
<p>調べてみたところ、どうやら2番目のメソッドが呼ばれた時点では、引数のstringに全て入っていないという。<br />
と言う訳で、2番目のメソッド内にてNSMutableStringに結合していき、3番目のメソッドにて要素終了タグを検知した時に配列にしまうようにしたところうまく行くようになった。</p>
<p>確かに、そうでないと要素終了タグを検出する意味もあまりなかったような気がしてきます。<br />
(正確には、しっかり検知してなかったので配列の1つ目の中に「1980」、2つ目の中に「円」と入っていました。)</p>
<p>これで、次回からはこの問題でハマる事もなさそうです。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/594/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小さな事</title>
		<link>http://astrodeo.com/blog/archives/585</link>
		<comments>http://astrodeo.com/blog/archives/585#comments</comments>
		<pubDate>Wed, 28 Apr 2010 11:25:34 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=585</guid>
		<description><![CDATA[iPhoneアプリの開発を始めて間もない頃に、シミュレータの傾け方とピンチイン・アウトのやり方がわからないって状況になりました。（調べてすぐに分かったのですが・・・） 傾けるには「command」+「→」or 「command」+「←」 ピンチイン・ピンチアウトは「alt」+「ドラッグ」 どんどん内容が薄っぺらくなってる気がしますが、手抜きしてる訳では・・・ありま・・・せん。]]></description>
			<content:encoded><![CDATA[<p>iPhoneアプリの開発を始めて間もない頃に、シミュレータの傾け方とピンチイン・アウトのやり方がわからないって状況になりました。（調べてすぐに分かったのですが・・・）</p>
<p>傾けるには「command」+「→」or 「command」+「←」<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/11.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/11-600x322.png" alt="" title="1" width="600" height="322" class="alignnone size-large wp-image-583" /></a></p>
<p>ピンチイン・ピンチアウトは「alt」+「ドラッグ」</p>
<p>どんどん内容が薄っぺらくなってる気がしますが、手抜きしてる訳では・・・ありま・・・せん。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/585/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tableViewでiPhoneアプリ</title>
		<link>http://astrodeo.com/blog/archives/576</link>
		<comments>http://astrodeo.com/blog/archives/576#comments</comments>
		<pubDate>Tue, 27 Apr 2010 11:38:00 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=576</guid>
		<description><![CDATA[今回は、現在開発で使用している、テーブルビューに関してを書きたいと思います。(自分への勉強も兼ねて・・・) まずは、Navigation-based テンプレートを選択します。 そして、RootViewController.hとRootViewController.mに以下を記述します。 説明に関してはコメント欄に記載しました。 【RootViewController.h】 @interface RootViewController : UITableViewController { NSArray *nameList; NSArray *dataList; } @property (nonatomic, retain) NSArray *nameList; @property (nonatomic, retain) NSArray *dataList; @end 【RootViewController.m】 #import "RootViewController.h" @implementation RootViewController @synthesize nameList; @synthesize dataList; - (void)viewDidLoad { [super viewDidLoad]; // タイトル設定 self.title = @"member"; // 名前を配列に設定 self.nameList = [NSArray arrayWithObjects:@"ゴウ", @"はやち", @"まっちー", @"なる", [...]]]></description>
			<content:encoded><![CDATA[<p>今回は、現在開発で使用している、テーブルビューに関してを書きたいと思います。(自分への勉強も兼ねて・・・)</p>
<p>まずは、Navigation-based テンプレートを選択します。<br />
そして、RootViewController.hとRootViewController.mに以下を記述します。<br />
説明に関してはコメント欄に記載しました。</p>
<p>【RootViewController.h】</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
@interface RootViewController : UITableViewController {
	NSArray *nameList;
	NSArray *dataList;
}
@property (nonatomic, retain) NSArray *nameList;
@property (nonatomic, retain) NSArray *dataList;

@end
</textarea>
<p>【RootViewController.m】</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
#import "RootViewController.h"


@implementation RootViewController

@synthesize nameList;
@synthesize dataList;


- (void)viewDidLoad {
    [super viewDidLoad];
	
	// タイトル設定
	self.title = @"member";
	// 名前を配列に設定
	self.nameList = [NSArray arrayWithObjects:@"ゴウ", @"はやち", @"まっちー", @"なる", @"そや", nil];
	// 画像名を配列に設定
	self.dataList = [NSArray arrayWithObjects:@"go.jpg", @"hayachi.jpg", @"macchi.jpg", @"naru.jpg", @"zuya.jpg", nil];

}


- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
	
	// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
	// Release anything that can be recreated in viewDidLoad or on demand.
	// e.g. self.myOutlet = nil;
}


#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // 表示セルの数を設定(配列の要素数だけセルを表示する)
	return [self.nameList count];
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    
	// Configure the cell.
	
	// 画像をセルに設定
	cell.imageView.image = [UIImage imageNamed:[self.dataList objectAtIndex:indexPath.row]];
	// 名前をセルに設定
	cell.textLabel.text = [self.nameList objectAtIndex:indexPath.row];
	

    return cell;
}


- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
	// セルの高さ設定
	return 150.0;

}

- (void)dealloc {
    [super dealloc];
}


@end
</textarea>
<p>後は、画像をRootViewController.mに記述した名称の通りに設定してResourceフォルダにドラッグするだけです。</p>
<p><a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/sc.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/sc-600x398.png" alt="" title="sc" width="600" height="398" class="alignnone size-large wp-image-577" /></a></p>
<p>それでは、早速起動してみます。</p>
<table>
<tr>
<th>
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/1.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/1-300x557.png" alt="" title="1" width="300" height="557" class="alignnone size-medium wp-image-578" /></a>
</th>
<th>
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/2.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/2-300x557.png" alt="" title="2" width="300" height="557" class="alignnone size-medium wp-image-579" /></a>
</th>
</tr>
</table>
<p>実行してみると分かるのですが(画像だとわかりにくいのですが。。)、ソースコードにはスクロールに関しての記述を行っていないのにできます。 さすがtableViewさんです。</p>
<p>今後、このプロジェクトをベースに機能を充実させていき、それをブログに書いていけたらなぁ。と、思います。<br />
(その為には更なる勉強と時間の確保が必要ですが・・・。)</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/576/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoneアプリ開発　three20を使う</title>
		<link>http://astrodeo.com/blog/archives/569</link>
		<comments>http://astrodeo.com/blog/archives/569#comments</comments>
		<pubDate>Mon, 26 Apr 2010 09:41:45 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=569</guid>
		<description><![CDATA[僕が初めて作ったアプリがフォトビューアのアプリでした。 そして、2番目に作ったアプリが、最初のアプリを改良して作った電子書籍ビューアのアプリでした。 これを作成する際に、どうしてもUIScrollViewにダブルタップによる拡大・縮小機能を実装する事ができず(元々、UIScrollViewにはダブルタップによるズームイン・アウトが実装されていない。)途方に暮れそうになっていました。 そんな時に発見したのがthree20というiPhone向けオープンソースライブラリでした。 この中にある「Phot Thumbnails」がWeb上の画像をiPhoneの「Photo Albums」のように表示するという動作を再現しています。 色々と調べてみると、使用するにあたって2点大きな問題点がある事が分かりました。 1.three20のコード内にUndocumented APIを含んでいるため、そのまま使用してもAppStoreに申請の際にRejectされる。 2.このプロジェクト自体もう動いていない為、問題があった際に自力でなんとかしなければならない。(ソースが複雑すぎて超難問)(正直、これを作成された方をリスペクトしています。) 上記の問題1つ目は、該当部分がリンクに載っていたので、該当部分を修正する事によって回避できそうです。 2点目の問題に関しては、もう覚悟を決めるしかありませんでした。 と言う事で、ここから修羅の道が始まりました。 まずはgithubよりthree20をダウンロードします。 そして、自分のプロジェクト内にthree20を取り込みます。 取り込む際の手順はここがとても参考になりました。 ソースの解析に何日もかかりました。 よくわからないエラーが多発しました。 頭が痛くなりました。 判断のミスに気がつきました。 もう、後には戻れないと思いました。 一人デスマーチが開催されました。 そして、時は流れ、ようやく完成しました。(残念ながら、ソースを公開する事ができないのですが・・・) 最終的には力ずくでねじ伏せた感じです。 その後、2週間程度の審査を経て、無事AppStoreに上がりました。(試験的に上げたため、現在は削除しています。) 振り返ってみると、iPhoneアプリ開発の初心者な僕には修羅の道でした。 ただ、この経験のおかげ？で、現在の開発は大分楽にできるようになりました。　何事も経験ですね。]]></description>
			<content:encoded><![CDATA[<p>僕が初めて作ったアプリがフォトビューアのアプリでした。<br />
そして、2番目に作ったアプリが、最初のアプリを改良して作った電子書籍ビューアのアプリでした。</p>
<p>これを作成する際に、どうしてもUIScrollViewにダブルタップによる拡大・縮小機能を実装する事ができず(元々、UIScrollViewにはダブルタップによるズームイン・アウトが実装されていない。)途方に暮れそうになっていました。</p>
<p>そんな時に発見したのがthree20というiPhone向けオープンソースライブラリでした。<br />
この中にある「Phot Thumbnails」がWeb上の画像をiPhoneの「Photo Albums」のように表示するという動作を再現しています。</p>
<p>色々と調べてみると、使用するにあたって2点大きな問題点がある事が分かりました。</p>
<p>1.three20のコード内にUndocumented APIを含んでいるため、そのまま使用してもAppStoreに申請の際にRejectされる。<br />
2.このプロジェクト自体もう動いていない為、問題があった際に自力でなんとかしなければならない。(ソースが複雑すぎて超難問)(正直、これを作成された方をリスペクトしています。)</p>
<p>上記の問題1つ目は、該当部分が<a href="http://iphone-dev.g.hatena.ne.jp/takuma104/20091106/1257516194" target="_blank">リンク</a>に載っていたので、該当部分を修正する事によって回避できそうです。</p>
<p>2点目の問題に関しては、もう覚悟を決めるしかありませんでした。</p>
<p>と言う事で、ここから修羅の道が始まりました。</p>
<p>まずは<a href="http://github.com/facebook/three20/" target="_blank">github</a>よりthree20をダウンロードします。</p>
<p>そして、自分のプロジェクト内にthree20を取り込みます。<br />
取り込む際の手順は<a href="http://iphone.longearth.net/2009/05/17/" target="_blank">ここ</a>がとても参考になりました。</p>
<ul>
<li>ソースの解析に何日もかかりました。</li>
<li>よくわからないエラーが多発しました。</li>
<li>頭が痛くなりました。</li>
<li>判断のミスに気がつきました。</li>
<li>もう、後には戻れないと思いました。</li>
<li>一人デスマーチが開催されました。</li>
</ul>
<p>そして、時は流れ、ようやく完成しました。(残念ながら、ソースを公開する事ができないのですが・・・)<br />
最終的には力ずくでねじ伏せた感じです。</p>
<p>その後、2週間程度の審査を経て、無事AppStoreに上がりました。(試験的に上げたため、現在は削除しています。)</p>
<p>振り返ってみると、iPhoneアプリ開発の初心者な僕には修羅の道でした。</p>
<p>ただ、この経験のおかげ？で、現在の開発は大分楽にできるようになりました。　何事も経験ですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/569/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>作成したアプリのアイコン変更など</title>
		<link>http://astrodeo.com/blog/archives/548</link>
		<comments>http://astrodeo.com/blog/archives/548#comments</comments>
		<pubDate>Fri, 23 Apr 2010 09:33:43 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=548</guid>
		<description><![CDATA[前回「Hello World」(正式名称：SuperToriyoshi)アプリを作成したのですが、 今回はそのアプリに対して、アイコン等色々と変更を加えてみます。 これを行うと開発に対するテンションがあがります。(僕だけかもしれませんが。) まず、アイコンにする画像を用意します。　サイズは縦57・横57の正方形のPNGで用意します。 用意した画像を、XCodeの「グループとファイル」ペインの「Resources」の下にドラッグ&#038;ドロップします。 次に、info.plist(プロパティリスト)を編集します。 「Resources」ディレクトリの下に、[プロジェクト名]-info.plistがあるので開きます。 その中にある「Icon file」の項目に、先ほど用意したアイコン名を設定します。（今回は「icon.png」） ついでに、アイコンの下に表示されるアプリ名も変更します。 同じくplist内にある「Bundle display name」に表示させたい名称を設定します。(今回は「社畜」と設定しました。　特に深い意味はありません。) ちなみに、ここでは注意が必要で、設定名称を全角6文字以内に設定しないと、表示される際に勝手に省略されてしまいます。 設定が完了したら、保存して実行してみます。 結果を見てみると、自動的に角が丸くなり、アイコンに光沢がつきます。 この光沢を設定したくない場合、info.plistに一行追加し、keyに「UIPrerenderedIcon」を追加しValueの項目にValue Type をBooleanに設定しチェックを入れると消せるそうです。 最後に、アプリ起動時のスプラッシュ画像を設定してみます。 これは何かというと、アプリ起動時に設定した画像が呼ばれるというものです。 今回のような内容のないプログラムに対してはあまり効果がないのですが、起動に時間のかかるアプリ等に設定する事によって、ユーザーのストレスを真っ暗な画面を見せるよりも緩和する効果が狙えるそうです。 設定方法は「Default.png」と命名した画像を「Resources」ディレクトリの下に配置する。(Resourcesディレクトリでなくとも可能) たったこれだけです。]]></description>
			<content:encoded><![CDATA[<p>前回「Hello World」(正式名称：SuperToriyoshi)アプリを作成したのですが、<br />
今回はそのアプリに対して、アイコン等色々と変更を加えてみます。</p>
<p>これを行うと開発に対するテンションがあがります。(僕だけかもしれませんが。)</p>
<p>まず、アイコンにする画像を用意します。　サイズは縦57・横57の正方形のPNGで用意します。</p>
<p>用意した画像を、XCodeの「グループとファイル」ペインの「Resources」の下にドラッグ&#038;ドロップします。<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/infoplistsetting.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/infoplistsetting-600x360.png" alt="" title="infoplistsetting" width="600" height="360" class="alignnone size-large wp-image-550" /></a></p>
<p>次に、info.plist(プロパティリスト)を編集します。<br />
「Resources」ディレクトリの下に、[プロジェクト名]-info.plistがあるので開きます。<br />
その中にある「Icon file」の項目に、先ほど用意したアイコン名を設定します。（今回は「icon.png」）</p>
<p>ついでに、アイコンの下に表示されるアプリ名も変更します。</p>
<p>同じくplist内にある「Bundle display name」に表示させたい名称を設定します。(今回は「社畜」と設定しました。　特に深い意味はありません。)<br />
ちなみに、ここでは注意が必要で、設定名称を全角6文字以内に設定しないと、表示される際に勝手に省略されてしまいます。<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/infoplist.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/infoplist-600x360.png" alt="" title="infoplist" width="600" height="360" class="alignnone size-large wp-image-549" /></a></p>
<p>設定が完了したら、保存して実行してみます。<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/iconsetting.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/iconsetting-300x557.png" alt="" title="iconsetting" width="300" height="557" class="alignnone size-medium wp-image-551" /></a></p>
<p>結果を見てみると、自動的に角が丸くなり、アイコンに光沢がつきます。</p>
<p>この光沢を設定したくない場合、info.plistに一行追加し、keyに「UIPrerenderedIcon」を追加しValueの項目にValue Type をBooleanに設定しチェックを入れると消せるそうです。</p>
<p>最後に、アプリ起動時のスプラッシュ画像を設定してみます。<br />
これは何かというと、アプリ起動時に設定した画像が呼ばれるというものです。<br />
今回のような内容のないプログラムに対してはあまり効果がないのですが、起動に時間のかかるアプリ等に設定する事によって、ユーザーのストレスを真っ暗な画面を見せるよりも緩和する効果が狙えるそうです。</p>
<p>設定方法は「Default.png」と命名した画像を「Resources」ディレクトリの下に配置する。(Resourcesディレクトリでなくとも可能)<br />
たったこれだけです。<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/splash.jpg"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/splash-300x578.jpg" alt="" title="splash" width="300" height="578" class="alignnone size-medium wp-image-552" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/548/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Worldから世界は始まる</title>
		<link>http://astrodeo.com/blog/archives/538</link>
		<comments>http://astrodeo.com/blog/archives/538#comments</comments>
		<pubDate>Thu, 22 Apr 2010 09:47:01 +0000</pubDate>
		<dc:creator>鳥よし</dc:creator>
				<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://astrodeo.com/blog/?p=538</guid>
		<description><![CDATA[昨日は、プロジェクト作成の際のテンプレート選びに触れました。 本日は新しい言語を始める際に、僕が100%行う通過儀式　「Hello world」出力を行おうと思います。 (弊社HPのトップページも「Hello World」ですし・・・) 初めてのプロジェクトなので仕様は簡単に、ボタンを押下したら「Hello World」という文字が出力されるというものにします。 まずはUIを実装します。 UIの実装には2つの方法があります。　一つはInterface Builderというツールを使用してGUIで画面を組み立てていく方法。 そしてもう一つはソースコードに直接記述していく方法。 僕の場合、どちらがやりやすいのかがわからない状態だったので、最初の2作品はソースコードに直接記述、現在開発中の3作品目はInterface Builderを使用しています。　 今回は、Interface Builderを使用してみたいと思います。 まず、テンプレートはwindow-based Applicationを選択します。(プロジェクト名は「SuperToriyoshi」としました。ふざけ過ぎですね。) Xcodeが立ち上がったら、まずは「MainWindow.xib」を開きます。(自動的にInterface Builderが起動します。) 上の画像のように、パーツをペタペタ配置していくイメージです。 (中央にラベルを配置し、hidden設定にしました。 下部にボタンを配置しました。) 画像の配置が終わったら、次はソースコードを記述します。 C言語は拡張子が「h」と「m」のファイルがペアになって使われるそうです。 拡張子が「h」のファイルはヘッダファイル、「m」のファイルがメソッドファイルと呼ばれます。 ヘッダファイルは、その機能の画面とメソッドファイルとの出入り口(インターフェース)と、使用する材料を記述する・・・と、言うイメージでいいのか・・・な。 メソッドファイルは、その機能の振る舞いを記述する部分になります。 テンプレート選択でwindow-based Applicationにした場合、自動でプロジェクト名+「AppDelegate」と言う名称で「h」と「m」の二つのファイルが作成されます。 早速、ヘッダーファイルに記述を始めてみます。 #import @interface SuperToriyoshiAppDelegate : NSObject { UIWindow *window; UILabel *label; UIButton *button; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UILabel *label; [...]]]></description>
			<content:encoded><![CDATA[<p>昨日は、プロジェクト作成の際のテンプレート選びに触れました。<br />
本日は新しい言語を始める際に、僕が100%行う通過儀式　「Hello world」出力を行おうと思います。<br />
(弊社HPのトップページも「Hello World」ですし・・・)</p>
<p>初めてのプロジェクトなので仕様は簡単に、ボタンを押下したら「Hello World」という文字が出力されるというものにします。</p>
<p>まずはUIを実装します。<br />
UIの実装には2つの方法があります。　一つはInterface Builderというツールを使用してGUIで画面を組み立てていく方法。<br />
そしてもう一つはソースコードに直接記述していく方法。</p>
<p>僕の場合、どちらがやりやすいのかがわからない状態だったので、最初の2作品はソースコードに直接記述、現在開発中の3作品目はInterface Builderを使用しています。　</p>
<p>今回は、Interface Builderを使用してみたいと思います。<br />
まず、テンプレートはwindow-based Applicationを選択します。(プロジェクト名は「SuperToriyoshi」としました。ふざけ過ぎですね。)</p>
<p>Xcodeが立ち上がったら、まずは「MainWindow.xib」を開きます。(自動的にInterface Builderが起動します。)</p>
<p><a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/InterfaceBuilder.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/InterfaceBuilder-600x375.png" alt="" title="InterfaceBuilder" width="600" height="375" class="alignnone size-large wp-image-539" /></a></p>
<p>上の画像のように、パーツをペタペタ配置していくイメージです。<br />
(中央にラベルを配置し、hidden設定にしました。 下部にボタンを配置しました。)</p>
<p>画像の配置が終わったら、次はソースコードを記述します。</p>
<p>C言語は拡張子が「h」と「m」のファイルがペアになって使われるそうです。<br />
拡張子が「h」のファイルはヘッダファイル、「m」のファイルがメソッドファイルと呼ばれます。</p>
<p>ヘッダファイルは、その機能の画面とメソッドファイルとの出入り口(インターフェース)と、使用する材料を記述する・・・と、言うイメージでいいのか・・・な。<br />
メソッドファイルは、その機能の振る舞いを記述する部分になります。</p>
<p>テンプレート選択でwindow-based Applicationにした場合、自動でプロジェクト名+「AppDelegate」と言う名称で「h」と「m」の二つのファイルが作成されます。</p>
<p>早速、ヘッダーファイルに記述を始めてみます。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
#import <UIKit/UIKit.h>

@interface SuperToriyoshiAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
	UILabel *label;
	UIButton *button;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UILabel *label;
@property (nonatomic, retain) IBOutlet UIButton *button;

-(IBAction)buttonPush;

@end
</textarea>
<p>何を記述したかをざっと説明すると、先ほどInterface Builderにより、一つのラベルとボタンを配置したので、それに対応する項目を記述と、ボタン押下をした時の実行メソッド名を記述しました。　ソースコードに「IBOutlet」と記述したのですが、これを宣言する事により、Interface Builderで作成したパーツと関連づける事ができます。</p>
<p>次にメソッドファイルの記述です。</p>
<textarea name="code" class="PHP:nocontrols" cols="30" rows="5">
#import "SuperToriyoshiAppDelegate.h"

@implementation SuperToriyoshiAppDelegate

@synthesize window;
@synthesize label;
@synthesize button;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window makeKeyAndVisible];
}

-(IBAction)buttonPush {
	
	// ラベルに「Hello World」文字列設定
	label.text = @"Hello World";
	
	// ラベルがhidden設定されている場合は解除
	if (label.hidden == YES) {
		[label setHidden:NO];
	}
	
}

- (void)dealloc {
    [window release];
	[button release];
	[label release];
    [super dealloc];
}

@end
</textarea>
<p>何を記述したのかというと、ただ単にボタンが押されたときの動きとして、空のラベルに「Hello World」という文字列を設定して、<br />
そのラベル部分がhidden状態（見えない状態）なら解除する。と、言うだけです。</p>
<p>最後に、Interface Builderに戻って、先ほど配置した部品とソースの関連づけを以下のイメージで行います。<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/connection.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/connection-600x375.png" alt="" title="connection" width="600" height="375" class="alignnone size-large wp-image-540" /></a></p>
<p>では、早速シミュレータで実行してみます。</p>
<p>【起動直後】<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/start.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/start-300x557.png" alt="" title="start" width="300" height="557" class="alignnone size-medium wp-image-541" /></a></p>
<p>【ボタン押下】<br />
<a href="http://astrodeo.com/blog/wp-content/uploads/2010/04/end.png"><img src="http://astrodeo.com/blog/wp-content/uploads/2010/04/end-300x557.png" alt="" title="end" width="300" height="557" class="alignnone size-medium wp-image-542" /></a></p>
<p>これで、Hello Worldという第一歩を踏み出せました。　ここから世界が広がります。</p>
]]></content:encoded>
			<wfw:commentRss>http://astrodeo.com/blog/archives/538/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

