iPhoneアプリケーション開発関連のおすすめ本

iPhone SDK

iPhone SDK アプリケーション開発ガイド

iPhone SDK アプリケーション開発ガイド


iPhone SDK Application Development

iPhone SDK Application Development


邦訳版が発売されたばかりだったようで、本屋で偶然見つけた。iPhone SDKで一般的によく利用しそうな部分について、淡々と使い方を説明して、サンプルコードも豊富に載っている。Appleのドキュメントを検索するより楽かなーと思ってつい買ってしまった。


追記:

iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)

iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)


はじめてのiPhoneプログラミング

はじめてのiPhoneプログラミング

  • 作者: デイヴ・マーク,Dave Mark,ジェフ・ラマーチ,Jeff LaMarche,マーク・ダルリンプル,鮎川不二雄
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2009/06/27
  • メディア: 大型本
  • 購入: 36人 クリック: 459回
  • この商品を含むブログ (40件) を見る

本屋で見た感じだとこれも良さそう。O'Reilly or 上記のどれか1冊手元にあると便利だと思います。

iPhone デベロッパーズ クックブック

iPhone デベロッパーズ クックブック


これはクックブックなので少し違うけど、興味のあるネタが載っていたりする。

Objective-C

詳解 Objective-C 2.0

詳解 Objective-C 2.0


iPhone本、Cocoa本のほとんどはObjective-Cの解説が少し載ってるけど、Objective-Cに関してはこれを読んだほうが良い。言語そのものの解説と、Mac OS X / iPhoneプログラミングにおいては切っても切れないFoundationフレームワークのクラスの解説があり、1冊目として読むには最適。


Dynamic Objective-C

Dynamic Objective-C


ここの連載を書籍化したもの。そのうち読みたいと思いつつ時間がとれていない。

Cocoa

Cocoa® Programming for Mac® OS X

Cocoa® Programming for Mac® OS X


Mac OS X Cocoaプログラミング

Mac OS X Cocoaプログラミング


iPhoneそのものじゃないけどMax OS XのCocoa本はけっこう参考になる。最新の3rd Editionは邦訳されていないので、原著を読んだほうがいいかもしれない。

Windowsサウンドプログラミング / C++MIDIプログラミング

Windowsサウンドプログラミング―音の知識×プログラミングの知識

Windowsサウンドプログラミング―音の知識×プログラミングの知識


Windwos APIを使ったシーケンサ、オーディオ処理のアプリケーションの作り方を解説している珍しい本を、池袋のジュンク堂で見つけた。よくこんなマニアックな本があったもんだ…
名古屋で見た覚えが無いし、ずいぶん古い本なので、対象としているのはWinsows 95/98とかでした。とにかく珍しいので、MIDI/オーディオ関連のプログラムを書きたい人は見つけたら立ち読みしてみたらどうだろう。


C++MIDIプログラミング―Windows95/98用MIDIアプリケーションの開発 (Windows programming technique)

C++MIDIプログラミング―Windows95/98用MIDIアプリケーションの開発 (Windows programming technique)


こっちはMIDI。2000年前後ってちょうどDTMブームだった頃だからかな?

本屋巡り

東京に行って時間が空いたので、この辺り↓の本屋を探検してみようと思ったけど、時間の都合上、新宿と池袋のみで断念。


でも池袋のLIBROは改装工事中でしばらくコンピュータ書籍のコーナーが無いらしい。
池袋のジュンク堂は人が多かったし、紀伊國屋よりジュンク堂の陳列の仕方が好きなので、広々とした新宿のジュンク堂が一番楽しかったなー。

大阪には梅田にも難波にも同じくらい大きい店舗があるのに、名古屋はほんとダメだ。この間ロフトの地下に新しいのがオープンしたばかりだけど、あれの2倍は欲しいところ。

iPhone/iPod touch向けのシンセを作るには

「楽器アプリの作り方」という連載をたまたま見つけたついでに、いろいろメモ。

楽器アプリの作り方

全く初めての人向けのようです。この連載はSystem Sound Service、Audio Queue Service、OpenALの解説のみで、Audio Unit Servicesとかの説明がありません。ワンショットサンプルを鳴らすだけの単純なアプリは別として、それ以外の普通のソフトシンセを書くならAudio UnitのRemote IOを直接使ってオーディオ入出力するのが普通だと思ってたけど、なんでスルーしてるんだろ。

もっと詳しく

シンセの開発を目的とするなら、こちらのサイトのほうが詳しいです*1。MacやiPhoneのCore Audio関連のことがよくわかります。


もちろん、SDKのCore Audio関連のリファレンスもとりあえず一通り読む。


[追記]
iPhoneにおけるオーディオ関連APIの解説から、最後の方にFMシンセを作ってみるサンプルまで載っている「iPhone Core Audioプログラミング」は必読。

iPhone Core Audioプログラミング

iPhone Core Audioプログラミング


iOS 4.2以降のiPadではCore MIDIが扱えますので、対応を考えてみるのもおもしろいと思います

どうやって作る?

上記のサイトを参考にすれば、オーディオ入出力まわりの理解、既存のオーディオファイルやsine waveの再生などは簡単にできるようになります。

でもその先、肝心のシンセをどうやって作ればいいのかって情報はそんなに多くないんですよね。

たぶん、オープンソースVSTiソースコードを読むのが一番良い勉強方法かなと思います*2。AUよりVSTiのほうが情報が多いし、ディジタル信号処理の根本的な部分に関して、違いは何もありません。



オシレータとか各種エフェクト類のDSP処理のコードが豊富
http://www.musicdsp.org/

DSP/音響プログラミング系リンク集
http://d.hatena.ne.jp/miurror/20071109

*1:ouiLead作った時にお世話になりました。

*2:海外サイトには結構あります。

COMとかActiveXコントロールとか

今でこそCOMコンポーネントを自分で作ることは少ないかもしれないけど、Windowsで開発やっててCOMを全く利用しないってことは無いから、もう少し詳しく覚えたいなと思っていたら見つけた本。
10年以上前のものだから絶版っぽいけど、今まで読んだ中では一番有用かも。

Inside COM―Microsoft’s Component Object Model (Microsoft programming series)

Inside COM―Microsoft’s Component Object Model (Microsoft programming series)


ActiveX controls inside out (Microsoft programming series)

ActiveX controls inside out (Microsoft programming series)


C++オブジェクト指向プログラミングの知識があればなお読みやすい思います。


それ以外では
ATL COMプログラミング―ATLとVisualC++で作る高性能COMコンポーネント (Programmer’s SELECTION)
とか
標準講座MFC6.0―Visual C++による効率的なWindowsプログラミング (Programmer’s SELECTION)
にも載ってるといえば載ってるけどCOMの理解には繋がらなさそう。こっちはまだ本屋に置いてあるけどね。上の2冊のほうがおすすめ。

MacBook ProでVirtualBoxとUbuntu

MacBookUbuntuを使いたくて外付けHDDにインストールしようか悩んだけど、やっぱり仮想マシンのほうがバックアップとかスナップショットとか便利すぎるのでVirtualBoxを初めて使ってみた。トラックパッドの2本指スクロールとか何も設定せずに動いたので快適。


以下手順メモ

VirtualBoxUbuntuのインストール

キーボードレイアウト

  • System->Preferences->Keyboard->LayoutsのSelected layoutsにJapanを追加し、デフォルトにする
  • Keyboard modelをVendors:Generic、Models:Japanese 106-keyにすると"]"とか"}"が正常に入力できるようになる

日本語入力

  • System->Administration->Language Supportの、Install / Remove Languages...でJapaneseを選んでインストール
  • 「Use input method engines (IME) to enter complex characters」にチェックを入れる
  • 一回Log outしてLog inし直すと、日本語の入力ができるようになっている。IMEの切り替えはControl+Space

ディスプレイ解像度とか

  • VirtualBoxのメニューのDevices->Instal Guest Addtionsを実行
  • ゲストOS側にディスクがマウントされるので、以下のコマンドを実行
cd /media/cdrom
sudo ./VBoxLinuxAdditions-x86.run
  • 再起動
  • VirtualBoxのウィンドウを好きな大きさに広げると勝手に解像度がかわるようになる。FullScreenにするともちろん1280x800
  • このあと、UpdateManagerに出てきた大量のUpdateをかけたら、Guest Addtionsの機能が無効になってしまった。もう一度Guest Addtionsをインストールし直したら解像度とか変えれるようになったけど、一番最初にUpdateしておいたほうがいいかも。

AJAXでファイルアップロードのプログレスバーってどうやって出す

ASP.NET向けのコンポーネントでこんなの見つけた。
http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/


なんで?なんでAJAXプログレスバー出せるの?ってすごい疑問だったのでコード読んでみた。たぶんこんな感じで実現してるんだと思う。

  1. ページには普通にinput type="file"タグが置かれている
  2. ファイル選択もinputタグの機能そのまま
  3. uploadボタンをクリックすると、非同期PostBackする
  4. アップロード先のサーバ側ではIHttpModuleを自前で実装して生のhttprequestをフックしていて、requestを読み込むごとにアップロードサイズを記録する
  5. クライアント側では非同期PostBack後、Webサービスを定期的に呼び出し、4.で保持されている送信サイズを教えてもらう
  6. 非同期PostBackのRequest送信が完了するまで5.の状態
  7. 非同期PostBackを受けたページは、Loadイベントとかが普通に順次呼ばれて、カスタムコントロールからアップロードしたファイルが取得できる


なるほど〜…こんなことやってたのか。