iPhoneアプリ開発の勉強(8日目)

やったとこ。Chapter4のLESSON14。

ここでは、カメラを使うと見せかけて、ImagePicker(写真撮るかライブラリから写真選ぶかするもの)の実装について学んだ。
ここまで来ると各メソッドの名前とかは憶えていられないので、イメージだけ掴みたいなぁと思っているけどやっぱり未だにつかめていない。。
こう書くんだろうなぁという想像が当たっていない感じ。
delegateの位置づけがすっきりしれば視界が開けそうな感じがする。


後、同時進行でゆっくり読んでいる詳解Objective-C 2.0。

読んだとこ。「04-04 インスタンス変数の情報隠蔽

  • インスタンス変数へのアクセス及び、引数として同じクラスのインスタンスが場合に、obj->hogeのような形でインスタンス変数を参照できる。まぁでも基本的にはアクセサメソッドを使うと思うけど。
  • @privateや@protectedなども指定できるが、実装ファイル(.m)でもインスタンス変数が定義出来るようになったので、見せるものはインターフェイスファイル(.h)で定義し、隠しておきたいものは実装ファイル(.m)で定義するのがわかりやすいっていうのはなるほどと思った。


iPhoneアプリ開発の勉強(7日目)

やったとこ。今日はChapter4のLESSON13だけ。

  • カメラボタンで直接カメラを起動するようなアプリはAppStoreの審査でNGになることがあるかも。
    • アクションシートを表示して、写真撮影か撮影済みの画像から選ぶかフォトアルバムの画像から選ぶかを選ばせるようにする。


やっぱりdelegate周りがしっかりと理解出来ていないので、モヤモヤする。というわけで詳解Objective-Cもあわせて読んでいこうと思う。

  • 初心者向けの本だし細かいことは後で説明するからあんまり気にするなってスタンスなのかな。


iPhoneアプリ開発の勉強(6日目)

詳解Objective-C 2.0の第3版を読み始めた。せっかくのiOS5対応だけど、Snow Leapardでの開発なので対応出来ないけど。。


読んだとこ。最初から04-03「プログラミングにおける型宣言」まで(p74)

  • 最初の方はオブジェクト指向に対する一般的な説明が中心でその中でObjective-Cでは〜のような感じの説明があるので、さらっと読んでおいた。
  • それが終わった最初がいきなりメッセージなのがちょっとビックリしたけど、Cを知っている前提なので納得。
  • 後はクラスの書き方とかインターフェイスファイルと実装ファイルについてなど。
    • .hで宣言していなくて.mにあるメソッドも外から呼ぶことは出来る。知らなかった。
    • オーバーライドするメソッドはサブクラスの.hで宣言しておく必要がある。
    • selfは実行時に、superはコンパイル時に。「えっ」と思ったけど考えてみると自然だった。
    • 静的な型チェックはJavaと比べると厳密ではなく、動的にオブジェクトを変更したりしやすい。でも実行時エラーが発生するリスクはその分高い。
  • こうやって改めて1つ1つの説明を読んでいくと理解が深まっていいですね。
  • そして当たり前だけど、やはりCをやる必要があるなと再確認。


iPhoneアプリ開発の勉強(5日目)

やったとこLESSON3の全部。ストップウォッチ作るとこ。

  • NSTimerクラスのscheduledTimerWithTimeIntervalで指定秒後に処理を実行させたりが可能。repeatがYESで繰り返しの場合、NSTimerのinvalidateを呼び出すことで終了させることが可能。
  • IBでタブとビューを結びつける時はClassとNibの両方を指定する必要がある。(はまった。。)
  • NSStringのinitWithFormatに対するstringWithFormatのような簡易コンストラクタで呼んだ場合は、autoreleaseされたインスタンスが返ってくる。不都合がある場合はretainで参照カウントを増やす。


応用で、ストップウォッチの時間を指定出来るようにしただけで、かなり苦労してハマった。。まだまだ全然わかっていない。特にdelegateとかのイベント処理周り。
あと、Nibの設定を間違えたりして落ちたときのエラーメッセージが解読できなくて結構ツラいかも。


iPhoneアプリ開発の勉強(4日目)

やったとこChapter2のLESSON8


画面の回転について。shouldAutorotateToInterfaceOrientationメソッドで返すBOOLによって回転出来るかどうか決まる。

IBのAutosizingは外の赤線がレイアウトを固定するかどうかで、中の赤線はリサイズするかどうか。



Kindleで帰り電車(10分くらい)でHuman Interface Guidelineを読み始める。いつ読み終わるのだろうか。。
http://developer.apple.com/jp/devcenter/ios/library/documentation/MobileHIG.pdf

iPhoneアプリ開発の勉強(3日目)

やったとこ

  • chapter2のLESSON5〜7
 
学んだとこ
  • webviewとかdelegateのさわり
  • UIToolBarには、FlexibleSpaceのようなレイアウトを調整するためのボタンを設定出来る
  • デリゲートの設定したら、解放する前にデリゲートの結びつきを解除する必要がある。
    - (void) dealloc {
        self.webView.delegate = nil;
    }
        
 

 

おまけ

iPhoneアプリ開発の記事を見ていたらこの本がよいという記事が多く、帰りにちらっと立ち読みしてみたらわかりやすいそうでよさそうでした。

というわけで近いうちに買ってみようと思いました。