2011-06-21 11 views
4

プロジェクトに取り組んでいるとき、私は最初にUIやロジックを最初に扱うというジレンマに遭遇することがよくあります。 UIを最初に持っていると、論理を持っている最中に、最終製品がどのように見えるかがわかります。UI最初または最初のロジック?

しかし、必ずしも透明であるとは限りません。UIでは、ロジックのインプリメントよりもデータが実際に何を意味し、どのようなものかをシミュレートするのが難しい場合があります。開発とその理由どちらがより効率的で効果的ですか? (私はこの問題がiPhoneプロジェクトでますます増えています)

答えて

1

どちらもありません。

とにかく、プロジェクトの初めに、あなたが取る一般的なアプローチとあなたがサポートするオペレーションを決めなければならないでしょう。

これで十分ですが、ビューと基礎となるロジックの間のインターフェイスを定義していることになります。いくつかのインスピレーションのためにModel-View-Controllerアプローチを見てください。

あなたが早期に欲しいのは、目的を達成するためにロジックコードが行う必要のある基本的な操作です。通常は単純な関数呼び出しになりますが、それ以上の場合もあります。それはまずは​​っきりしています。

次に、動作する複雑なシステムは、動作する単純なシステムに基づいています。

基本的なロジック実装を最初にテストするために使用する基本的なUIが必要です。 メッセージを表示するボタン付きの簡単なフォームは基本的なものです。それから、成長し、機能を実装して、簡単なUIを追加してテストすることができます。

ロジックの小さな部分のロジックとUIが概念的に似ており、実装してテストしている間に両方を追跡するのが簡単になるため、両方を簡単に行うことができます。

最も重要な部分は、UIとロジックを分離したままにして、共通のインターフェイスで話すことです。これにより、必要に応じて素早く編集し、最後にGUIの外観を改善することができます。

好きではない場合は、UIをスクラップできます。あなたが書く必要があるだけに、それを実装しているので、あなたがやる方法を知っている同じインターフェースを使うだけでいいです。

また、UIとロジックが分離されていて、ロジック部分も十分にモジュール化されているため、大きな間違いを犯したことが分かった場合でも、コードの一部を取り戻すことができます。

まず、UIとロジックの両方を少しずつ増やし、モジュール化しておくことを考えてみましょう。

0

可能であれば、並行して。

個人的には、私はまず論理を提唱します。

0

最初は基本から始めます。これはロジックをコード化して最初に動作させることを意味します。これには2つの理由があります。

  1. 私はロジックが正常に機能し得ることができない場合は、かなりUIを持つことは無用であり、あなたが上で作業するときに私の時間の無駄
  2. あなたが最も可能性の高いUIを変更しますUIプロセスをより長く、より高価にする論理的側面
0

私は通常、最初にUIを取得します。理由?私は異なるデザインのプロトタイプとして、時々私のアイデアは、アプリケーションの変更。そうであれば、それは結果ではありません。書き換えるコードはありません。

ただし、アプリが動作するかどうかを判断するには、まずファンダメンタルズを取得すると便利な場合があります。それが機能しないなら、なぜインターフェイスを作るのに時間を費やすのですか?

1

反復。行ったり来たり。 UIは、ロジックやどのような制約があっても、どのように、また何を行うことができるのかを理解することで変更される可能性があります。適切な外観のUIの機能、動作、またはパフォーマンスの要件を変更すると、ロジックが変わることがあります。

モックアップがほとんど動作しない限り、できるだけ少なくしています。次に、それぞれのモックアップを使用して、適切なUIやロジックに関する私の仮定が正しいかどうかをテストします。最も欠陥のあるものを選択し、反復を開始します。

アップル社は紙面にUIをモックアップすることを提案しています。 (便利な消しゴムを持ってください...)

0

私はVizioのようなものでプロジェクトのさまざまな部分をレイアウトすることから始めます。

私は期待しているさまざまなビュー用のボックスを作成し、それらに含まれることを期待する情報を埋めます。

予想されるモデルオブジェクト(ロジック)用の別のボックスセットを作成します。私は彼らが作業すると期待している情報でそれらを埋める、私はそれが必要と思われるモデルとビューの間に線を描く。

オブジェクトグラフ(CoreDataを使用する予定がある場合)と同じことを行います。外部データベースを使用する場合は、データベース表に対しても同じことを行います。

視覚的にすべてをレイアウトすると、プロジェクトコンポーネント間の重要な機能や相互作用が欠けているかどうかを判断するのに役立ちます。後で私がやっていたことを追いかけるかどうかをすぐに知ることができます。 その点から、私はモデルの中で作業する傾向があり、ビューの一部を埋めるのに十分な作業が完了してから、モデルとやりとりできるようになるまでビューを操作します。

また、私がやらなければならない作業の総量を減らすために、複数の目的で再利用できるビューやモデルを特定しようとします。

0

アジャイルアプローチを採用し、少量の両方を反復で処理します。モノリシックなものを一度に構築しないように、プログラムの各機能部品をゆっくりと構築する。