2008-01-01から1年間の記事一覧

AppKiDo-for-iPhoneがリリース!

CococaプログラマならおなじみのUtility. AppKiDoのラインナップに、iPhoneアプリ開発に特化したAppKiDo for iPhoneが加わっています!! 待ってました!!!http://homepage.mac.com/aglee/downloads AppKiDoは、Cocoa APIのリファレンスのブラウザーです。Xcode…

OpenGL ESの参考書

このところ、OpenGL ESをつかったグラフィックにチャレンジしてます。そのなかで参考になった資料を軽く紹介。まず前提として、僕自身もともとOpenGLのプログラミングを2年くらいやっていたということを理解していただく必要があります。もう4, 5年以上前の…

最大のテクスチャサイズ

メモ: iPhoneでつかえるテクスチャの最大サイズ 1024 x 1024 GLint maxTex; glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTex); NSLog(@"max texture size: %d", maxTex);

IPアドレスを取得

iPhone/iPodタッチのIPアドレスを取得する NSHost *localHost = [NSHost currentHost]; NSString *ip = [localHost address]; 自分のメモとして

iPhone Dev Forum Japan

iPhone Dev Forum Japan iPhoneアプリ開発者フォーラム : iPhoneアプリケーション開発に関する技術情報の交換を目的としたフォーラムAppleもiPhone開発者向けの公式フォーラムをスタートしたようですが、やっぱり英語でのやりとりは敷居が高いですよね。そん…

iPhoneをスリープさせない

一定時間、ユーザからの入力がないと、画面が消えロックされますよね。普通のアプリだと、そんなに問題にはなりませんが、ずっとスクリーンをぼーっと眺めているようなアプリ (KoiPondとかBloomとか?)だと、困ったことになります。そこで強制的にスリープさ…

ステータスバーを隠す

ステータスバー - iPhoneのスクリーンの一番上の時刻や電波の強さがでているバーゲームなどでフルスクリーンが必要な場合、このステータスバーを消すことになるかと思います。ステータスバーを消すのは簡単。 [UIApplication sharedApplication].statusBarHi…

追記 - dSYMファイルの使い方

以前のポスト - dSYMファイルの使い方 の補足です。実際に使ってみました。 http://d.hatena.ne.jp/iphone_dev/20080924/1222256965 最近リリースしたアプリがある操作をすると落ちるという苦情をいただきました。その方にお願いして、クラッシュログを送っ…

NDA 一部解禁へ

http://developer.apple.com/iphone/program/ に To Our Developersと題する文章が掲載されています。その中で、「すでにリリースされているソフトウェア」に関しては、NDAを撤廃するという発表がなされました。まだリリースされてないソフトウェアに関して…

近接センサーをつかう

UIApplicationのヘッダをチェックしていてありました! [UIApplication sharedApplication].proximitySensingEnabled = YES; 手や顔がiPhoneのレシーバーに近づくと、画面が消えてロックされます。それだけ。delegateとかでとれるといいんですけどね。

シミュレータと実機を区別するためのマクロ

CoreLocationをつかったアプリを書いていて面倒なのは、「シミュレータでは動かない」という点。ご存知かと思いますが、シミュレータ上でのCoreLocationは常にクパチーノのAppleの本社の緯度経度を返すようになっています。世界全体をターゲットにしたアプリ…

.dSYMファイルの使い方

iPhoneアプリのクラッシュログとして、デバッグシンボルが入ってない意味不明のログしか取り出せないことってないですか? そんなときに使えるかもしれないハックです。 iPhoneアプリをコンパイルした時にbuildフォルダの中のアプリのとなりに、.dSYMという…

viewLoadedとメモリ不足

開発していて、viewLoadedが何度も呼ばれてしまうという現象に出会いました。あるview AをUINavigationViewで表示 → view Bをpush -> view Bをpopしてview Aに戻るところで、view AのviewLoadedが再度呼ばれる。本来ならview Aが最初に表示されたときに呼ば…

AudioSession API

* 実機でしか動きません。シミュレーターではエラーが出るはずです。ご注意ください。ちょっとマニアックなAPI, AudioSession APIについてのサンプルプロジェクトを作ってみました。 iPhoneを使って最初に感動したのが、電話機能と他の機能のスムーズなイン…

すでに発売中のiPhoneアプリの販売を一瞬で取り消す方法

AppStore上で、すでに発売されているiPhoneアプリの販売を取り消すには、AppStore側にメールでその旨を伝え、Appleの認証を受けた上でアプリが消されることになっています。僕も一度やったことがあるのですが、アプリの販売を取り消すだけのために、1週間待…

AppStore販売用に EIN番号を取得する

AppStoreでアプリケーションを売るには、当然ながらApple/AppStoreとの契約が必要になります。そこで必要になるのが、銀行の情報と税金の書類です。特に厄介なのが税金。僕も詳しいことは分かってないのですが、http://blogs.oreilly.com/iphone/2008/06/qui…

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…