Hatena::Groupiphone-dev

3ヶ月でiPhoneアプリを1本作る日記 RSSフィード

参考になった記事があれば☆をぽちっとしていただけると

2009-12-18

[][]アニメーションの処理方法は3種類ある 10:07 はてなブックマーク - アニメーションの処理方法は3種類ある - 3ヶ月でiPhoneアプリを1本作る日記

  1. UIViewで表示しているものを直接動かすもの
  2. Core Animationを使い「レイヤ」を処理するもの
  3. トランジション」を用いるもの

簡単さ手軽さの順で言えば、3>1>2かな。本格的にやるなら2。


アニメーションの処理については、オライリー本にはあまり書かれていなくて、「iPhone SDK プログラミング大全」の書籍にけっこう書かれていました。

[]UIView Animation 22:52 はてなブックマーク - UIView Animation - 3ヶ月でiPhoneアプリを1本作る日記

上で紹介した方法の1番目の方法。

UIView のアニメーション機能で簡単に使えます。

こんな感じです。

UIImageView* _imageView;

- (void)loadView {
	[super loadView];

	//イメージビュー生成
	_imageView=[[UIImageView alloc] init];
	UIImage* image=[UIImage imageNamed:@"image.jpg"];
	[_imageView setImage:image];
	[_imageView setFrame:CGRectMake(0,0,image.size.width,image.size.height)];
	[self.view addSubview:_imageView];
	[self testAnimetion];
}
- (void) testAnimetion {
	//アニメーションの開始
	[UIView beginAnimations:@"testAnimation" context:NULL];
	[UIView setAnimationDuration:0.1f];  // 時間
	[UIView setAnimationCurve:UIViewAnimationCurveLinear]; // 加速パターン
	[UIView setAnimationDelegate:self];    // デリゲート
	[UIView setAnimationRepeatAutoreverses:TRUE];	// リバース動作
	[UIView setAnimationRepeatCount:999];  // 繰り返し回数
	[UIView setAnimationDidStopSelector:@selector(animationDidStop:)];
	
	//イメージの移動
	CGRect frame=_imageView.frame;
	frame.origin.x=50;  // xが 0〜50 まで移動
	_imageView.frame=frame;
	_imageView.alpha=0; // 透明度を0に

	//アニメーションの終了
	[UIView commitAnimations];
}

//アニメーション完了イベント
- (void)animationDidStop:(NSString*)animationID finished:(BOOL)finished context:(void*)duration {
    NSLog(@"アニメーション完了");
}

beginAnimations から、commitAnimations までの間で、アニメーションの動作を記述します。

繰り返しの設定やリバース動作も設定できで、簡単ですね。


ここを参考にさせていただきました。

http://www.saturn.dti.ne.jp/~npaka/iphone/ViewAnimeEx/index.html

no title

2009-12-16

[]UISlider:スライダーコントロール 21:40 はてなブックマーク - UISlider:スライダーコントロール - 3ヶ月でiPhoneアプリを1本作る日記

簡単に使うサンプルはこんな感じ。

UISlider *slider;

- (void) makeSlider() {
	slider = [[UISlider alloc] initWithFrame:CGRectMake(20.0,20.0,200.0,0.0)];
	slider.minimumValue = 0.0;
	slider.maximumValue = 100.0;
	slider.value = 50.0; // initial
	
	[slider setShowValue:YES]; // for debug
	[slider addTarget:self action:@selector(updateSlider:)
			forControlEvents:UIControlEventValueChanged];
	[self.view addSubview:slider];
}

- (void) updateSlider:(UISlider *)aSlider {
	NSLog(@"value=%f", aSlider.value);
}

f:id:sohei:20091216214458p:image

実行画面

スライドしたときにupdateSliderが実行される(され続ける)。

デフォルトは、0.0〜1.0の範囲。valueでデフォルト値を設定する。

setShowValueメソッドはvalue値を横に表示してくれるけど、非公開APIみたい。

2009-12-15

[]アプリ起動時のスプラッシュ画面表示 11:08 はてなブックマーク - アプリ起動時のスプラッシュ画面表示 - 3ヶ月でiPhoneアプリを1本作る日記

あ、やっぱり簡単なやり方あったんだ…。

Resources ディレクトリに Default.png というファイル名で入れておくだけでいいみたい。

[iPhone 開発メモ] アプリ起動時のスプラッシュ画像とアイコンを設定する方法 | Sun Limited Mt.

2009-12-13

[]タイマー(NSTimer)を使う 22:30 はてなブックマーク - タイマー(NSTimer)を使う - 3ヶ月でiPhoneアプリを1本作る日記

何秒後に実行とか、何秒おきに実行とかやるとき。

こんな感じ。

NSTimer* timer;

- (void) hogeTimer {
timer = [NSTimer 
 scheduledTimerWithTimeInterval:0.5
 target: self 
 selector:@selector(hogeHoge:) 
 userInfo:nil 
 repeats:YES];
}

- (void) hogeHoge:(CFRunLoopTimerRef *)timer {
    NSLog(@"0.5秒おきに実行されます");
}

- (void) startHogeHoge {
    [self hogeTimer]; // timerをスタート
}

- (void) stopHogeHoge {
    [timer invalidate]; // timerをストップ
}

[]画像を表示するのが大変なら、Viewの背景に画像をセットしちゃうのが簡単かもしれない 22:34 はてなブックマーク - 画像を表示するのが大変なら、Viewの背景に画像をセットしちゃうのが簡単かもしれない - 3ヶ月でiPhoneアプリを1本作る日記

画像を表示するのは大変だ…とかって話もあるけど、Viewの背景に画像をセットしちゃう!ってのが簡単かもしれない。

UIImage *mainImage = [UIImage imageNamed:@"image.jpg"];
self.view.backgroundColor=[UIColor colorWithPatternImage:mainImage];

[]ショートカットキー 15:54 はてなブックマーク - ショートカットキー - 3ヶ月でiPhoneアプリを1本作る日記

Xcodeのよく使うショートカットキー - griffin-stewieの日記

俺も最近知ったけど、シンボル選択してダブルクリックは必須で知っておくべき。

他、インデントのやり方とか。

ショートカットキーは、知ってると知ってないとだとだいぶ違いが出てくるので覚えておくべきですね。

[]プロジェクト名を変更する! 19:07 はてなブックマーク - プロジェクト名を変更する! - 3ヶ月でiPhoneアプリを1本作る日記

Xoodeで適当な名前でプロジェクトを作ったはいいけど、出来上がってからそれに合うプロジェクト名に変更したいという場合、ありますよね。

結構大変ですが、やればなんとかできる。

この辺を参考に…。

setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key

こんなエラーが出た場合は、xibファイルの記述を確認しよう。

[]CodeSign error: code signing is required for product type 'Application' in SDK 'Device 21:25 はてなブックマーク - CodeSign error: code signing is required for product type 'Application' in SDK 'Device - 3ヶ月でiPhoneアプリを1本作る日記

MacBookで作ったプロジェクトをiMacの方で開き、実機で動かそうとするとこんなエラー。

CodeSign error: code signing is required for product type 'Application' in SDK 'Device - iPhone OS 3.1.2'

この場合、以下の点を確認してみよう。

  • 使っているSDKのバージョンが3.1.2であることを確認。
  • プロジェクトの設定で「コード署名ID」が Device - iPhone OS 3.1.2 になっていることを確認。

f:id:sohei:20091216220436p:image:w300

[]iPhone Developer Program の登録と証明書のインストールとか 22:22 はてなブックマーク - iPhone Developer Program の登録と証明書のインストールとか - 3ヶ月でiPhoneアプリを1本作る日記

iPhone Developer Programの登録自体はこの前やったので、証明書のインストールとかをやった。

これがまた大変で…。2時間くらいかかったかな。

この辺を参考にした。

2009-11-26

[]ビルドした時に「Code Sign error:Provisioning profile…」というエラー 08:34 はてなブックマーク - ビルドした時に「Code Sign error:Provisioning profile…」というエラー - 3ヶ月でiPhoneアプリを1本作る日記

ビルドした時プロビジョニングファイルを見つけられない場合

Code Sign error:Provisioning profile 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' can't found

プロジェクトを右クリック→情報を見る→ビルド

「コード署名」欄のプロファイルを確認する。

2009-10-17

[]componentsJoinedByString 16:24 はてなブックマーク - componentsJoinedByString - 3ヶ月でiPhoneアプリを1本作る日記

 NSArray* data;
 data = [NSArray arrayWithObjects:@"iPhone",@"iMac",nil];
 NSLog([data componentsJoinedByString:@","]);

指定文字で連結させたNSString型を返す。

配列の要素は全て文字列である必要がある。

NSArray:componentsJoinedByString:

[][]int型→NSString型 17:05 はてなブックマーク - int型→NSString型 - 3ヶ月でiPhoneアプリを1本作る日記

NSNumberにいろんなデータ型を扱うメソッドが用意されている。

その中の numberWithUnsignedInt で初期化して、stringValue メソッドでNSStringにできる。(荻原本pp.220)

label1.text = [[NSNumber numberWithUnsignedInt:i] stringValue];

id:kimadaさんありがとうございました。

[][]stringWithContentsOfFileの挙動 21:58 はてなブックマーク - stringWithContentsOfFileの挙動 - 3ヶ月でiPhoneアプリを1本作る日記

NSString* path = [[NSBundle mainBundle] pathForResource:@javascript" ofType:@"js"];
NSString* js = [NSString stringWithContentsOfFile:path];

ということをやってjsファイルを読み込みたかったんだけど、なぜかnullで読み込めていない。

試しにファイル名の拡張子をtxtに変えたらできた。

ファイルの拡張子に制限があったりするのかなぁ…。

[]実機ビルド時に「A signed resource has been added, modified, or deleted.」と出た場合 23:04 はてなブックマーク - 実機ビルド時に「A signed resource has been added, modified, or deleted.」と出た場合 - 3ヶ月でiPhoneアプリを1本作る日記

Xcodeで、ビルド→クリーニング をやる。

それから「ビルドと実行」をすればOK。

[]今日の成果 23:09 はてなブックマーク - 今日の成果 - 3ヶ月でiPhoneアプリを1本作る日記

f:id:sohei:20091018101945j:image

GREE専用ブラウザなるものを作ってしまった。

なんてことはない。UIWebViewで表示してからjavascriptを実行させてごにょごにょしてるだけ。

horigoodhorigood2009/10/17 17:28intをNSStringにするとき...私は下記のメソッドを使っています。
int i = 0;
NSString * str = [NSString stringWithFormat:@"%d",i];
ご参考まで。

soheisohei2009/10/17 17:33ありがとうございます。私も最初その方法でやっていたのですが、id:kimadaさんから以下コメントをいただきました。
http://iphone-dev.g.hatena.ne.jp/sohei/20090917#c1253410876

horigoodhorigood2009/10/17 18:10ああ、なるほど。
stringWithFormatだと、何か問題があるのでしょうか?
メソッドが1つですむ方が良いような気がしますが...。

soheisohei2009/10/17 23:07詳しくは調べていませんが、恐らくNSStringで文字列を生成する方がコストがかかる…ということではないでしょうか。

kimadakimada2009/10/20 16:17中途半端なコメントで、混乱させてしまいすみませんでした。
単独の値を変換するときには、自分ではNSNumberを使う方がしっくり来るのですが、それは人によって違うかもしれません。どちらがいいのかというのは、一概に決められないと思います。

2009-09-29

[]MacBookProゲットしました! 23:46 はてなブックマーク - MacBookProゲットしました! - 3ヶ月でiPhoneアプリを1本作る日記

13inchi/4GB memory/500GB HDDです!

f:id:sohei:20090929234445j:image:h250 f:id:sohei:20090929234458j:image:h250

設定したもの

インストールしたもの

とりあえず今日はここまで…


タッチパッドでの右クリックの方法がわからなかったけど、twitterで教えてもらったw 2本指でクリックだそうで…

2009-09-17

[][]NSUIntegerの値を表示したいとき 00:39 はてなブックマーク - NSUIntegerの値を表示したいとき - 3ヶ月でiPhoneアプリを1本作る日記

こーやんなきゃいけないのかなぁ。もっといい方法ある?

data1 = [NSArray arrayWithObjects:@"iPod",@"iPhone",@"mixi",@"hatena",nil];
label1.text = [NSString stringWithFormat:@"%d",(int)[data1 count]];

[][]ランダムな数値を表示 00:56 はてなブックマーク - ランダムな数値を表示 - 3ヶ月でiPhoneアプリを1本作る日記

今日の成果はこんなしょぼいのだけ・・・。。。

srand(time(NULL));
int indx = rand() % 100;
label1.text = [NSString stringWithFormat:@"%d", indx];

kimadakimada2009/09/20 10:41数値を単独でNSStringに変換する場合は、NSNumberを使うのがいいと思います。
NSUIntegerの場合は、以下のような感じです(内部処理的には、%uでフォーマットされるようです)。

label1.text = [[NSNumber numberWithUnsignedInt:[data1 count]] stringValue];

soheisohei2009/10/17 17:07遅くなりました。勉強になりました、ありがとうございます!

2009-09-15

[]メソッド作った 00:47 はてなブックマーク - メソッド作った - 3ヶ月でiPhoneアプリを1本作る日記

メソッド1つ作るのも一苦労…。慣れないわー。

こんなのができた。

f:id:sohei:20090916004559p:image:w200

[]UIAlertView:アラートの表示 00:50 はてなブックマーク - UIAlertView:アラートの表示 - 3ヶ月でiPhoneアプリを1本作る日記

alert出すやつはUIAlertViewってやつを使う。

[[[UIAlertView alloc] initWithTitle:@"おめでとう☆" message:@"あたり!" 
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil] show];

paellapaella2009/09/16 20:48はじめまして。

2日目にしてなんだかゲームっぽいものが出来ていますね。自分のことを考えるとすごい勢いです。
これからも、お互い頑張っていきましょう!

soheisohei2009/09/18 00:41ありがとうございます!まだまだ全然です…。
すごく細かくためになる内容書かれていますね!勉強させていただきます!

KrystalKrystal2011/09/16 02:12Yo, that's what's up turfthully.

jahqywjahqyw2011/09/16 16:52RBDbLx <a href="http://qjyeiusjscyg.com/">qjyeiusjscyg</a>

fowbgvufzbfowbgvufzb2011/09/17 01:09iQMJFG , [url=http://syrgytjaysxn.com/]syrgytjaysxn[/url], [link=http://mtktvyttxsed.com/]mtktvyttxsed[/link], http://vejyjqejrtgg.com/

mjykogmjykog2011/09/17 18:49EDzito <a href="http://gygtzrsaenyb.com/">gygtzrsaenyb</a>

xmivgznkxmivgznk2011/09/19 19:55yzY9oO , [url=http://icovngsfouhz.com/]icovngsfouhz[/url], [link=http://zjsbxxtjqkum.com/]zjsbxxtjqkum[/link], http://cqctgbqbxths.com/

2009-09-14

sohei20090914

[]今日から始めます 01:21 はてなブックマーク - 今日から始めます - 3ヶ月でiPhoneアプリを1本作る日記

ここで勉強の記録つけていきます。

ほぼ初心者で、本読み始めたのも今月くらいから。

目標は、12月末までに1本アプリを作ること!!

がんばります。どうぞよろしくお願いします。

[]オライリー本買った 21:05 はてなブックマーク - オライリー本買った - 3ヶ月でiPhoneアプリを1本作る日記

iPhone SDKプログラミング大全(asin:4048676067)もだいたい目を通したので、次にこの本を買った。

ほんとはもっと実際に書いてやりたいんだけど、なかなか時間がないので通勤中の時間でひたすら読むことにする。

以前から気になっててやりたいとか思ってたけど実際あまりやってなかったiPhoneアプリの開発を、これから本格的にやり始めることにしました。

[][]UITextField 00:56 はてなブックマーク - UITextField - 3ヶ月でiPhoneアプリを1本作る日記

今日はUITextFieldの使い方をいろいろ試してみた。

とりあえず、UIButtonから文字をセットさせるっぽいところができた。

f:id:sohei:20090915212115p:image:w200

http://www.saturn.dti.ne.jp/~npaka/iphone/TextFieldEx/index.html

http://aosicode.blog94.fc2.com/blog-category-8.html

SeasonsSeasons2009/09/15 21:06おお^^
頑張って下さい。早速ブログを購読登録させてもらいました。

soheisohei2009/09/15 21:23どうもありがとうございます!!ブログ更新の方もマメにがんばります^^;