1

iOS と OSX のコードの 99% を再利用したいアプリを作成しています。健全性チェックを求めるだけです。

(編集)一部の応答に影響を与える可能性のある私のプロジェクトに関するもう少しの情報:私のアプリには、主にiOSデバイス向けのカスタマイズ可能なプレゼンテーションが含まれています. OSX コンポーネントは、実際には、カスタマイズ可能なプレゼンテーション (選択した iOS デバイスで何を表示するかを指定する方法) のデザイナーです。つまり、OSX アプリは完全に通常の OSX アプリであり、ユーザーは iOS デバイスの一部の要素を選択、構成、および配置でき、そのプレゼンテーションのプレビューが表示されます。もちろん、プレビューを iOS のレンダリングにできるだけ近づけたいと思っています (すべての OSX デバイスで利用できるとは思わない iOS シミュレーターを実際に起動する必要はありません)。そこで、OSX と iOS の両方で可能な限りほぼ同じようにレンダリングされるビューとしてプレゼンテーションを設計しました。

この目的のために、私は iOS でいくつかの単純なビュー描画を開始し、現在は OSX に移植できるようにコードを再構成しています。これまでの私の戦略は、UIView / UIWindow / UIFont / UIColor などへのすべての参照を _View / _Window / _Font / _Color などに置き換えることです。iOS バージョンの場合、Wrapper.h というファイルを次のように含めます。

#define _Device UIDevice
#define _Application UIApplication
#define _ApplicationMain UIApplicationMain
#define _ApplicationDelegate UIApplicationDelegate
#define _Responder UIResponder
#define _Window UIWindow

...OSX の NS ベースの定義 (NSWindows など) では、いくつかの詳細 (ビューの Y 座標など) が変更されることはわかっていますが、対処できます。

OSXには同等のものがないため、そのようにマッピングできないと思う唯一のコンポーネントはジェスチャ認識機能です。OSX ではタップ イベントは本当に必要ないので、iOS ラッパーで実装され、OSX ラッパーでスタブ化された汎用呼び出しにすることを計画しています。

良いアイデア?悪いアイデア?これに取り組むより良い方法はありますか?ありがとう...

4

1 に答える 1