web-dev-qa-db-ja.com

iOS(iPhone)アプリをMacに移植しますか?

これについて行くための好ましい方法はありますか?

問題のアプリは大きすぎません。 。 。私が数ヶ月の間に書いたシングルプレイヤーゲーム。

編集:私はMac開発の経験がないことを追加する必要があります。 。 。 iOS開発者であることに自然に伴うものの外に。

編集:ゲームで頻繁に使用されるクラス:NSObject、UIView、およびUIViewControllerのサブクラス。 NSViewについてはよくわかりませんが、UIViewのすべてがそのクラスで機能すると確信しています。また、UITableViewControllerのいくつかの使用。 Game Centerもありますが、今のところその部分は省略できます。マルチタッチはありません。

編集:私のグラフィックは、QuartzCoreおよびCoreGraphicsフレームワークにあるすべてのものです。私は適度なビュー階層を持っています。

編集:あなたがそのような移植をしているなら、あなたはまた メモリ管理 の問題に興味があるかもしれません

37
  1. 簡単な方法はありません。それはとても簡単です。気のめいるように、あなたは単にMacのプログラミングが上手になる必要があります。

  2. 「すべてのUIViewのものがそのクラスで機能すると確信しています」-残念ながら、違います。あなたが一生懸命働かなければならないのに十分なほどすべてが異なります。

楽しいギグではありません。あなたが本当に、本当にそれが経済的に価値があると本当に思うことを確認してください。

IOSアプリで多数のビューを積み重ねる場合は、他のこととは別に、「兄弟ビューがOSXで機能しない」という問題に注意してください。基本的に、電話のあちこちにネストされたビューの階層に依存している場合は、Macで(単なるビューではなく)レイヤーを使用するように変更する必要があります。

このリンクをクリックしてください: 重複するNSView兄弟を処理する適切な方法はありますか? その特定の問題の厄介な詳細については!

25
Fattie

http://chameleonproject.org/ IconfactoryのUIKitforMacはチェックする価値があります。

「カメレオンは進行中の作業です。フレームワークは現在、9か月の作業後にUIKitの約60%を実装しています。」

https://github.com/BigZaphod/Chameleon

14
Lloyd Dewolf

あなたはあなたの前にたくさんの仕事があるかもしれません。純粋にアルゴリズムのクラスは変更なしで移植されますが、UIKitに触れるものはすべて書き直すか、大幅に調整する必要があります。 OSXのUIクラスの設計パターンは、ビュー間の関係のパターンであり、コードがコントローラーの管理を担当します。 iOSでは、これはビューコントローラー間の関係の1つであり、ビュー管理が暗示されます。

もちろん、BoltClockが述べたように、相互作用の問題があります。タッチが機能しなくなったため、移植を開始する前であっても、最初にインタラクションモデルで作業する必要があります。

4
Dave R

他の人が言うように、移植は雑用になる可能性があります。ただし、一般的な手法は機能します。 Interface Builder(該当する場合)でインターフェイスを再設計し、さまざまなコントロールが何と呼ばれるかを確認します(CocoaTouchには一般的なデスクトップコントロールの小さなサブセットしかありません)。 UI *は通常NS *になります。テーブルビューの委任は似ているので、おそらく簡単でしょう。

いつものようにアーロンヒレガスの本をお勧めしなければなりません。これはMac開発の優れた入門書であり、iOS開発を知っているとEdgeが得られます。

ゲームなので、フルスクリーンモードの作り方を考える必要があるかもしれません。ゲームは必ずしも画面全体を占める必要はなく、強制するべきではありません。まったく新しい設定のセットが必要になります。もちろん、Snow Leopardで解決策の一覧表示/変更を処理する新しい方法があるので(以前の方法では非推奨の警告が表示されます)、いくつかの「楽しみ」が関係しています。

すべてが「クリック」されるまで、おそらく長い移行期間があることを受け入れてください:)

2
orb

いくつかのUIクラスの移植に役立つオープンソース(BSD) MEKit ライブラリが存在しますが、マウス/キーボード/マルチウィンドウをより適切に処理するには、かなりの量のUIを書き直す必要がある場合があります。/menuGUI環境。基本的なNSObject、および一部のOpen GLおよびQuartzグラフィックスレンダリング)は、わずかな修正で移植できます。

2
hotpaw2