Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UI优先还是逻辑优先?_Iphone_User Interface_Process - Fatal编程技术网

Iphone UI优先还是逻辑优先?

Iphone UI优先还是逻辑优先?,iphone,user-interface,process,Iphone,User Interface,Process,在进行项目工作时,我经常会遇到这样的两难境地:先处理UI还是先处理逻辑。首先使用UI可以很好地概述最终产品的外观,而首先使用逻辑可以发现技术中任何可能的障碍 然而,它并不总是那么清晰。。有时,用户界面可能需要填充数据以真正显示其含义,模拟数据可能比实现逻辑更困难。。您首选的开发方法是什么?为什么?哪个更有效? (我在iphone项目中越来越多地看到这个问题)如果可能的话,并行进行 但就我个人而言,我主张逻辑优先。我首先从基本原理开始,这意味着首先要对逻辑进行编码和工作。原因有两个: 如果我不能让

在进行项目工作时,我经常会遇到这样的两难境地:先处理UI还是先处理逻辑。首先使用UI可以很好地概述最终产品的外观,而首先使用逻辑可以发现技术中任何可能的障碍

然而,它并不总是那么清晰。。有时,用户界面可能需要填充数据以真正显示其含义,模拟数据可能比实现逻辑更困难。。您首选的开发方法是什么?为什么?哪个更有效?
(我在iphone项目中越来越多地看到这个问题)

如果可能的话,并行进行


但就我个人而言,我主张逻辑优先。

我首先从基本原理开始,这意味着首先要对逻辑进行编码和工作。原因有两个:

  • 如果我不能让逻辑正常工作,拥有一个漂亮的UI是无用的,也是浪费我的时间
  • 在处理逻辑方面的工作时,您很可能会更改UI,从而使UI过程更长、更昂贵

  • 我通常先把UI整理好。原因是什么?当我设计不同的原型时,有时我对应用程序的想法会改变。如果是这样的话,那就没有什么后果了——没有代码需要重写

    然而,有时先了解基础知识有助于确定应用程序是否正常工作。如果它不能正常工作,那么为什么要浪费时间制作接口呢?

    在这两者之间迭代(逻辑和UI)。来回地当您了解如何使用逻辑以及可能存在的任何约束时,UI可能会发生变化。当您更改易于使用、响应迅速且外观良好的UI的功能、行为或性能要求时,逻辑可能会发生变化

    我通常尽可能少地做每一个,直到我有一些勉强工作的模型。然后,我使用每个模型来测试我对正确的UI和/或逻辑的假设是否正确。选择最有缺陷的,并开始迭代


    苹果建议先在纸上模拟用户界面。(随身携带橡皮擦…

    我喜欢先用Vizio之类的东西来布置项目的不同部分

    我为我期望得到的不同观点制作了框,并用我期望它们包含的信息填充它们

    我为预期的模型对象(逻辑)制作了另一组框。我用我希望他们使用的信息填充他们,并且在我认为必要的地方在模型和视图之间画线

    我对对象图(如果我打算使用CoreData)和数据库表(如果我打算使用外部数据库)做同样的事情

    将所有内容以可视化的方式进行布局有助于我确定是否缺少任何重要的特性或项目组件之间的交互。如果我后来不知道自己在做什么,它也会给我一些可以快速参考的东西。 从这一点来看,我倾向于在模型上工作,直到它完成足够的工作来填充视图的一部分,然后我在视图上工作,直到它能够与模型交互

    我还尝试识别可用于多种用途的视图或模型,以便减少所需的总体工作量。

    两者都不是

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

    做得相当好,您就已经定义了视图和底层逻辑之间的接口。看看这个方法,你会得到一些启发

    您希望尽早了解逻辑代码需要执行哪些基本操作才能达到目的。通常它是一个简单的函数调用,但有时它可能涉及更多。先说清楚

    接下来,工作的复杂系统是基于工作的简单系统

    这意味着您首先需要有一个基本的UI来测试基本的逻辑实现。 一个简单的表单和一个显示消息的按钮就足够了。然后,它可以增长,您可以实现一项功能,然后添加一个简单的UI来测试它

    这两件事一件一件地做比较容易,因为一小段逻辑的逻辑和UI在概念上是相似的,并且在实现和测试时很容易跟踪这两件事

    最重要的部分是保持UI和逻辑的解耦,使它们通过一个公共接口进行对话。这将允许您在需要时进行快速编辑,并最终改善GUI的外观

    如果您不喜欢UI,您将能够更好地放弃它。您所需要做的就是使用相同的接口,因为您编写了它,并且已经实现了它,所以您知道如何使用该接口

    如果在某个时候你意识到你犯了一个很大的错误,你仍然可以挽救部分代码,同样是因为UI和逻辑是解耦的,并且,希望逻辑部分也是模块化的


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

    采用敏捷方法,在迭代中处理少量的UI和逻辑。慢慢地构建程序的每个功能块,以避免一次构建任何单片