2011-01-22 7 views
7

私はすぐに中規模のiOSプロジェクトを開始します。ドキュメント中心のアプリです。クロスプラットフォームiOS/Mac OS X Objective-C開発ですか?

その後、ソフトウェアはもちろんのMAC OS Xに移植される可能性があります、全体のUIは変更する必要があります。それは私が求めているものではありません。

それは、クロスプラットフォームのような方法で、コアロジックを記述することは可能です(マック/ iOS版のみ)、またはより簡単に移植しますか?誰も前にこれをやったことがありますか、あるいは両方のプラットフォーム用に異なるコードを書くのは普通の方法ですか?

私はこれについて、任意のヒントのために感謝して、彼らはコード、フレームワーク、バージョン管理についても - 何でも。私は自分自身を事実の後にだけコーナーに描いたことを実感したくないので、できるだけ早く始めたい。

+0

この投稿を参照してください:http://stackoverflow.com/questions/1939/how-to-articles-for-iphone-development-objective-c –

+4

@Dave Everittあなたは実際に*質問を読んでください - それは完全にオフです-トピック。 –

答えて

9

最初のステップは、MVCパターンに付着することです。あなたが言うように、ビューはしばしばiOSとOS Xの間で書き直す必要がありますが、モデルレイヤーとコントローラの一部は再利用できます。

ファンデーションとコアデータはiOSとOS Xで共有されるため、モデルレイヤを管理する共通のObjective-Cコードを書くことは問題ありません。たとえば、ディスクにデータを保存したり、ネットワークからのそれらなど

一つの重要な点は、主に、あなたのビューコントローラで直接モデルレイヤを扱うロングっぽいコードセグメントを書き込むために衝動に抵抗することです。そのlong-ishコードセグメントは、モデルレイヤー上で単独で動作するメソッドに抽象化することができます。後でそのコードをOS Xアプリケーションで再利用することができます。

例えば、私が示す文書を管理するビューコントローラを作成するとします。次に、編集操作に対応するビュー・コントローラーで定義されたアクション・メソッドで、モデル・レイヤーの詳細を直接調べて、編集操作を実装することがあります。次に、ビューコントローラがウィンドウコントローラ(またはNSDocumentサブクラス)に移植されたときに、ソースコードをかなり変更する必要があります。むしろ、iOSアプリケーションのビューコントローラとOS Xアプリケーションのウィンドウコントローラの両方からそのメソッドを呼び出すことができるように、ドキュメントオブジェクト自体の内部でその特定の編集操作のためのメソッドを実装します。

+0

こんにちは、 ) –

2

あなたはちょうどあなたが両方のメイン、仕事で、意志を作成するIOS、OSX、ジャワ、アンドロイド、...

+1

私は、自分のアプリケーションの1つのモデル(MVCの)部分でこれを行っています。プレーンCは、Mac Classic、OS X、iOS、Androidの下のNDK、PalmOS、webOSのPDK、LinuxのコマンドラインなどのUIラッパーの内部で動作します。 – hotpaw2

3

にポートを、その後、Cのいずれかの純粋なロジックと「モデル」レベルのクラスを書くことができますiOSとMac OS X、Cocoaクラスに固執していれば、両方のシステムに共通のSQLite/Core Dataなどのメソッドがあります。つまり、iOSファイルシステムは大量にサンドボックス化されています。これはOS Xの制限ではなく、ドキュメント中心のアプリで対処する必要があります。

しかし、あなたが言うように、UIレベルのクラスは、iOSがOS XのさまざまなNSクラスと比較してさまざまなUIKitクラスを使用して、両方のシステムで完全に異なっています。したがって、共有することはできませんそのレベルではかなりです。

2つのプロジェクト間でコードを共有するという点で、下位レベルのオブジェクトなどの「一般的な」プロジェクトを作成して、これをiOSおよびMac OS Xプロジェクト内の参照として追加することができます物事が分かれば(私は彼らがそうかもしれないと思う)多少苦しいことを証明する。それにもかかわらず、主にiOS側に焦点を当てていますが、読んだりする価値があるClint Harrisの "Easy, Modular Code Sharing Across iPhone Apps: Static Libraries and Cross-Project Reference s"というこのトピックに関する良いブログ投稿があります。

2

私はこれについてあまりよく分かりませんが、他の人はもっと知っているかもしれませんが、iOSからMacにプロジェクトを移したければ多分UMEKitが助けになるかもしれません...

+0

興味深いリンク、ありがとう。しかし、このコンセプトは私にとっては間違っているようだ。iOS Touchデバイスのインタフェースの制限と要件(および可能性)とユースケースは、デスクトップと大きく異なるため、小さなユーティリティでは本当に妥当と思われる。編集:UMEKitは、ほとんどのクロスプラットフォームソフトウェアで最も大きな問題の1つを実装しています。プラットフォームのネイティブUIを無視します。非常に小さいツールではOKですが、それ以上には有害です。 – fzwo

関連する問題