iOSとOS Xはどちらかができればもう片方もそれほど難しくはないのか

iOSのアプリの開発とOS Xのアプリ開発のどちらか片方ができれば、GUI絡みの部分を除けばだいたいのことはもう片方でも比較的容易にアプリ開発ができるようになる。というのは、OS XではCocoa、iOSではタッチパネルに特化したCocoa Touchを使うため、基本的なAPI部分では互換性がある程度確保されているからである。そのため、GUIが絡まない部分では、多くの場合、iOS向けに書かれたコードがOS Xでも改修なし、あるいはわずかな手直しでそのままビルドが通り、実行することも可能なほどである。

一方で、iOSとOS Xにおいて、GUI絡みの部分では互換性に乏しい部分がある。まず、UIを扱うフレームワークが、OS XではCocoa(正確にはその一部)となっているのに対して、iOSではUIKitとなっている。これは、OS XとiOSではGUIの方向性が大きく異なることに起因する。前者であればキーボードとマウス、あるいはトラックパッドで操作することを前提としているのに対して、iOSではタッチパネルで操作することを前提としているからである。また、UI関連のクラスのプレフィックスがOS XではNSで始まるのに対して、iOSではUIで始まる点も挙げられる1 。この点は要注意であり、NSImageで使えるメソッドおよびプロパティーが、UIImageでは使えなかったり、その逆も往々にしてある。

また、OS XとiOSでは座標の扱い方も異なる。デフォルトではOS Xでは左下が起点、iOSでは左上が起点となっている。そのため、OS XにおいてiOSのように左上を起点とする場合は、以下のようなメソッドを実装して左上を起点とするように対応をしなければならないが必要になる。

[code lang=”objc”]- (BOOL)isFlipped
{
return YES;
}[/code]

これらのように、必ずしもiOSとOS XではGUI部分を中心に注意しなければならない部分があるものの、多くの場合でコードを共通化できるという利点があるので、その点を活かした開発をしたいところである。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しております。仕事依頼や相談などについては、Contact Formよりお願いいたします。
  1. 画像オブジェクトであれば、OS XではNSImage、iOSではUIImage []
スポンサーリンク

フォローする