为什么应用设计会损害应用开发
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
移动应用现在已经变得十分普及,以至于技术圈的大部分人都认为开发应用是一个简单直接的过程。然而,当你揭开应用开发的帷幕时,你会看到一个充满预算超支,代码和素材的臃肿,以及开发进度延迟的艰苦历程。
上面提到的很多阻碍都是移动应用开发所独有的。现在的移动应用通常都会作为连接用户和公司之间的主要纽带。这就意味着移动应用设计涉及的人员数量是非常庞大的:设计师本身、产品团队、市场人员、产品经理,甚至包括最终为应用开发提供资金的用户(或风险资本)——他们当中很少有人能够大概了解真正的应用是如何在代码层面实现的。
这并不是说工程师是唯一能够理解应用开发过程的人——只是说大部分应用的策划阶段(也就是概念和设计)和制作应用所需的代码部署阶段(也就是开发)之间都存在严重的脱节。
应用开发过程的关键矛盾在于,负责部署最终代码的开发者和其他人之间在文化和技术上存在的差异。换句话说,技术圈的大多数人都是造成这个问题的一部分原因。下面我会向大家进一步解释这点。
执着于代码无法实现的视觉效果
当我们谈论移动应用设计的时候,我们通常所指的是应用在 Photoshop 或者 InVison 和 Pixate 这些原型设计平台上面所呈现的形象,这些功能强大的视觉化工具可以展现出最终应用的外观和感觉。
但是这些平台与应用的基础代码其实没有直接的联系,而且它们只能代表一个非常理想化的最终成品,但是这种想象是有可能无法实现的。(例如大量的动画,高度可动的 UI 在视觉上是很有吸引力的,但是这些元素也许会增加几个月的开发时间。)
然而,开发公司经常会将精美的视觉设计作为应用的核心参考对象。(这点和网页设计很不一样,后者的 HTML/CSS 最终代码通常可以进行实时的原型设计。)
我已经见过很多这样的情况:当你向客户展示原型设计的时候,他们就会对产品产生一个固定的印象,但是经过几个星期或几个月之后,当他们将最终成品和当初通过的设计进行比较的时候就会感到非常失望。
这点引出了一个相关的问题……
设计资源分配的矛盾
虽然原型设计可以确定应用的外观和功能,同时也是公司与客户和内部开发团队进行沟通的一个重要工具,但它实际上也属于开发流程当中(成本很高)的一部分,而且它跟最终产品之间没有直接的关系。
一旦应用已经完成了代码部署,原型设计就没有价值了,也就是说,大量的开发时间和预算都花在了一些最终会被丢弃的东西上面。另外,设计一些不会出现在最终应用里面的功能也是一种浪费资源的行为。
这种存在于原型和开发之间的脱节,意味着设计师可以轻易地想出一些动画、UI 概念和富媒体内容,但是它们几乎不可能通过代码实现。
在这样的情况之下,设计师的时间和精力就被完全浪费了。当发现应用出现问题之后,他们就需要进行新一轮的设计工作——在这个时候,原型的“终稿”往往已经通过了审批,应用也进入了开发阶段。
缺乏真实数据的设计
在原型设计的过程中,设计师总会挑选出一些数字、名称和图像,展示出用户输入内容在最终应用上的***效果。但是他们通常会忽略用户输入内容可以是多种多样和凌乱不堪的——其中部分内容可能会导致应用出现“走样”或者完全不可用的情况。(Dropbox 的乔什·帕克特(Josh Puckett)之前在 Medium 的一篇文章上生动地描述过这个问题)
不幸的是,数据和设计之间的冲突一般只能在应用公开测试阶段被发现,这已经是比较好的一种情况,更坏的情况(也是更常见的情况)是应用已经上架 App Store,用户真正开始使用它之后才发现这个问题。无论是哪一种情况,设计师和开发者通常都需要进行新一轮长时间的更新开发流程。
我们开发的是应用,而不是原型
为了应对这些难题,有人提出的一个解决方法是让设计师学习编程。但是我的看法跟 杰西·韦弗尔(Jesse Weaver)一样,我们都认为这种做法既不可行,也难以接受。我们真正需要的对应用整体有更好的理解——从它的编程基础到表面的 UI 和艺术素材,并充分考虑到它在不同平台上真正运行的情况。
我们还需要认识到应用开发并非一个线性的过程,它不像是把一个设计好的应用直接交给开发者那么简单。相反,设计师和开发者之间需要通力协作,在打造出引人入胜的外观之余,他们还要保证这个外观的每一步都能够被实现出来。
现在已经有越来越多的公司将应用作为自己的唯一产品,因此按照这种方式进行应用开发就显得更为重要了。
![](/img/my/wx.png)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
拒绝修复 bug 的几个正当理由
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 当某些功能没有按预期运行时,bug 就出现了。一次 bug 修复基本上是给现有代码打一个补丁,它应该解决当前问题,以确保「该功能」按预期运行。可是,这个补丁修复了一个地方,却常常破坏了很多地方。我相信有必要时不时地拒绝 bug 修复,并要求其作者重新制作补丁,以保护项目避免遭受更大的问题。根据我的经验,对于这种拒绝,存在着一些正当理由。 《***犯罪(El Crimen Perfecto)》,导演:Alex de la Iglesia 它降低了代码覆盖率 这是非常常见的情景:在某个地方做了修改之后,单元测试在其它地方失败了。bug 被修复了,但是一些可能不相关的单元测试开始报告失败。由于压力或仅仅因为我们的懒惰,我们没有修复它们;我们只是删除了测试、或将它们标注为临时的「跳过」。问题被解决了,构建是干净的,那么合并该补丁,收工,对吗?错! 即使我喜欢尽可能的偷工减料,但是对于这种问题,我不推荐你那样做。 单元测试的存在恰恰是为了防止我们在面临压力时去破坏代码。 很明显,存在着一些情景,比如单元测试错了,我们不得不删...
- 下一篇
微软居然有搞 Android Launcher
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 微软最近正在打造一款Android上的Launcher(桌面启动器),名为Arrow。目前该桌面启动器还处于测试阶段,但根据一些测试用户的反馈来看,这款桌面启动器的表现还不错。如果拥有Android设备的你也想尝试一番,在文末就能下载APK文件进行安装。 Arrow主屏默认将包含三个页面,分别是联系人页面、应用主页、提醒与备忘页面。在联系人页面中,Arrow会显示你的常用联系人,包括电话联系 人与邮件联系人;主页则会自动显示你常用的应用程序以及最近安装的程序;备忘页面则支持笔记与提醒事项的快速输入,而这一特性在其他Android Launcher中出现较少。 而主屏底部则是常用的应用Dock,用户可以根据需要进行调整。从主屏底部还可呼出程序快捷启动菜单以及桌面设置、壁纸以及反馈按钮。快捷启动菜单中还有最近访问栏方便用户快速启动所需程序。 另外一点值得说明的是必应壁纸功能,Arrow支持必应每日壁纸,这意味着用户可以在Android上实现每日自动更换必应壁纸的功能,对于一些用户来说这一点无疑有非常大的吸引力。 不过A...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器