UI First还是逻辑第一?

时间:2011-06-21 18:02:12

标签: iphone user-interface process

在处理项目时,我经常遇到首先在UI上工作或在逻辑上工作的困境。首先有UI可以很好地概述最终产品的样子,而逻辑首先揭示了技术中可能出现的任何障碍。

但是,它并不总是那么清晰......有时候UI可能需要填充数据才能真正显示它意味着什么,模拟数据可能比实现逻辑更难。你最喜欢的开发方法是什么为什么?哪个更有效率? (我对iphone项目越来越多地看到这个问题)

7 个答案:

答案 0 :(得分:2)

在两者之间迭代(逻辑和UI)。来来回回。当您了解如何以及可以对逻辑做什么以及可能出现的约束时,UI可能会发生变化。当您更改易于使用,响应迅速且体面的UI的功能,行为或性能要求时,逻辑可能会发生变化。

我通常会尽可能少地做每件事,直到我有一些几乎没有工作的模型。然后我使用每个模型来测试我对正确的UI和/或逻辑的假设可能是对还是错。挑选最有缺陷的,并开始迭代。

Apple建议首先在纸上模拟用户界面。 (有橡皮擦方便......)

答案 1 :(得分:2)

都不是。

无论如何,你必须在项目开始时考虑一下,决定你将采取的一般方法以及你将支持哪些操作。

做得相当好,你将定义视图和底层逻辑之间的接口。看看Model-View-Controller方法可以获得一些灵感。

您希望早期获得的是了解逻辑代码为实现目的需要执行的基本操作。通常它将是一个简单的函数调用,但有时它可能涉及更多。先清楚一点。

接下来,一个有效的复杂系统基于一个有效的简单系统。

这意味着您需要拥有一个基本UI,您将首先使用它来测试基本逻辑实现。 一个带有按钮的简单表单就足够了。然后,它可以增长,您实现了一项功能,然后添加一个简单的UI,您可以使用它进行测试。

更容易一个接一个地做,因为一小部分逻辑的逻辑和UI在概念上是相似的,并且在实现和测试时很容易跟踪它们。

最重要的部分是保持UI和逻辑分离,使它们通过通用接口进行通信。这将允许您在需要时进行快速编辑,并在最后改善GUI的外观。

如果你不喜欢它,你将能够更好地废弃UI。您需要做的就是使用相同的界面,一个您知道如何操作的界面,因为您编写了它并且您已经实现了它。

如果在某些时候你意识到你犯了一个大错误,你仍然可以挽救部分代码,再次因为UI和逻辑是分离的,并且希望逻辑部分也足够模块化。

简而言之:首先考虑一下,以较小的增量完成UI和逻辑,并保持模块化。

答案 2 :(得分:0)

如果可能的话,并行。

但就个人而言,我首先提倡逻辑。

答案 3 :(得分:0)

我首先从基础知识开始,这意味着首先获得逻辑编码和工作。这有两个原因:

  1. 如果我无法让逻辑正常工作,那么漂亮的用户界面就没用了,浪费我的时间
  2. 当您处理逻辑方面时,您很可能会更改UI,从而使UI流程更长,更昂贵

答案 4 :(得分:0)

我通常先按顺序获取用户界面。原因?当我对不同的设计进行原型设计时,有时候我对应用程如果确实如此,则没有任何后果 - 没有代码可以重写。

但是,有时候首先获得基础知识是有帮助的,以确定应用程序是否能够正常工作。如果它不起作用,那么为什么要浪费时间制作接口呢?

答案 5 :(得分:0)

我喜欢从像Vizio这样的项目的不同部分开始。

我为我希望拥有的不同视图制作方框,并用我希望它们包含的信息填充它们。

我为我期望的模型对象(逻辑)创建另一组框。我向他们提供了我希望他们将使用的信息,并且我在模型和视图之间绘制线条,我认为这是必要的。

我对对象图(如果我计划使用CoreData)和数据库表做同样的事情,如果我要有一个外部数据库。

直观地布置所有内容有助于我确定是否缺少项目组件之间的任何重要功能或交互。如果我后来忘记了我在做什么,它还能让我快速参考。 从那时起,我倾向于处理一个模型,直到它有足够的时间来填充视图的一部分,然后我处理一个视图,直到它可以与模型交互。

我还尝试识别可以重复用于多种目的的视图或模型,以便减少我必须完成的工作量。

答案 6 :(得分:0)

采用敏捷方法,并在迭代中处理少量两者。慢慢构建程序的每个功能部分,以便不立刻构建任何单片。