LV1

駆け出し三十路プログラマー奮闘記。iPhone/Macを中心に絶賛修行中。

iOSでのオブザーバーパターンを実現するには

ViewControllerの肥大化を解消すべく奮闘中です。 複数のViewに値の変更を通知したいのですけど、iOSで用意されている機能では、 DelegateやBlock構文 NSNotificationCenter KVO(KeyValueObserving) の3つが使えると。KVOは、昔InterfaceBuilderで値とUIの…

1枚のUIImageViewで画像をクロスフェードする

CATransitionを使うことで1枚のUIImageViewだけでも画像のクロスフェードが実現できました。 void crossfade(UIImageView* view, NSString* imageName) { CATransition* transition = [CATransition animation]; transition.duration = 2.0f; transition.typ…

Macでフォルダを新規ウィンドウで開くキーボードショートカット

「コマンド+コントロール+O」です!これ、ずっと探していたんですー!カラム表示で使っていると、一時的にフォルダを別ウィンドウで開きたい時があるんですよー。「コマンド+マウスダブルクリック」でも可能ですが、やっぱりキーボードだけでできるとラク…

順番に実行したい処理をマルチスレッドで直感的に書く

ここのところ、ネットワークの非同期通信を使うためにマルチスレッドプログラミングと格闘していました。そんな中、ふと「これって、RPGのバトルみたいに、○○の攻撃!→××の攻撃!みたいに順番に処理したいゲームプログラミングで使えるんじゃない!?」と思…

NSLogでポインタのアドレスを出力する

NSLogでポインタのアドレスを出力する書式があるのを知りました。 NSObject* obj = [[NSObject alloc] init]; NSLog(@"%p", obj); これで「0x681d640」などと、頭に0xをつけて16進数で出力してくれます。 今までは NSLog(@"%08X", (int)obj); などとやってい…

ARC オンの時のretain count の確認方法

auto reference counting(ARC)がオンだと"retainCount"メソッドが使えませんが、Core Foundationの関数で代用できるようです。 NSObject* obj = [[NSObject alloc] init]; NSLog(@"%d", (int)CFGetRetainCount((__bridge CFTypeRef)obj)); ARC管理下のオブジ…

Redmineをシンプルな手順で公開できるOpenShift

ワンクリックでRedmineをセットアップでき無料で使えるPaaS、fluxflexが今月末で閉鎖するとアナウンスされた。 それに代わるサービスがないか探してみたところ heroku OpenShift が候補に。 herokuはrubyの作法の理解が必要、かつフォルダの運用方法にクセが…

プログラマーの学び

プログラマーの力量とはなんだろう。実現したいものごとをコードに変換する能力だとしたら、それは科学計算の技術であるかもしれないし複雑なシステムをまとめあげる設計能力かもしれない。APIを使いこなして実現するのも、ひとつの能力だと思う。活動するフ…

プロジェクトに参加!

今日は初めて複数人のプロジェクトに関わった。あっ、こう書けばよかったんだ!とか、なるほど、こうやってソース分割するとスッキリするなーとか、一人ではわからなかった様々な発見があって、とても刺激的。遅いスタートだから、しっかり技を盗むつもりで…

オブジェクト指向の本

プロジェクトが大きくなってクラスが増えてくると、クラス同士の関連や責任が把握しきれなくなって、機能の追加や修正が怖くなってくる。これは、オブジェクト指向の理解が足りないのではと勉強を始めた。 まず読んだのが「憂鬱なプログラマのためのオブジェ…

ごあいさつ

はじめまして。 駆け出し三十路プログラマーspkrlnです。 この歳での遅いスタートに焦りながら、日々学んだことなどを記録していくつもりです。 どうぞよろしくお願いします!