2011-08-08 8 views
9

私はちょうど非常に素晴らしい、完璧にデザインされたiPhoneアプリを書いたので、豊かなものにするために、私はポンツーンボートと水着モデルとヘリコプターで大忙しになります。私は、iPadとiPhoneの両方の普遍的なアプリに変換して、より多くの現金を作りたいと思っています。普遍的なアプリケーション(iPad/iPhone)を設計する際の優れた方法

私はこれをやっていて、怠惰なプログラマーです。私がすでに書いたコードの再利用を最大限にしようとしています。私はそれをほとんど再利用できると思っています。しかし、コントローラークラスで変更する必要があることは常に少しあります。または、コードの臭いのように見えるUI_USER_INTERFACE_IDIOM()の絶え間のチェックがあります。

同時に、私はiPadのバージョンが大きなiPhoneのバージョンであってはならないと思います。ほとんどの場合、異なるUIが確かに保証されますが、ダイアログを再利用したい場所やビュー階層全体が存在します。

私はコミュニティに尋ねます。私のアプリが最小限の調整で普遍的なものになることを保証するために従うべき良い事例は何ですか?

答えて

5

は、Mは明らかに(あまりにもM⇔C関係のほとんどをして)iPhoneとiPadの間で共有されています。

異なるUIは異なる意味を持つ。Vと異なるV⇔C

いくつかのアイデア:

  • あなたがInterface Builderのに興味があれば、iPhoneのUIとiPadのための別の1のための1つのペン先を使用しています。

  • ビューの理解が十分にある自動サイズ調整マスク。正しい値では、多くの場合、ビューレイアウトコードの大部分を取り除きます。

  • 手動でビューを配置したり、カスタムビューを描画するときは、絶対値を使用しないでください。 myView.frame = CGRectMake(0,0, 320, 480)はiPadなどではうまくいかないかもしれません。

  • あなたは、少なくともiOSの3.2、接尾お使いのデバイス固有のリソース~ipadまたは~iphoneの開発目標を持っている場合。あなたは一般名を使ってそれらを得ることができます。


AwesomeView~ipad.xibAwesomeView~iphone.xibで 、あなたは[[AwesomeViewController alloc] initWithNibName:@"AwesomeView" bundle:nil]を書くことができます。画像について
同じこと(そしてfoo~ipad.pngfoo~iphone.png[UIImage imageName:@"foo"]

私はこれらの点のほとんどは明白ですが、彼らはかなりの時間を節約する私のためにしてきたかなり確信しています。ユニバーサルアプリは、実際にメンテナンスの悪夢になり、それらの間の唯一のモデルと、1に詰め2つのアプリケーションであること:私は怖いものだ

2

私が見つけたのは、同じアプリのiPhoneとiPadのUIが大幅に異なるということです。画面の不動産やその他の面での違いは、実際には異なるアプローチを求めています。それ以外の場合は、私はiPhoneと比べてiPadのための別個のビュー(スクリーン)を少なくすることになります。 (私は途中でヘリコプターで乗るのが大好きです)。あなたはMVCパターンに従っ仮定し

+1

。 – ageektrapped

関連する問題