あっという間に半月経ってしまったが、前回の続きの「4. iDrum―より本格的なiPhoneアプリケーション」の章を読みながら実際にアプリを作ってみました。
ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング
著者/訳者:徳井 直生
出版社:ワークスコーポレーション( 2009-05-11 )
定価:¥ 3,465
Amazon価格:¥ 3,465
単行本 ( 208 ページ )
ISBN-10 : 486267058X
ISBN-13 : 9784862670588
ユメのつづき
前回、本書の説明不足から割と参った感じになったので今回も不安ながらのスタートでしたが、この章ではその症状がさらに悪化しました。やっぱり、プログラム初心者はこの本買っちゃだめですね。少なくともポインタが何か、くらいは分かっている必要があるようです(というか、そういう文章があるので、それ前提です)。
以下は本書だけでハマったポイントの解決策と、本書の説明不足に対する愚痴が入り交じっているエントリとなっています。
OpenALライブラリと正誤表
この章ではサウンドを扱うことになり、章の頭でiPhone SDKに用意されているいくつかのサウンド関連ライブラリを比較紹介している。この説明はとても分かりやすい。その説明されている中のOpenALを使う訳ですが、そのまま使うには初期化設定など煩雑な部分が多く面倒だ、ということで著者がラッパークラスを用意してくれている。
まずはそのラッパークラスを著者のサイトからダウンロードしてプロジェクトに追加するところから始まります。
ここで驚くのは本文内にそのURL表記が全くないことだ!
前書きの最後にあるリンクからたどり着くページからのリンクでそのファイルがダウンロードできるページにたどり着ける。
このページの中程にある「サンプルファイル」をダウンロードすると、その中にOpenALのラッパークラスが入っている。これを本書の説明にそってプロジェクトに追加します。
ちなみに、このサイトには正誤表があり、一つだけ修正コードが載っているのですが、このコードが色付けされていて、そのなかの一部が背景と同一色になっていてそのままでは見えない、ということになっています。

コードをマウスでドラッグし選択して見ましょう。
MVCパターン
iPhone SDKでよく使われているパターンであるMVC(Model-View-Controller)で設計を進めるのはいいのだけど、どういう設計で進めているのかが分からない。ましてやクリエイターと呼ばれる人たちにはこの関係ぐらいは丁寧に説明しておいた方がよいかと思うのだが、ちょっと親切心に欠けているのか、千尋の谷に突き落としているのか。
Appleのサイトに説明があったので、ここをとりあえず読んでおく、ということにしておいてもよいかと思います。
とか書きながら、一番復習が必要なのは自分だったりしますが…。
プロジェクト作成
プロジェクトを作成するダイアログですが、現在のiPhone SDKではプロジェクトテンプレートの名前が変わっていたりするので注意が必要。
大体同じやつを選べば問題ないとは思うのだけど、せっかく本書のためのページがウェブにあるのなら、そこに最新情報をアップデートしてくれれば親切なのに、と思う。
コードを書き始める箇所からだんだん読みにくくなってくる。
この読みにくさは、いろいろなトピックがごちゃ混ぜになっていることに起因している。
いろいろなトピックとは、iDrumの設計の話、Objective-Cの話、Xcode/InterfaceBuilderの使い方の話、iPhone SDKの話、である。これのトピックがそれぞれ色分けされていたり、見出しで分けられていたりしたらそれだけで見やすくなると思うのだが。
構成について
69ページの後は音を読み込むところか実装する訳だが、ボタンの入力がうまく取得できているか、などを考えると、ここで一旦休憩するのがいいんじゃないだろうか?と思った。
タップしたボタンに応じたtag番号を文字として画面かログに出力すべきでしょう。
このあとの実装で音が鳴らなかったときに原因追及に時間がかかるからなぁ、と思っていたのです。
音が鳴らない→デバッグ
で、なんとこの後、まんまと音が鳴らなくて困ったのです。
「NSLogでデバッグコンソールにログを表示する」ということができそうなことを知り、調べてみました。
「実行」メニューの「コンソール」を選び、デバッガコンソールを表示させます。こうすると、コードでNSLogメソッドを使うことでメッセージを表示させることができます。
これを見ていたら、“Error: No Sound named kick.wav found”と表示されているではありませんか!
調べてみたらどうやらパスがおかしい模様。
原因は60ページの次の文章にありました。
ダウンロードしたサンプルファイルのOALフォルダをClassesに、同様にサウンドファイルが入ったSoundフォルダをResourcesの下に追加します。
これでは、Resources/Sound/kick.wav とするのが普通だと思います。しかし、コード上は “Sound/” というパスは書かれていないので、Resources/kick.wav となるように配置する必要があります。(もしくはコードの方を修正するか)
完全に間違いだと思いますが、ネットを検索してもそういう情報はないし、本書を読んで実際に手を動かしている人っていないのでしょうか?
叩かれて強くなる
厳しいことばかり書いてきましたが、4章までのところを何度も見直したり、HelloWorld, iDrumの二つのプロジェクトをいじってみたりしていたら、Xcodeの使い方とか、プロジェクトの構成とか、Objective-Cがだんだんわかってきました。
親切すぎないのも結果としてはメリットかもしれない、と思える強さがないと本書は参考にできないですね。
まぁ、私は這いつくばってでも次の章へ進みますが。
本書を読みながら分かって来たこともそのうちまとめてこのblogにアップしたいと思います。












