iPhone開発とコード移植性

・アプリ層
・高レベルライブラリ層(ハード非依存)
・低レベルライブラリ層(ハード依存、API系のラッパーなど)

みたいな3層に分けて、低レベル(ハード依存)部分のみ、各ハード向けに書き換えればいいとかいうのが、とりあえずシンプルか。


objective-Cだと、Cの構文はほぼそのまま使用できる上に(.mファイル上でも)、.cファイル自体をそのままプロジェクトに組み込んで、コンパイルも可能。当然、objectiveC側(.mファイル)から呼び出しも可能だし、逆にobjectiveCで書かれた関数を、c側で呼び出す事も可能。
(要はCで書かれているライブラリやパーツなら、さっくりcocoa-toutchプロジェクトに組み込める)

またobjectiveC++ (.mm)を使うなら、C++構文とobjeciveC構文の混在が可能。

objective-C使うのは低レベルのみにしといて、上位層はCオンリーで作成したりとかすると、とりあえず簡単に多機種へも移植できるようなフレームワークにはなる気がする。
グラフィックデータやらなんやらを多機種との親和性を取らないといけないんで、独自フォーマットを使うか、fbxみたいなOpenなフォーマット使うとか色々考える事はあるが。
その辺は、ファイルIOとか、独自のmath関連(行列計算)とかを低レベルに押し込んで、それ使って実装するようにすれば、原理的には、どのハードでも動くはず。

僕は基本的に標準UIはあまり使わなくてすむ、ゲーム系アプリばかり作る予定なので、そういう人は大体こんな感じになるのかとも思う。

あと、DSやらPSPやらの開発経験してる人だと、iPhoneOpenGL/ESは入っていきやすいかもね。ポリゴンいじる分にはほぼ同じ感覚でいけると思う。

Mono + C# + UIKit とか使えそうだけど、検証すんでないし、とりあえず確実に足場がある方向に進む。