iOS 4あたりから、iOSにおけるグラフィックプログラミングの土台がOpenGL ES1からES2に移行されました。ES2ではシェーダー言語を使った実装が基本となるため、ES1に比べて初心者にとっての敷居が高いのが問題で、それを解決できるかもしれない注目のフレームワークがGLKitだったわけです。残念ながらiOS 5が正式リリースされた現在、GLKitはAPIとして使える状態にはなっているものの、ドキュメントはフレームワークリファレンスのみで、なかなか公式資料が他にでてこないのが困ったところ…。 “GLKitの基本” の続きを読む
GLKitのテクスチャ
今までiPhoneでOpenGLアプリケーションを作るときに面倒だった要素の一つとして、テクスチャのロードの問題がありました。DirectX等はテクスチャを使いたい際に画像ファイルを指定するだけでそこから自動でテクスチャを生成してくれたりするのですが、OpenGLの場合はそういった機能は用意されていないので、iPhoneの場合も自分で画像ファイルを展開してからビットマップの配列に変換してテクスチャを生成する必要がありました。GLKitではテクスチャローダーというクラスが用意されていて、ファイルを指定するだけでテクスチャを使えるようになりました。便利。
なお、後述の通りこの部分に関しては公式ドキュメントと実際のSDKのAPIの仕様に差異があるため、不確かな情報となっています(2011.10.16現在)。十分に注意してください。 “GLKitのテクスチャ” の続きを読む
OpenGL Gameテンプレート解読
ついにiOS5がリリースされました。iOS5で新たに加わった機能は沢山ありますが、OpenGL周りではGLKitフレームワークが新たに加わり、プロジェクトテンプレートもGLKitを使ったものに変更されたので、GLKitに慣れる第一歩として早速そのプロジェクトテンプレートを解読していきたいと思います。 “OpenGL Gameテンプレート解読” の続きを読む
Mac Blu-ray Playerを買ってみた
なんとなくそろそろBlu-rayを見る環境が欲しいなあと思っていた所、Mac Blu-ray Playerが期間限定で安くなっていたので、購入してみました。あわせて外付けBlu-rayドライブも購入することに。
そんなにハードユースはしないかなと思ったので、性能は特別高くはないけれど省スペースでスマートそうに見えたMacbethのBlu-rayドライブを約1.6万で購入。
というわけで再生ソフトとドライブが手に入りBlu-ray再生環境は手に入ったものの、よく考えてみたらBlu-rayソフトを一本も持っていない。Amazonでなにか買ってみようかと思うものの、あまり購買意欲をそそられる商品もなく、結局さきほどようやくレンタルビデオショップで適当な映画を何本か借りてきて動作確認しました。
今日試したソフト(ナルニア国物語2)では日本語字幕まで再生できたし、映像もスムーズに再生できてなかなかよさげ。
しかしまだ映像の再生準備中にソフトがフリーズしてしまったり、再起動しないとドライブからディスクが取り出せなくなったり、まだまだソフト/ハードともに挙動が怪しい部分も残っているので、自信の無い人はもう少し様子見の方がいいかもしれないなという印象でした。
とはいえ、iMac(i5)の27インチ画面できれいな映像が再生できるようになったのはすばらしい!DVDとの画質の差は明らかです。問題は、Blu-rayで見たいと思うような作品が意外とないこと…。
iOSのウィンドウやビューの基礎クラス
iOSアプリケーションのUI絡みのクラスは、種類が多いので特にiOSアプリ開発をはじめてから日の浅い方々は全体像の把握に苦労していることが多いように見えます。アップルも公式ドキュメントを沢山用意していますが、この部分は量が非常に多く全体像が見えていないうちは目的の情報を探すのにも一苦労なので、基礎的な部分だけをまとめておこうと思います。 “iOSのウィンドウやビューの基礎クラス” の続きを読む
Objective-CでOAuthその3
OAuthConsumerの標準のデリゲート/セレクタを使う形の使い方は、実際に使ってみると可読性の低いコードになってしまったり、セレクタの名前を間違えてしまったりなどミスが発生しがちなので、OAuthConsumerをブロックに対応させるクラスを作りました。
例によって、使うときは無保証/自己責任で注意して使ってください。 “Objective-CでOAuthその3” の続きを読む
Objective-CでOAuthその2
OAuthConsumerの基本的な使い方を説明します。 “Objective-CでOAuthその2” の続きを読む
Objective-CでOAuthその1
Twitter等の最近の外部サービスではクライアントアプリからの認証にOAuthを使うことが多くなってきました。Objective-CではOAuthConsumerというライブラリを使うことでOAuthによる認証を実現することができますが、ドキュメント類が少なかったり若干癖のあるライブラリなので、ここに使い方を書いておこうと思います。
なお、ここで説明している方法は僕が勝手に解釈/試行錯誤した結果たどり着いた方法であり、OAuthConsumerが公式に説明している情報に基づいたものではありません。なにか問題があっても責任はいっさいとれないので、自己責任のもと注意して使ってください。
“Objective-CでOAuthその1” の続きを読む
Mac上にnode.jsの開発環境を作る
node.jsのインストール
node.jsの最新の開発用環境をMac上に用意します。
brew install node.js
node.jsはbrewでサクっとインストールすることができました。インストール後のメッセージで/usr/local/lib/node_modulesをNODE_PATHに入れろ、とのことなので~/.profile上に記述しておきます。
export NODE_PATH=/usr/local/lib/node_modules
これだけの手順なので間違える余地もあまりないですが、インストールに成功すると、nodeコマンドが使えるようになります。
node -v
npmのインストール
node.js単体で使っても面白くないので、便利なライブラリ群を使うためnpmもインストールします。(所謂gemみたいなnode.js用のパッケージ管理システムです)
npmに関しては現在はbrew上ではインストールできなくなっているため、別途下記のコマンドでインストールします。
curl http://npmjs.org/install.sh | sh
ちなみに、諸々の事情でメインの開発環境はSnow Leopardのままにしているため、上記のインストールもSnow Leopardマシンでのみ試しています。
なお、ウェブ上で見つかるnpmの説明に関しては1.0より前のバージョンのものと1.0以降のものが混在しているため、注意が必要です。(npmで-gオプションをつけずにインストールした後にコマンドラインからコマンドを叩くような手順があったら、それは1.0より前のバージョンの説明です)
node-mysql
node.jsアプリからmysqlデータベースにアクセスするには、node-mysqlを使います。 “node-mysql” の続きを読む