-TableとPicker

出張にて福岡に滞在中ですが、移動時間とホテルでのまったりタイムを利用してiPhone開発を自習。前日の人間ドックの待ち時間もあって、やっと階段を上れたみたい。SDKのドキュメントを読んで初物でも消化できるようになり、TableとPickerの普通な範囲での使い方であれば、コーディング方法は把握しました。もちろん、ButtonとLabelとTextEditはその前に。ところでこのiPhoneSDKのNDAっていずれは解除されるのかな?
次は複数画面を出して切り替えるのに行く。これが出来たら標準ウィジェットを使った紙芝居アプリなら書けるよ。さらにその後でネットワークとストレージに行こう。
階段を上るために行ったことを忘れないうちに記してみる。なんか忙しくて一週間の期間で正味1日ぐらいのタイムライン。

  • 「詳解Objective-C2.0」を読もうとしたけど、重く感じたので、1章も読みきらずに閉じる
  • 公式サイトからダウンロードしてきた「iPhone101」というチュートリアルを写経。何もわかってないけどとりあえず動く
  • 「COCOA PROGRAMMING FOR MAC OS X」を読む
    • Chapter1は流し読み。読まなくてもいいかも
    • Chapter2はMacSDKで写経
    • Chapter3で@interface、[ foo bar:pow ]なんかのObjective-Cオブジェクト指向を理解
    • Chapter4でretain、release、autoreleaseなんかのメモリ管理を理解。この章はおそらく後にも繰り返し読むことになるだろう
    • Chapter5でaction&Targetと呼ばれるコールバックメソッド(またはリスナー)を理解
    • Chapter6でDelegateとDataSourceを理解。Javaならinterface。
    • Chapter7はiPhoneでは半分しか使えない。@propertyとJavaScript連想配列みたいなのを理解。
    • Chapter8は全部とばしていい
    • Chapter9もたぶん全部とばしていい。とばした。
    • Chapter10は大事かどうかも検討せずにとばした。
    • Chapter11はCoreDataの説明なので「あとでよむ」。とばした
    • Chapter12、大事そう。けど飽きて来たのでしおりを挟んで本を置く。つまりChapter7までしか読んでない
  • 勢いでTableをリファレンスとChapter6を読み返しみながら書いてみたら。。。お、書けるジャン!おっけーおっけー。UITableViewとNSTableViewはまるっきり別物なAPIだけど、クリアした
  • PickerはDataSourceがほとんど働かずにDelegateが大事でTableと様子が違う。ふふふ、もはや余裕を感じて来たw

勝因は、JavaDelphiでプロとして書けるぐらいの十分な基礎があったことと、Cも書けることと、英語が読めることと、脱獄軍団やMacOS上での情報を、どうせ全部は役に立たないものと軽く流したこと。「COCOA PROGRAMMING FOR MAC OS X」は入門者向けとして良書。でもCを書けない人や、OSネイティブなUI開発をしたことない人はちんぷんかんぷんだと思う。で、Objective-CってCに超分厚いマクロが乗ってるみたいな感じなんだけど、なんかDelphiっぽい気がする。
で、おそらく2冊目として「詳解Objective-C 2.0」を読むと、勝手に想像で補って理解している部分に裏付けができると期待している。自分に足りないのはUNIX系のプログラミング知識なので、スレッドやネットワークとかになるとキツいことがあるかも。
あと、XCodeやInterfaceBuilderは申し訳ないがクソだ。どうもWEBや書籍ではこいつらが素晴らしいものであるかのように、妙に褒められているようだけど、実際は挙動が怪しいし操作感についても出来が悪い。CodeGear(昔のBorland)が作ってたら到底こんなレベルじゃないことが容易に想像できる。8年ぐらい前のMetroWerksレベルだ。PalmOS向けに製品開発してた頃の酸っぱい思い出がフラッシュバックした。生産性厨のお友達にはぜひこのへんも考察してもらいたい。一方、エミュレータとライブラリとドキュメントは最高!ま、このへんも昔のPalmっぽいといえるのだろうけど。Palmエミュレータは良く出来ていたように思う。