- 浏览: 33914 次
- 性别:
- 来自: 北京
最新评论
一年前斯坦福和Apple联手推出了基于iPhone平台的开发课程, 这个课程的ppt被放在网上分享,反响非常好。这个学期,斯坦福将课程进行了录像,放在了iTunes university上提供下载,目前这个课程在iTunes的下载排行第一,达到了100万人次的下载。这次给大家分享的是其中关于“成功开发iPhone软件的10个步骤”的讲座,虽然与我们工作中设计软件的应用平台不同,但是还是有很多成功的经验可以借鉴。 1. 决定要做什么 人们很容易犯的一个错误是“从结论出发”,比如决定要做一个本地社会关系网的软件,而没有去想究竟做这个软件是想解决什么问题,是为了解决和好友找地方吃饭的问题还是别的什么,如果是针对吃饭地点问题,那么是不是有更加好的解决方法。所以首先要确定的是需要满足什么样的目标用户和需要解决的问题。 最容易成功的一种情况是设计者本身就是目标用户,而要解决的问题也是设计者本身遇到的问题。这样设计者能够经常使用软件,发现其中问题并进行有效迭代。想象别人的需求很困难,必须与目标用户接触、交谈,使用用户研究工作中经常使用的用户画像方法。用户画像并不一定是真实用户,可以是虚拟的,但是要能够代表用户群体。 2. 访问app store iPhone上的软件设计者没有多少机会去教育用户熟悉新的设计,这是由于iPhone本身的使用环境限制的,用户的注意力时间有限,耐心也有限,很多时候都是在交通工具上或者在等待的间隙使用的,所以软件的设计是需要用户一看就知道如何使用的。App Store上有非常多的软件,找出热门软件,看看它们是如何设计的。这些热门软件一般都是经过精心设计的,并且通常都是得到用户反馈迭代过几轮的,一些共通的地方可以借鉴参考。“Good artists copy, great artists steal.” 3. 搜寻所有可能的设计方案 有的时候设计师心里有一个设计方案,觉得这个方案非常完美,不愿意去考虑是不是有别的设计。但是通常第一个设计方案都不是完美的,即使是苹果的设计师,第一个方案往往都是糟糕的。 Iphone上的软件有很多局限性: 以iPhoto为例,下图左侧为mac上的iPhoto程序,功能非常全面,编辑图像的能力很强。而右侧是iPhone端的程序,主要的功能是看图。 不能因为功能上的减少就说iPhone端的iPhoto不成功,事实上它是一个非常成功的软件。任何人即使是3岁的孩子也会使用它,它的核心思想就是“小”。只保留那些核心功能,如果缺失了用户就不再使用此软件。 4. 画草图 到了这一步,就需要在纸上画出草稿了。例如下图右侧的程序大致对应的草图在左侧。 在做草图的时候尽量多地设计,不同的功能不同的布局。这个是苹果设计师进行设计的方法(creative alternative design),画出的第一个草图是设计师心里一开始最理想的方案,做第二到第四个的时候还比较简单,做到第七个就比较难了,最后三个是非常难的,但也是价值最大的,往往有非常有创意的想法迸发出来。 当有了这些草图以后,需要寻找到目标用户去听他们的意见,比如有同样需求的朋友。他们会反馈一些意见,喜欢什么设计不喜欢哪些地方,这些意见有助于将设计方案进行排除和整合。剩下大约2-3个接受度比较高,没有明显优劣的方案,可以选择一个方案来实现。在这部分花的时间比较多,但是非常值得,因为在之后的过程中不断修改所付出的代价往往是在先期修改的代价的数倍。 5. 建立纸质原型 下图中的每张纸代表了一个屏幕上显示的软件界面。这个步骤的价值在于在纸上绘制这些图后就可以得到一些用户实际使用的感受而不必等编程实现。 从第一张开始“OK, 你刚刚打开我的软件”,点击这个按钮就到了第二张纸的屏幕,等等就可以对软件的整个操作流程有直观的感受了。在这个过程中可以收集到比草图阶段丰富得多的用户反馈,哪里用户不知道怎么操作了,哪里容易引起困惑,哪里用户比较喜欢,哪里不喜欢。 下面这张图是一个iPhone游戏的设计师们做的纸质的原型,模拟真实的iPhone。设计师们做了各种各样的纸片来模拟程序中的各种元素。 6. 工具的使用 ——omnigraffle Omnigraffle虽然是个图形编辑软件,但是更加合适做原型设计,里面有丰富的控件库,可以拖拉这些控件来方便地搭建程序界面。一些比较个性的设计或者比较细节的加工可以在photoshop中制作。下面这张图是omnigraffle中用于Iphone平台的控件库。 下面这张图是讲师用omnigraffle做出的软件界面,可以实现到与最终版本像素级精确。 在这个阶段就要进行一些比较细节的内容确定和视觉相关定义,比如颜色的定义等等。建立起精确的原型也方便一个团队多人一起工作,减少沟通成本,避免产生歧义。 7. 回溯修改 其实不是一个真正的步骤,但是放在这里说明并不是每个软件都要一步到位,其实是一个迭代的过程,有时候必须要回溯修改。 下图是讲师最近正在制作的一个软件的界面,在制作具体界面细节中所进行的不同尝试: 也有要进行更加彻底的回溯修改的情况,有的用户在草图阶段反馈说喜欢的东西其实并不是他真正需要的东西,这种情况下就要回到草图阶段进行重新设计。 8. 开发实现 这部分不赘述,简单地说就是要注意程序的设计模式,用户界面和后台数据分离。 9. 测试 对软件做测试,看看是否文字提示恰当,是否有bug等。这里比较关键的是谁来做测试。 好友是比较可靠的资源,他们的反馈比较有价值。但是如果本地的目标用户比较难找,比如地震分析软件这种涉及全球性质的用户,就可以使用Mechanical Turk。Mechanical Turk是Amazon的一个服务,对于那些在网上又没有明确事情要做的人,以非常低的报酬,比如几美分,来请他们进行测试。也可以出稍高的价钱请数量比较少但是比较专业的人来进行测试,这样反馈的价值比较高。 10. 发布 发布软件,在比较前期的版本可能需要界面修改,bug修补,迭代版本。但是通常到后期都是一个比较可喜的结局。 总结 几条要注意的原则: 1.了解你的用户,并与他们接触、交谈。
1. 小屏幕
2. 触摸式的输入很不精确,通常需要44像素大小的目标才能有足够的点中率。
3. 输入更困难,即使有软键盘,相对普通键盘的输入还是困难不少。更多的是传达信息给用户而不是让用户产出信息。简单地说就是读应用多于写应用。
4. 使用时间比较短,通常一次都是几分钟的使用长度。不一定是用户对软件不感兴趣,而是由一些例如“地铁到站了”的客观情况所决定的。所以设计出的软件一个操作流程不能花很长的时间。
2.不要做虚幻的想象的设计,多从成功软件中汲取经验。
3.软件要设计得“小”。
4.找到足够多的设计方案,通过数量的累计来得到好的质量。
5.失败得越早成功得越快。
6.要做到像素级精确。
7.记住没有什么是非常宝贵不能舍弃的,不要害怕去修改。
8.在提交之前进行足够的测试。
发表评论
-
RSA Public Key Cryptography in Java
2010-12-20 14:39 1175Public key cryptogr ... -
java 类静态成员初始化问题
2010-12-16 09:17 1127public class StaticVar { pr ... -
程序执行时间估算
2010-12-09 11:53 839一直以来没有对程序执行的时间不是很清楚,今天大概研究了一下,为 ... -
java.io.StreamCorruptedException: invalid type code: 31
2010-12-02 13:46 2283A user-settable boolean to dete ... -
eclipse jdt 编译的bug
2010-11-26 16:35 726先上代码 class MyException extend ... -
架构师给程序员的一封信
2010-11-16 15:25 705某Architect给他的Engineer ... -
10 个最酷的 Linux 单行命令
2010-10-27 22:08 728下面是来自 Commandlinefu 网站由用户投票决出的 ... -
Root exception is java.rmi.UnmarshalException: failed to unmarshal class weblogi
2010-09-02 16:40 2263Found a cause the problem. Ther ... -
程序安装apk
2010-09-02 09:30 1393Intent i = new Intent(Intent ... -
java class 文件反编译分析
2010-08-04 09:11 890javac Test.java javap -c Test ... -
Cannot find value in class indicator mapping in parent descriptor
2010-06-09 19:37 1505Cannot find value in class ... -
Android adb error: “device not found” on Ubuntu
2010-05-29 13:18 5528I've been getting this error ... -
java远程调试异常捕捉不到
2010-05-24 14:17 831再远程调试的时候出现了异常,但是无法知道相关异常信息,把代码放 ... -
11月编程语言排行榜:C语言的耐力基因
2009-11-11 15:40 584Tiboe近日发布了新一期 ... -
google推出开源go语言
2009-11-11 11:15 318go语言官网 http://golang.com go语言h ... -
GWT Unable to load Mozilla for hosted mode
2009-09-29 09:05 195在运行gwt的sample时 [java] ** Unab ... -
安装JRuby时出现系统找不到指定的路径
2009-09-29 00:02 137今天在配置JRuby时,运行jruby -v ,出现" ...
相关推荐
### iPhone应用软件发布步骤详解 随着移动互联网的发展,越来越多的开发者选择iOS平台作为其应用程序的首选发布平台之一。为了帮助更多的开发者了解iPhone应用程序的发布流程,本文将详细解析从开发到发布的各个...
总之,搭建iPhone开发环境涉及多个环节,从硬件检查到软件安装,再到实际的开发工具使用,每个步骤都需要细心操作。成功搭建环境后,开发者就可以开始编写令人兴奋的iPhone应用了。在开发过程中,保持对Apple开发者...
完成上述步骤后,你将拥有一个能够在Windows XP上运行的Mac OS X虚拟机,可以安装Xcode并开始iPhone应用的开发。需要注意的是,由于苹果的开发者政策,这种跨平台的开发方式可能存在兼容性和性能问题,且可能不支持...
本文介绍了如何从零开始开发iPhone应用程序,通过12个步骤提供了一个全面的指导过程。首先,开发一个好的应用需要一个创新且有价值的想法,解决特定问题,吸引特定用户群体,并具备趣味性和互动性。其次,列出项目...
在iOS平台上,开发一款应用程序,比如“iPhone开发应用之计算器”,通常涉及到多个技术层面和步骤。这个特定的应用,名为"CuteCal",已经成功上线并可在App Store中找到,这表明开发者已经完成了从设计到发布的整个...
这个过程可能需要一些时间,但一旦成功,你将拥有一个完整的开发平台,可以开始创建自己的iOS和Mac应用。在实际操作中,可能会遇到各种问题,但通过查阅文档和社区论坛,大多数问题都能得到解决。祝你在开发旅程中...
通过上述步骤,可以在Windows环境下成功搭建起iPhone开发环境。尽管整个过程较为复杂且需要一定的技术基础,但对于希望在非Mac硬件上进行iOS开发的开发者来说,这是一种可行的方法。随着技术的发展,未来可能会有更...
在Windows中搭建iPhone开发环境,主要是为了在非Apple硬件上模拟运行Apple的Mac OS操作系统以及相关的iOS开发工具,以便在Windows环境下开发iPhone应用。以下是一个详细的步骤指南: 1. **硬件要求**: - 一台支持...
通过上述步骤,您可以在Windows环境中成功搭建一个完整的iPhone开发环境。这不仅解决了跨平台开发的问题,也为开发者提供了更加灵活的工作环境选择。需要注意的是,随着技术的发展,当前使用的软件版本可能已经过时...
在虚拟机下搭建PhoneGap...通过以上步骤,你应该能够在虚拟机环境下成功搭建PhoneGap的iPhone开发环境,开始你的跨平台移动应用开发之旅。记得在过程中遇到任何问题,都要及时查阅官方文档或社区支持,以获取解决方案。
通过学习和实践其中的项目,你将能够掌握开发iPhone应用的基础技能,并为进一步深入学习打下坚实的基础。无论是Objective-C的新手还是想要回顾基础知识的开发者,这个教程都会提供宝贵的经验和启示。
通过上述步骤,我们成功地在Windows虚拟机中安装了iPhone开发环境。这对于不具备苹果硬件的开发者而言,提供了一种有效的解决方案。需要注意的是,随着技术的发展,不同的开发环境和操作系统版本可能需要相应的调整...
《iPhone4 拆机详解:步骤、技巧与注意事项》 在软件开发过程中,有时我们需要对设备进行硬件级别的操作,...希望这篇教程能帮助你成功地拆解和组装你的iPhone 4,让你在软件开发之外,也能掌握硬件维护的实用技能。
### IPhone 1.1.4开发环境配置详解 #### 一、概述 本文档将详细介绍如何配置IPhone 1.1.4的原生开发环境。...通过以上步骤,您可以成功配置好 IPhone 1.1.4 的开发环境,开始 iOS 应用的开发工作。