유한 회사
![iOS Dev Bot | iPhoneアプリ開発者のための情報サイト](https://cdn-ak-scissors.b.st-hatena.com/image/square/c8c9f7d5af7fefc126132a33d7511471fdc8d751/height=288;version=1;width=512/http%3A%2F%2Fwww.iosdevbot.com%2Fimg%2Fiosdevbot-og.png)
iOS4と5では、アプリケーションの起動時や終了時に呼ばれるアプリケーションとビューコントローラーのライフサイクルメソッドが呼ばれる順序に若干違いがあります。 起動シーケンスは、例えばアプリに暗証番号を設定して、ロックされていた場合はアプリケーションの画面を出す前にロック解除の画面を出さなければならない場合などには、初回起動時、ホームボタンでバックグラウンドに入ったとき、バックグラウンドから復帰したとき、スリープボタンを押されたとき・・・などあらゆる場面を想定して非常に綿密に検討する必要がでてきます。 iOS5だけをサポートして、iOS4はサポートしないのであればとてもシンプルなので問題ないのですが、両方をサポートする場合は気をつけなければなりません。 アプリケーションライフサイクルについては詳しくはこちら。 ビューコントローラーのライフサイクルについてはこちら。 下の内容はiOS4は4.
URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)
超大ヒットした『漫画カメラ』、ほんとに漫画っぽくなって、動作も軽快、シェアも簡単で楽しいですよね。 ただ、ちらほらと「同じこと考えてた」「そういうの作ってた」という声を聞くことがあります。実際に同様のコンセプトのアプリもたくさん出ています。 実は、カヤックでも、2年ほど前、Instagramが出てきた頃に"Comicgram"という企画が出たことがあって、ちょっとだけモックアプリをつくったことがありました。 そのときつくったモックアプリで自動で写真加工した結果がこちら 『漫画カメラ』ほど漫画っぽくないかもしれませんが、それっぽいといえばそれっぽいです。 実は、このモックアプリはOpenCVにもともと備わっている機能を組み合わせただけなので、結構サックリ実現できます。 以下でその6ステップの処理内容について紹介させていただきます。 ステップ1:領域分割 『画像ピラミッドを用いた画像の領域分割
こんにちは、iOS Advent Calendar / Aug.28日目担当の@mtgtoです。 今日はObjective-Cのソースコードからドキュメントを生成するappledocというツールについて書こうと思います。JavadocやdoxygenのObjective-C版といったところでしょうか。 まずはappledocを見たことのない人のために、実例を見ていただきましょう。 AFNetworkingのドキュメント 一見するとApple謹製のドキュメントのようなデザインですが、実はこれ今回ご紹介するappledocによりソースコードのコメントから自動生成されたものなのです。 サンプル まずはどのように書けばいいのかということで、自分のプロジェクトの中からドキュメント化してあるメソッドのサンプルを持って来ました。 Javadocなどに親しみのある人にはほとんど調べることなく書くことができ
最近はゲームアプリをつくることが多いのですが、その中で自分でもよく使う UIKit のカテゴリ/サブクラスの詰め合わせを Github にアップしました。 https://github.com/shu223/UIKitForGame 以下に概要と使い方を紹介させていただきます。 DamageValueLabel 某ファイナルなファンタジーのバトルを彷彿とさせるダメージ値のアニメーションが簡単に行えるようになる UILabel のサブクラスです。 手軽にゲームっぽい雰囲気を出せるので、モック等によく使っています。 使い方 表示したい文字列を UILabel の text プロパティにセットし、 [self.label startAnimation]; このように startAnimation メソッドをコールするだけ! More self.damageLabel.textColor = [U
March 10, 201002:17 カテゴリObjective-C Objective-C:カテゴリで「できること」と「できないこと」 blogを移動しました。 http://kurokawh.blogspot.jp/2010/03/objective-c.html を参照ください。 Objective-C のカテゴリについて「できること」「できないこと」をまとめました。 <<できないこと>>同じクラスの別のカテゴリに宣言されているメソッドを確実にオーバーライドすること =>クラスの @interface セクションで明示的に宣言されているメソッドの再定義を避けるべき リンク順で呼ばれる関数が変わってしまう・・・クラスのインスタンス変数の追加既存のカテゴリと同名のカテゴリの追加同じクラスに定義されている同名のメソッドの呼び出し<<できること>>クラスへのインスタンスメソッド追加クラスへ
Blocks というのは Apple が C/C++/Objective-C 向けに独自実装したクロージャ的な機能.Snow Leopard リリース時に GCD すげぇ!という記事で見かけて『Apple やりやがった,あの変態やりやがった』くらいにしか思っていなかったのだけど,iPhone OS4.0 で使うことになりそうなので,ザックリと調べてみた ザクザクっとドキュメントを読みつつテストしつつという状態で書いたメモなので,嘘を書いている可能性が大いにある! 以下,Blocks をクロージャと呼ぶ シンプルに // 無名でダイレクトに呼ぶ ^(void) {puts("closure");}(); //=> closure ^() {puts("closure");}(); //=> closure ^{puts("closure");}(); //=> closure // 名前を付
イマドキの流行に敏感なキミだったらもう知ってるかもだけど、今日はそういうのに鈍感なオジサンたちのために、今風の Objective-C について書いちゃうよ。もちろん互換性的な感じで、すぐに変えられないかもってコもいると思うけど、知っててもソンじゃないから、いま覚えとこう!それとこういうのって、けっこー変わっていくものだから、半年後とかにはもう流行後れになるから注意してね! インスタンス変数 Objective-C のインスタンス変数と言えば、ヘッダの @interface に書くというのがこれまでのルールでした。典型的な例として、以下のように書いていました。 @interface MyObject : NSObject { NSString *aString; } ... @end 今風には、インスタンス変数の宣言は実装部の @implementation に書きます。 @impleme
今日MacBookPro届いたよ。整備品だけど。 なぜかDVDの読み込みエラーになる時がある。整備品だからかと疑いたくなる。 あぁぁぁ、ほんとう情報が少ない。。Core Animation。ハマりまくり。 CABasicAnimation で使ってフラッシュでいうTweenerみたいなことをしたいと思っていて。 単純に、1つの動作をさせることは簡単に分かったのですが(例えば、拡大だけとか、回転だけとか)。 でも、拡大しながら回転させたい時はどうするんだよっと。公式ドキュメントやら読んでみたけど、意味不明でした。2つ並べても1つしかアニメされないし。。。 でも、洋書のCore Animationに書いてありました。あっさりと。買っておいて良かった。。。 Core Animation: Simplified Animation Techniques for Mac and iPhone Dev
My365は、まずiPhoneアプリとしてリリースすることにしました。 iPhoneアプリをリリースしたのはこれが初めてで、勉強しながらの開発となりました。(iPhoneアプリ開発自体では、ヒマボタンという素晴らしいアプリの開発経験があるのですが、このアプリは残念ながら僕のiPodにしか入っていません。) (よかったらこちらもどうぞ → iOS編, サーバ編, サーバサイドプログラム編 ) 勉強に使った書籍 「よくわかるiPhoneアプリ開発の教科書」は、Objective-Cの言語体系についてはほとんど触れられていませんが、Xcodeの使い方であるとか、iOSのフレームワークの使い方であるとかが、とても丁寧に説明されていて分かりやすい本です。 4〜5時間くらいで読み終わります。この本だけでとりあえずアプリが作れる風になれることは間違いないです。 「Objective‐C 2.0徹底解説」
UIViewにはアニメーション関連メソッドが用意されているので、お手軽にアニメーションを実行することができます。ボタン、ラベル、画像などは全てUIViewを継承しているので基本的に全て同じ方法で実行可能です。 まずはUIViewの初期化メソッドでUIButtonを生成してViewに追加しておきます。このボタンが押されると@selector()で指定してあるメソッドが呼ばれるので、そこでアニメーションを実行します。 - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.backgroundColor = [UIColor whiteColor]; // button UIButton *btn= [UIButton buttonWithType:UIButtonTypeRounde
UIViewに実装されているアニメーション関連のメソッドがiOS4.0から刷新され、今までのメソッドは非推奨になってしまった。 そこで、"UIView アニメーション"でググって一番上にくるUIViewで手軽にアニメーションを実行する方法 - プログラミングノートを参照させてもらいつつ、その違いについてまとめてみる。 既存の書き方 前述のid:ntakuさんのところから引用させてもらうとこんな感じ。 -(void)startAnimation:(id)sender{ UIButton *btn = (UIButton *)sender; //アニメーションの対象となるコンテキスト CGContextRef context = UIGraphicsGetCurrentContext(); [UIView beginAnimations:nil context:context]; //アニメー
Tweet iOS 3.1からobjc_set|getAssociatedObjectが使えるになりました。 これにより、カテゴリでできなかったインスタンス変数の追加もできるようになります。 百聞は一見にしかず。 例として、UIColorにtagというプロパティを追加して値を保存するようにしてみましょう。 #include <objc/runtime.h> @interface UIColor( aso ) @property (nonatomic,readwrite) int tag; @end @implementation UIColor ( aso ) - (void) setTag:(int)value { objc_setAssociatedObject( self, @"tag" , [NSNumber numberWithInt:value],OBJC_ASSOCIATIO
チェック1. なんでもかんでもヘッダーファイルでimportしていませんか? 例えば、こんなコードを書いていませんか? #import "OtherLibrary1.h" #import "OtherLibrary2.h" @interface Library @property (strong) OtherLibrary1* otherLibrary1; @property (strong) OtherLibrary2* otherLibrary2; @property (assign) BOOL flag; @end Libraryというクラスを作り、そこでOtherLibrary1とOtherLibrary2をpublicなpropertyとする場合、当然のごとくOtherLibrary1とOtherLibrary2のimportが必要なわけですが、なにも考えずにヘッダーファイルでO
完成品はこんな感じ メッセージアプリとかでよくあるやつなんだけど、画像でもいいんだけどセリフの長さによってサイズ変えたりしたいから、描いたほうが楽だなってことで簡単なんで描いちゃいましょう。 コードは主要部分はこんな感じ //描画するぜ! - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextBubblePath(context, CGRectMake(60.5, 40.5, 170, 70)); CGContextStrokePath(context); } //角度→ラジアン変換 #if !defined(RADIANS) #define RADIANS(D) (D * M_PI / 180) #endif //吹き出しを描く void CGConte
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く