iPhoneアプリケーション開発関連のおすすめ本
iPhone SDK
- 作者: Jonathan Zdziarski,近藤誠(監訳),武舎広幸,武舎るみ
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/09/07
- メディア: 大型本
- 購入: 37人 クリック: 770回
- この商品を含むブログ (57件) を見る
iPhone SDK Application Development
- 作者: Jonathan Zdziarski
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2009/01
- メディア: ペーパーバック
- 購入: 2人 クリック: 108回
- この商品を含むブログ (14件) を見る
邦訳版が発売されたばかりだったようで、本屋で偶然見つけた。iPhone SDKで一般的によく利用しそうな部分について、淡々と使い方を説明して、サンプルコードも豊富に載っている。Appleのドキュメントを検索するより楽かなーと思ってつい買ってしまった。
追記:
iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)
- 作者: 木下誠
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/09/08
- メディア: 大型本
- 購入: 7人 クリック: 197回
- この商品を含むブログ (14件) を見る
- 作者: デイヴ・マーク,Dave Mark,ジェフ・ラマーチ,Jeff LaMarche,マーク・ダルリンプル,鮎川不二雄
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/06/27
- メディア: 大型本
- 購入: 36人 クリック: 459回
- この商品を含むブログ (40件) を見る
本屋で見た感じだとこれも良さそう。O'Reilly or 上記のどれか1冊手元にあると便利だと思います。
- 作者: Erica Sadun,株式会社クイープ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/02/12
- メディア: 大型本
- 購入: 20人 クリック: 473回
- この商品を含むブログ (60件) を見る
これはクックブックなので少し違うけど、興味のあるネタが載っていたりする。
Objective-C
- 作者: 荻原剛志
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2008/05/28
- メディア: 大型本
- 購入: 52人 クリック: 603回
- この商品を含むブログ (148件) を見る
iPhone本、Cocoa本のほとんどはObjective-Cの解説が少し載ってるけど、Objective-Cに関してはこれを読んだほうが良い。言語そのものの解説と、Mac OS X / iPhoneプログラミングにおいては切っても切れないFoundationフレームワークのクラスの解説があり、1冊目として読むには最適。
- 作者: 木下誠
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2009/03/27
- メディア: 単行本(ソフトカバー)
- 購入: 9人 クリック: 118回
- この商品を含むブログ (30件) を見る
ここの連載を書籍化したもの。そのうち読みたいと思いつつ時間がとれていない。
Cocoa
Cocoa® Programming for Mac® OS X
- 作者: Aaron Hillegass
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2008/05/05
- メディア: ペーパーバック
- 購入: 24人 クリック: 188回
- この商品を含むブログ (46件) を見る
- 作者: アーロン・ヒレガス,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2002/06
- メディア: 単行本
- 購入: 4人 クリック: 47回
- この商品を含むブログ (27件) を見る
iPhoneそのものじゃないけどMax OS XのCocoa本はけっこう参考になる。最新の3rd Editionは邦訳されていないので、原著を読んだほうがいいかもしれない。
Windowsサウンドプログラミング / C++MIDIプログラミング
Windowsサウンドプログラミング―音の知識×プログラミングの知識
- 作者: 田辺義和
- 出版社/メーカー: 翔泳社
- 発売日: 2001/04
- メディア: 単行本
- 購入: 1人 クリック: 7回
- この商品を含むブログ (7件) を見る
Windwos APIを使ったシーケンサ、オーディオ処理のアプリケーションの作り方を解説している珍しい本を、池袋のジュンク堂で見つけた。よくこんなマニアックな本があったもんだ…
名古屋で見た覚えが無いし、ずいぶん古い本なので、対象としているのはWinsows 95/98とかでした。とにかく珍しいので、MIDI/オーディオ関連のプログラムを書きたい人は見つけたら立ち読みしてみたらどうだろう。
C++MIDIプログラミング―Windows95/98用MIDIアプリケーションの開発 (Windows programming technique)
- 作者: ポールメシック,Paul Messick,アクロバイト
- 出版社/メーカー: プレンティスホール出版
- 発売日: 1999/03
- メディア: 単行本
- クリック: 1回
- この商品を含むブログ (1件) を見る
こっちはMIDI。2000年前後ってちょうどDTMブームだった頃だからかな?
本屋巡り
東京に行って時間が空いたので、この辺り↓の本屋を探検してみようと思ったけど、時間の都合上、新宿と池袋のみで断念。
- ジュンク堂書店 新宿店
- 紀伊國屋書店 新宿南店
- ジュンク堂書店 池袋店
- LIBRO 池袋本店
- 八重洲ブックセンター 本店
- 三省堂書店 神保町本店
でも池袋のLIBROは改装工事中でしばらくコンピュータ書籍のコーナーが無いらしい。
池袋のジュンク堂は人が多かったし、紀伊國屋よりジュンク堂の陳列の仕方が好きなので、広々とした新宿のジュンク堂が一番楽しかったなー。
大阪には梅田にも難波にも同じくらい大きい店舗があるのに、名古屋はほんとダメだ。この間ロフトの地下に新しいのがオープンしたばかりだけど、あれの2倍は欲しいところ。
iPhone/iPod touch向けのシンセを作るには
「楽器アプリの作り方」という連載をたまたま見つけたついでに、いろいろメモ。
楽器アプリの作り方
- 楽器アプリの作り方 (1) - iPhoneのオーディオフレームワーク
- 楽器アプリの作り方 (2) - System Sound Serviceを使う
- 楽器アプリの作り方 (3) - Audio Queueを使う
- 楽器アプリの作り方 (4) - Audio Queueを使う
- 楽器アプリの作り方 (5) - OpenALを使う
全く初めての人向けのようです。この連載は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プログラミング」は必読。
- 作者: 永野哲久
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/11/12
- メディア: 大型本
- 購入: 5人 クリック: 110回
- この商品を含むブログ (23件) を見る
どうやって作る?
上記のサイトを参考にすれば、オーディオ入出力まわりの理解、既存のオーディオファイルやsine waveの再生などは簡単にできるようになります。
でもその先、肝心のシンセをどうやって作ればいいのかって情報はそんなに多くないんですよね。
たぶん、オープンソースのVSTiのソースコードを読むのが一番良い勉強方法かなと思います*2。AUよりVSTiのほうが情報が多いし、ディジタル信号処理の根本的な部分に関して、違いは何もありません。
オシレータとか各種エフェクト類のDSP処理のコードが豊富
http://www.musicdsp.org/
DSP/音響プログラミング系リンク集
http://d.hatena.ne.jp/miurror/20071109
COMとかActiveXコントロールとか
今でこそCOMコンポーネントを自分で作ることは少ないかもしれないけど、Windowsで開発やっててCOMを全く利用しないってことは無いから、もう少し詳しく覚えたいなと思っていたら見つけた本。
10年以上前のものだから絶版っぽいけど、今まで読んだ中では一番有用かも。
Inside COM―Microsoft’s Component Object Model (Microsoft programming series)
- 作者: Dale Rogerson,バウングローバル株式会社
- 出版社/メーカー: アスキー
- 発売日: 1997/10
- メディア: 単行本
- クリック: 15回
- この商品を含むブログ (4件) を見る
ActiveX controls inside out (Microsoft programming series)
- 作者: Adam Denning,クイック
- 出版社/メーカー: アスキー
- 発売日: 1997/10
- メディア: 単行本
- クリック: 5回
- この商品を含むブログ (2件) を見る
C++とオブジェクト指向プログラミングの知識があればなお読みやすい思います。
それ以外では
ATL COMプログラミング―ATLとVisualC++で作る高性能COMコンポーネント (Programmer’s SELECTION)
とか
標準講座MFC6.0―Visual C++による効率的なWindowsプログラミング (Programmer’s SELECTION)
にも載ってるといえば載ってるけどCOMの理解には繋がらなさそう。こっちはまだ本屋に置いてあるけどね。上の2冊のほうがおすすめ。
MacBook ProでVirtualBoxとUbuntu
MacBookでUbuntuを使いたくて外付けHDDにインストールしようか悩んだけど、やっぱり仮想マシンのほうがバックアップとかスナップショットとか便利すぎるのでVirtualBoxを初めて使ってみた。トラックパッドの2本指スクロールとか何も設定せずに動いたので快適。
以下手順メモ
VirtualBoxとUbuntuのインストール
- VirtualBoxのダウンロードとインストール
- Ubuntu 9.0.4のisoイメージのダウンロード
- VirtualBoxを立ち上げて仮想マシンを作成し、Storage->CD/DVD-ROMにUbuntuのisoイメージを指定
- Ubuntuのインストール(とりあえずEnglishのまま)
- 再起動(isoイメージもunmountする)
キーボードレイアウト
- System->Preferences->Keyboard->LayoutsのSelected layoutsにJapanを追加し、デフォルトにする
- Keyboard modelをVendors:Generic、Models:Japanese 106-keyにすると"]"とか"}"が正常に入力できるようになる
日本語入力
ディスプレイ解像度とか
- 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でプログレスバー出せるの?ってすごい疑問だったのでコード読んでみた。たぶんこんな感じで実現してるんだと思う。
- ページには普通にinput type="file"タグが置かれている
- ファイル選択もinputタグの機能そのまま
- uploadボタンをクリックすると、非同期PostBackする
- アップロード先のサーバ側ではIHttpModuleを自前で実装して生のhttprequestをフックしていて、requestを読み込むごとにアップロードサイズを記録する
- クライアント側では非同期PostBack後、Webサービスを定期的に呼び出し、4.で保持されている送信サイズを教えてもらう
- 非同期PostBackのRequest送信が完了するまで5.の状態
- 非同期PostBackを受けたページは、Loadイベントとかが普通に順次呼ばれて、カスタムコントロールからアップロードしたファイルが取得できる
なるほど〜…こんなことやってたのか。