如何制作一个优秀的UI界面

一个好的交互设计对产品的成功起着关键作用。UI做什么是用户最先接触到的,也是普通用户唯一接触到的。用户对界面视觉效果和软件操作方式易用性的关注远远大于他对底层用什么样的代码实现的关注。如果说程序是一个人的肌肉和骨骼,那么UI设计就是一个人的外貌和性格!是成功软件产品不可或缺的一部分!对于我来说,我对程序不是很了解,所以我只是从整体上谈谈UI设计和软件产品的关系,以及如何让软件产品得到最好的UI设计。目前我们的软件产品有些问题有技术上的问题,但更多的问题来自于各部门和项目组的配合。在我们现有的开发流程中,客户的需求一般由市场部提出,产品设计师提出产品设计报告,开发部门设计开发方案,每个团队单独开发一个模块,最后集成为一个完整的软件产品。UI设计应该参与到这些流程中的哪个环节,每个环节应该在多大程度上让产品获得最佳的UI设计效果?下面我们将详细分析每一部分。首先,分析当前存在的问题。在一些软件产业发达的国家,软件产品的UI设计过程贯穿于软件开发的全过程,必不可少。在中国,产品的UI设计并没有被广泛接受。甚至一些有UI设计师的企业,对产品的UI也不够重视。一般来说,大部分都是着眼于如何用代码实现所需的功能。在我看来,这只是一个成功软件产品的一部分。一个优秀的软件产品的开发过程应该由四部分组成:1。软件产品设计(商业建模)2。系统设计(技术建模)3。子单元开发(将软件的所有部分分解成子单元来编写代码)4。测试(分为单元测试、系统集成测试和产品功能测试),这些都是软件研发部门所做的工作。软件开发过程除了以上四个部分,还有用户需求和用户验收测试,由市场部门和产品用户共同完成。所以用代码实现产品功能(编码过程)只是软件开发的一个步骤。现在让我们回到UI设计的角度。作为UI设计师,我们需要一直参与到软件开发过程中,而不仅仅是某一步。现在在大多数软件公司,UI设计师只是在编码产品的时候才实质性的参与软件开发过程。在其他步骤中,我只是参与或者根本不参与(这里我要强调的是,“参与”和“参与”是两个不同的概念,“参与”是指完全加入开发行列,开始进入设计阶段,而“参与”是指只是列席会议或者提出一些简单的意见,并没有开始进入设计阶段),这将大大降低软件产品的开发效率,使开发成本翻倍,甚至导致整个产品的失败!这不是危言耸听。我们来分析一下在一个软件产品的开发过程中,UI设计应该做些什么,能在多大程度上避免上面提到的问题?接下来,我将根据软件开发的流程来解释上述问题。刚才我提到了软件开发过程中的几个步骤:1。产品建模2。技术建模3。模块化开发4。测试,所以我们也将在这四个部分中讨论它们:1 .产品建模期:我们先来了解一下“输入”和“输出”,这是UI设计中非常重要的两个概念。人们经常来找我说,“我们有一个软件产品需要美化”,然后就没有进一步的解释了。就这一句话就开始了我的工作,但是这个软件是给谁用的呢?这是什么?我们什么都不知道!一个成功的UI设计首先要有一个完整的“输入”。怎么才能称之为完整的“输入”呢?UI设计师有必要从整个软件产品的规划阶段就参与进来。当产品用户(即顾客)向市场部或产品部提出产品需求时,他们就会开始参与产品的规划和开发过程。这部分是UI设计师的第一个输入阶段,在这个阶段,UI设计师也需要对产品交互设计提出一些意见。以便产品部门在设计产品时,更多地考虑产品的交互和功能简单表达的原则。很多软件在设计阶段就加入了很多无用的附加功能。其实好的软件设计就是用最简单的结构实现用户的想法。一些不必要的功能看起来很花哨,往往会影响用户的判断。这是产品优化的一些概念。这里我需要简单提一下,如果想深入学习,可以看一些关于产品优化的书,甚至是关于心理学的书。很多人认为软件优化就是代码优化(用最少的代码实现产品功能)。在我看来,这只是程序的优化,而不是整个软件产品的优化。产品优化包括交互设计。目前大部分软件公司都没有专门做这部分的交互设计师,所以这部分往往被忽略。我觉得这部分应该由UI设计师来承担。文章一开始我就说过UI设计不仅仅是图形界面的设计。即使企业中有这样的优化师或者交互设计师,也要配合UI设计师完成产品交互设计。作为UI设计师,设计的时候一定要考虑产品的交互性和可用性!言归正传,产品设计师往往不会过多考虑简单易用的原则,也就是产品会以什么样的组合形式呈现给用户,这是UI设计师考虑最多的,所以UI设计师在产品建模时一定要参与设计,给产品设计师一些意见。作为一名优秀的UI设计师,在了解产品的需求之后,应该对这个产品的使用环境和用户群体的使用习惯有更深入的了解。我们还需要了解市场上同类软件产品的设计方案,研究它们的优缺点,以便我们在设计时吸取它们的优点,避免它们的错误。产品建模后,产品设计师通常会给客户一个功能性的设计说明。往往这种解释只是字面上需要客户去想象和理解,会造成很大的隐患。有些客户根本听不懂你的讲解,甚至不认真听,因为他们根本听不懂。在讨论中,他们往往认同产品设计师的所有设计思路,但在产品测试时,他们会提出各种不满。我觉得这是普通软件公司会遇到的最麻烦的事情,但也不能怪客户。我说客户只关心视觉效果和软件的操作,而不关心我们如何实现这一切。这种情况的直接后果是,产品开发的成本在反复修改后翻了一番。如何避免?这要看UI设计师了。俗话说“眼见为实,耳听为虚”,所以UI设计师有必要对产品的整体效果进行演示。这个demo可以用图片的形式表现出来,我们只需要拼凑出产品界面来体现,因为这并不是产品的最终外观,只是帮助产品设计师向客户解释产品设计。在产品建模期间,UI设计师要了解客户的需求、想法和产品设计师对产品功能的要求,深入了解产品,收集用户的使用需求、使用环境和使用习惯,了解市场上同类产品的设计并分析其优缺点。协助产品设计师完成产品建模过程,制作产品演示demo模拟用户的操作过程和主要功能的界面呈现,生成交互原型(基本上产品交互性和易用性的问题需要在产品建模期间解决)。如果时间允许,我们甚至可以提出一份“UI设计分析报告”,可以附在产品设计说明中,帮助客户更有效地了解我们的产品设计,帮助开发者更好地按照UI的整体要求完成开发工作。这个时期的关键是“交互设计”。2.技术建模期:在这个时期,作为UI设计师,我们已经了解了软件产品的功能需求,得到了产品设计师的产品设计描述,可以进入界面风格的设计过程。这时候就要更多的考虑产品的整体风格和界面设计,通常我们会制定几个方案供客户选择。有些客户会要求产品遵循一个整体的VI设计标准,所以我们需要按照一个整体的设定风格来设计软件界面,要和客户公司的企业形象保持一致。在这个时期,软件的UI设计进入了艺术设计阶段。我们需要制定整个软件的风格,塑造软件的整体形象,详细描述每个界面中的元素和布局、字符和字体。这个阶段我不应该说太多,主要是每个UI设计师充分发挥your的艺术特长,用最简单漂亮的界面来表达软件产品。需要注意的是,我们在设计整体风格的时候,一定要深刻理解这个产品的理念,看它是为了什么。不同的产品应该有不同的风格,有很多细节需要注意。不同的产品,相似的产品,不同的内容,不同的传播媒介,都会决定UI设计的风格。1.产品不同:比如一款游戏产品,需要把界面做的花哨一点,或者用大图填充;如果是应用软件,需要好用,功能强大,设计要简单。2.同类内容不同:比如一个可爱的游戏产品(比如动漫游戏)需要把界面做得活泼可爱;如果是角色扮演类的战斗游戏(比如枪战游戏),应该是很酷很有深度的。3.媒介不同:我们要做的一些软件产品需要在网络上传播,所以需要考虑网速的问题;有的以光盘为媒介,这样的软件可以做一些花哨的效果。所以不同的产品需要分别考虑,这也需要UI设计师对产品有更多的了解,不断与客户沟通。还有一点需要注意的是,在平面设计的过程中,一定要贯彻前一阶段所做的交互设计,时刻注意产品的交互性和易用性。在设计过程中,一定要做好每个结构每一步的效果图,不能只提供图标、按钮、背景图等图片,让程序员不知道这些东西放在哪里。这时候就要最终确定软件界面的呈现形式。技术建模一般由资深程序员来做,他们会把整个软件开发分成功能模块,分配给开发团队。而这些负责技术建模的高级程序员,往往更多考虑的是如何用代码实现整个设计,如何更有效地重用现有模块,而不是软件会是什么样的风格。所以作为UI设计师,一定要主动去和他们沟通,保证我们的想法能够完全实现。如果有技术实现问题,一定要及时修改。有时我们需要根据客户或产品的具体需求做一些扩展设计(也叫UI产品设计的扩展),包括:软件的安装和导航界面,产品的演示和宣传动画,一些附带的桌面壁纸或屏保,代表软件的卡通小精灵,有时还会要求我们设计软件的logo和广告banner。技术建模期的关键是“风格和界面设计”。3.模块化开发期:这个时期软件开发过程进入实现阶段,也是最需要人力的时期,从而分散了UI设计师的注意力。软件会被分成几个小模块进行编码,最后集成为一个完整的软件产品。对于一个程序员来说,大部分根本不考虑产品应该是什么样子,整体风格应该是什么样子。他们考虑的是如何用代码实现设计需求。而且现在的软件企业,大部分都实现了模块的复用,这将大大节省人力成本。那么程序员只是修改原有的模板来适应新的软件产品,会给UI设计的最终实现和实现带来很大的麻烦。虽然各个模块已经能够使用,但并不统一,所以还需要我们积极协助和监督程序员充分实现UI设计的要求。如果有技术无法实现的问题,需要及时沟通修正设计方案。有时候一些模块需要有单独的风格,比如一些现有的软件产品需要集成到一个新产品中,这样会增加设计师的设计难度。我们必须在保证产品整体风格的情况下,融合原有产品的设计风格,使之更适合新产品的表达。如果还是保持原来产品的风格,那么在模块组装的时候,新产品会感觉很松散,每一个功能都感觉像是另一个软件,不会给人留下深刻的印象。在这个阶段,我们应该主动跟进每个模块接口的实现。目前很多软件公司的UI设计师和程序员存在很多合作问题。要么是程序员达不到UI设计的要求,要么是UI设计师坚持一些不能改变的想法,有时候经常有人过来说帮我做点事!当软件整合好再看的时候,很多不同风格的东西堆在一起,从头到尾都不舒服。领导或者客户看了之后极度不满,批评了一阵子,最后UI设计不到位。有人说UI设计师会为不成功的软件背黑锅,因为人们根本看不到代码是怎么写的,功能是怎么实现的。他们只知道如何使用软件。让一个用户拥有一个软件,他们只会说软件好用,好看,漂亮,但作为普通用户,没有人会说软件程序写得好。从这个角度来看,我们会认为软件开发的主要冲突是UI设计师和程序员之间的冲突,但这只是表面形式。这种现象本质上说明了现在软件企业普遍存在的一个问题就是开发团队之间的合作关系混乱。程序员和UI设计师是点对点的合作关系,程序员不负责产品。所以看起来UI设计师应该只听项目经理的。无论对设计做什么修改或添加,都要由开发项目经理和产品经理协商后决定,只有他们才能对最终产品负责。这样也可以避免很多程序员和UI设计师之间的纠纷和矛盾。但是现在大多说软件企业的产品经理和开发项目经理都没有做到这一点,根本不了解UI设计师和程序员的工作,也无法把握他们的工作量。这样无序的管理会造成非常麻烦的后果。其实可以建立一些合理的流程管理制度。即使企业不是UI设计师,也可以起草一份适合自己和企业的“UI设计需求申请表”,里面要列出需要“投入”的内容、工作时间、最终“产出”的结果等等(你可以根据自己的要求灵活决定)。这样就形成了一个有参与者、有证据、有基础的工作流程。当出现问题或争议时,我们有证据可以依赖。这只是习惯性的东西。没有必要因为企业不同而建立需求清单。UI设计师在模块开发阶段要做的就是在模块开发前期做好产品各个模块的效果演示(可以用图片的形式表现),要求程序员按照演示风格开发模块,协助并监督程序员严格按照UI设计要求生成最终产品,把握好各个模块的统一性,及时了解程序员的工作进度,对于不合理或难度较大的设计及时讨论设计新的方案。模块化开发时期的关键是“协助并监督程序员生成最终产品”。4.测试阶段的输入和输出:软件产品的测试将分为三个测试阶段。首先是每个模块开发完成后,对每个模块进行单元测试;二是将所有单元集成为一个整体产品进行集成测试;第三是出厂前对整个产品的整体测试。在测试的过程中,UI设计师的任务会相对轻松一些。我们只需要跟着测试人员走几遍流程,发现不符合UI设计的要求,及时要求改正就好了。我们经常会遇到客户在测试过程中突然觉得有不合适的地方需要修改,这也是最麻烦的事情。有时候他们说的不一定对,只要我们设计的每一步都有一定的理由说服他们,一切就ok了。如果他们坚持修改设计方案,那我们也没办法,只能根据客户的需求修改。但是如果按照这篇文章的流程走,我觉得这个可能性不大,就算修改了也不会大打出手。在修改的过程中,还是要先做一个效果图,让客户确认后再实施,这样也会避免很多麻烦。测试期的关键是“对整个产品进行检查,发现问题及时纠正”。现在的软件越来越多地考虑人的因素,“以人为本”的设计理念贯穿于整个软件产品开发,所以软件产品UI设计过程中最重要的两个部分就是行为和结构,也就是交互设计和界面设计。以上,我们按照软件开发的四个阶段,逐一分析了每个阶段的UI设计任务。由此可见,UI设计并不完全是美术设计的过程,很重要的一部分是交互性和易用性的设计。我们要时刻站在软件用户的角度,设计出最简单、最人性化的软件产品。善于利用继承,让美工团队设计表单的界面,程序团队只实现表单的功能。来源:更多网络