Tag Archives: 「ユメみるiPhone」

「ユメみるiPhone」を読んでみる:iDrum編

0
Filed under iPhone,
Tagged as , , ,

あっという間に半月経ってしまったが、前回の続きの「4. iDrum―より本格的なiPhoneアプリケーション」の章を読みながら実際にアプリを作ってみました。

ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング

著者/訳者:徳井 直生

出版社:ワークスコーポレーション( 2009-05-11 )

定価:¥ 3,465

Amazon価格:¥ 3,465

単行本 ( 208 ページ )

ISBN-10 : 486267058X

ISBN-13 : 9784862670588


ユメのつづき

前回、本書の説明不足から割と参った感じになったので今回も不安ながらのスタートでしたが、この章ではその症状がさらに悪化しました。やっぱり、プログラム初心者はこの本買っちゃだめですね。少なくともポインタが何か、くらいは分かっている必要があるようです(というか、そういう文章があるので、それ前提です)。
以下は本書だけでハマったポイントの解決策と、本書の説明不足に対する愚痴が入り交じっているエントリとなっています。

dreaming_iphone_4_idrum

OpenALライブラリと正誤表

この章ではサウンドを扱うことになり、章の頭でiPhone SDKに用意されているいくつかのサウンド関連ライブラリを比較紹介している。この説明はとても分かりやすい。その説明されている中のOpenALを使う訳ですが、そのまま使うには初期化設定など煩雑な部分が多く面倒だ、ということで著者がラッパークラスを用意してくれている。
まずはそのラッパークラスを著者のサイトからダウンロードしてプロジェクトに追加するところから始まります。
ここで驚くのは本文内にそのURL表記が全くないことだ!
前書きの最後にあるリンクからたどり着くページからのリンクでそのファイルがダウンロードできるページにたどり着ける。

このページの中程にある「サンプルファイル」をダウンロードすると、その中にOpenALのラッパークラスが入っている。これを本書の説明にそってプロジェクトに追加します。
ちなみに、このサイトには正誤表があり、一つだけ修正コードが載っているのですが、このコードが色付けされていて、そのなかの一部が背景と同一色になっていてそのままでは見えない、ということになっています。
dreaming_iphone_errata
コードをマウスでドラッグし選択して見ましょう。

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にアップしたいと思います。

Read More »

「ユメみるiPhone」を読んでみる:HelloWorld編

1
Filed under iPhone,
Tagged as , , ,

「ユメみるiPhone」という本を買い、本書だけを見ながらiPhoneアプリ開発を始めてみました。
他にもいろいろ本は出ているのですが、こういうタイプの本はみたことなかったので、実際どうなんだろう?と書籍の出来を確認したい気持ちで買ってみました。

ユメみるiPhone ―クリエイターのためのiPhone SDKプログラミング

著者/訳者:徳井 直生

出版社:ワークスコーポレーション( 2009-05-11 )

定価:¥ 3,465

Amazon価格:¥ 3,465

単行本 ( 208 ページ )

ISBN-10 : 486267058X

ISBN-13 : 9784862670588


ユメの価格

まず苦言から書いてしまうのだが、p.24で有償の「iPhoneデベロッパプログラム」についての言葉が危ういと思う。
税込み10,800円のこのプログラムについて「この際購入してしまいましょう。お金を払ってしまうと、アプリケーションを作らないとなんだか損した気持ちになりませんか?」と書いているが、このタイミングで買ってしまい、結局全く使い物にならなかったら、それは損した「気持ち」ではなく、実際に損することになる。iPhoneアプリ開発とはどういうものか、それを読者に全く知らせないうちにこういうことを書くのは煽り過ぎではないだろうか。
せめて、第3章の最初のアプリ”HelloWorld”を作りきってからにすべきだと思うのです。実際「iPhoneデベロッパプログラム」に入るのは、実機で動作させるためとAppStoreで発売するために必要なのだから、しばらく開発が進んでからでも問題ないはず。
yumemiru-book

不足気味な説明文でハマる

このように序盤の書き方を危惧するのは、実際にp.43の「インターフェイスとの接続」の項目でかなりハマったからだ。
Fig.30に相当する操作をしようとしても、なかなか紙面と同様な画面にならない。
Viewウィンドウをアクティブにすると、インスペクタウィンドウにOutletsの中に”helloLabel”が出てこないのです。

ちなみに私は、Objective-C、Xcodeは使ったことがないのですが、C/C++は理解できるし、その他スクリプト言語も少々分かり、VisualStudioも少々分かるのですが、それでもこの症状がどういうものかすぐには理解できなかった。ここまでの文章でViewとかの説明も全くしていないので、プログラム初心者なら絶対ここでハマり半分は脱落し絶望すると断言できる。ちょっと不親切かもしれない。

結論から言うと、次のような手順になる。なるべく詳細に書いてみました。

  • Xcodeのプロジェクトウィンドウで HelloWorldViewController.xib をダブルクリックすると、InterfaceBuilderでHelloWorldViewController.xibウィンドウが開きます。
  • HelloWorldViewController.xibウィンドウで、 View をダブルクリックすると、p.32あたりで文字を配置したViewウィンドウが開きます。
  • “Tools”メニューから”Inspector”をクリックし、Inspectorパネルを開きます。
  • Inspectorパネルの左から二つ目の矢印があるボタンをクリックし、Connectionsタブを開きます。
  • この状態で、HelloWorldViewController.xibウィンドウ内のFile’s OwnerやViewを選択してInspectorウィンドウがどのように切り替わるか確認してみます。
  • File’s Ownerを選んでいるときに、紙面と同様にOutlets内にhelloLabelなどが表示されていることが確認できます。ここで始めて、「HelloWorldViewController.xibのFile’s OwnerにHelloWorldViewController.hで記述した内容がリンクしている」ことが分かると思います。
  • (ちなみに、ここでInspectorパネルの右端のIdentityタブを選び、File’s Ownerの情報をみると、Class Identityに”HelloWorldViewController”とあるので、ここで関連づけられていることが想像できます)

初心者向けではない

その後、ビルドがうまく通り、HelloWorldのアプリを実機で動かすところまでやってみたのだが、NDAのこともありかけないことも多いせいか、この本だけでは足りないという人は多そうだ。
本書は初心者向けではない。何かしらの言語で何か製品を作ったことがある人なら問題ないかもしれない、というレベルだ。
扱っている題材が面白そうな雰囲気なので、それに惑わされて買っても、他の初心者向け本で挫折していたら厳しいかもしれない。
でも、そういう風に楽観視してハマる人も多そうなので、この本で気になるところがあったらこのエントリのように勝手に補完メモを書いていくことにしよう。

Read More »