XMLをパースする

iPhoneでXMLを扱う際には、使いたいCocoaのXML関連クラスがiPhone上で使えるかどうかにまずは注意しましょう。例えば、NSXMLDocumentやNSXMLElementといった、NSXMLNodeのサブクラスは、iPhone Simulator上では使えますが、iPhoneの実機では使えません。シミ…

実機でInstrumentsが使えなくなったときの対処法

Instrumentsは、アプリケーションの最適化を図る際に手放せないツールですが、たま〜にというかしょっちゅう実機で動かすことができなくなるときがあります。アクティブなSDKをDeviceにして 「実行」 >> 「パフォーマンツツールを使って開始」しても、実機に…

iPhone Framework内のApple純正アイコンを開く

iPhoneアプリ用のアイコンを作る場合、まず最初に考えるのは、Appleが用意しているアイコンをまねして作るという方法です。実際に、例えば/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator2.0.sdk/System/Library/Frameworks/…

iPhone Tutorial - Archivers, unarchivers, and serialization by Nick Myers

http://www.vimeo.com/1454094はてな日記って、普通にHTMLを書くことはできないのか?? 動画をembedしたいんだけど。

ネットワークにアクセスしていることをユーザに提示する簡単な方法

今、ネットワークにアクセスしてますよーということをユーザに簡単に提示する方法。ネットワーク上のデータをロードしてるようなときには、Activity Indicator(ぐるぐる回ってるやつね)を使うのが一般的ですが、自前で準備しなくてもシステム側が用意してく…

iPhoneの個体番号を取り出す

iPhone, iPod touchには、個体ごとに固有のデバイスIDが付与されている。 個体を識別してなにかやりたいような場合に便利だ。このIDを取り出すのは、次の一文ですむ。 [UIDevice currentDevice].uniqueIdentifierNSLog()してみると、c748e3570301***********…

iPhoneで使えるフォント

Interface BuilderでラベルのフォントをHelvetica Neueにして使ったところ、実機の方で起動時にアプリが落ちるという現象に見舞われました。ログをチェックしたところ、FT_Load_Glyph errorで落ちている模様。どうもフォントのロード失敗して落ちているよう…

アプリのsandboxをURLを取り出す

iPhoneアプリはアクセスできるファイルが厳密に制限されてます。アクセスできるディレクトリの中で特に重要なのが、アプリケーション自体のバンドル内のDocumentsディレクトリ。 NSArray *filePaths = NSSearchPathForDirectoriesInDomains ( NSDocumentDire…

ローカライズしたアプリケーション名を取り出す

これはCocoaと全く同じはず。 NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];

アプリケーション間でURLを送る

■ 自作のアプリケーションから、特定のWebページをSafariで開く NSURL *myURL = [NSURL URLWithString:@"http://d.hatena.ne.jp/iphone_dev"]; [[UIApplication sharedApplication] openURL:myURL]; ■ 自作のアプリケーションのURL schemeを指定するInfo.pis…

AppStore受付開始

AppStoreがiPhoneアプリの登録を開始しました。僕もさっそくアプリを一つ登録!日本で何番目だったんだろう... 気になるところです。登録のときに困ったのが、Ratingと値段設定。Ratingというのは R12とかR15とかいう年齢制限のことですが、ソフトウェア(特…

レイテンシーを押さえるには

iPhone上でオーディオを再生させる一番一般的な方法は、AudioToolboxフレームワークのAudioQueueを使う方法。ただし、レイテンシーが体感で0.3, 4秒くらいはあるように感じます。OpenALだと、ほぼリアルタイム。体感上はわかりません。すくなくともAudioQueu…

SDKベータ7でのProvisioning

SDK 7からProvisioningの方法が多少変更になったようです。アプリケーションごとのAppID (########.com.yourcompany.youapp)から、一般的なAppID(#######.com.yourcampany.* もしくは ########.*)にスイッチすることが推奨されています。これはやはりアプリ…

AudioService - 短いファイルを再生する

数秒の短いファイルを再生したいという場合、AudioToolboxフレームワークのAudioServiceという仕組みを使うと簡単にできます。使い方は簡単。1. 最初に再生したいファイルを登録するAudioServicesCreateSystemSoundID( CFURLRef URL, SystemSoundID* outSyst…

Objective-C 2.0

Leopardから採用されたObjective-C 2.0 (以下, obj-C 2.0)。ガーベージコレクションなど新しい機能が追加されているのですが、なんとなく面倒で今まで敬遠してました。ところが、iPhone SDKでは、ドット記法などのobj-C 2.0の機能が多用されているので、避け…

iPhone SDKの制限 - サウンドに関して

僕が調べた範囲で重要と思われるiPhone SDKの制限を列挙しておきます。 ユーザがiTunes経由で同期しているMP3, AACなどのオーディオデータにはアクセスできない これにはかなりがっかり。ユーザのオーディオデータにアクセスできるのは、Appleのソフトウェア…

AUGraphも使える!

Audio Unit(AU)を簡単な使いたいという方のために、AUGraphという仕組みがあります。 簡単に言うと、複数のAU(AUGraphの中ではNodeというオブジェクトでラップされます)をチェーン状につなげて、一連の処理を定義することができるというもので、たとえば、音…

iPhoneにおけるAudio Unitのサポート

Audio Unitとは、OS Xから導入されたシステムレベルのオーディオプラグインのアーキテクチャです。平たく言うと、システム全体で使えるVSTプラグインのようなもの。OS Xだけではなく、そのサブセットであるiPhoneにも同じ仕組みが用意されています。ただ、今…