投身移动开发必须知道的20件事

标签: 移动 开发 知道 | 发表时间:2012-03-25 08:00 | 作者:[email protected] (秩名)
出处:http://www.kuqin.com/jingyan/

移动开发需要具体的设计考虑。这个所指的范围非常广,可以从“你已经习惯了并觉得容易”到“困难”(These can vary greatly from what you’re used to and it’s easy to trip up),所以,这里有一些开发者 Paulo Fierro 很久以前被告知的忠告。

那么,你想要从事移动开发?也许你想通过应用商店就可以获得预想的上百万的收入,或者仅仅只是在寻找一个新的挑战。无论如何,当你想设计你自己的app时肯定需要考虑许多具体的问题,当然我不是指的 编程这方面。

在你开始之前,你需要弄清楚你想解决什么问题。你的用户是谁?他们在哪?他们将如何使用它?如果他们在同一时刻使用会对你的应用程序产生什么影响?

当你想到这些问题的答案的时候你可以把它们写下来,刻在墙上。当你面对一些困难的选择的时候可以回顾这些答案,也许它们会给你指明正确的方向。

1、选择你的平台

选择什么样的平台取决与你想做什么以及你的用户是谁。这些平台的最顶层是web。如果你想出售你的应用程序,那么你可能想要将它放在应用商店。如果你需要使用相机或者其他的设备的API,那么你可以使用本地的方法,或者使用一些封装好了的框架比如AIR/PhoneGap/Titanium。

这里没有明确的答案,你选择什么样的平台取决于很多的事情,因此不妨回顾一下刻在墙上的那些话,也许它们会告诉你答案。

2、甭想快速暴富

很多人对比了当前的应用商店的热潮和19世纪40年代末的加利福尼亚淘金热,正如当初的淘金热,有人成功有人失败,更多的是失败。我不建议人们只是为了赚钱而加入这行,那还不如到最近的赌场堵上几千英镑来的现实。

但是我们经常听到媒体上鼓吹一些具大的成功范例。我最喜欢的故事是加拿大的开发者 Matt Rix 花了几个月的晚上,做出了一款游戏,最终超越愤怒的小鸟,排名前10位,这可不是一件容易的事。那款游戏叫做 Trainyard ,他将它开源了,并且共享了数据。

两个月前,Flurry,一个移动应用分析公司发布报告称,目前苹果应用商店里面有超过50万应用程序,同时安卓电子市场里面也有将近35万。

再次强调这(指的致富)不是一件容易的事。

3、阅读HIG

Human Interface Guidelines(人性化界面指南)或者说HIG是一个所有开发平台都具有的文档,它告诉你怎么样去创建一个良好的用户界面,让用户在使用的时候感觉就像在家一样自然舒适。每个平台都是不同的,因此你需要考虑到每个细微的差别。

例如,iOS用户习惯在左上角有一个返回按钮,但对于Android来说,大多数机型都会有一个物理的返回按钮,因此在应用程序上面再增加一个只能带来不必要的冗余和混乱。

在黑莓平板上,用户希望通过下拉顶部状态栏来显示设置选项。用户往往不会感谢你提供了这些已知的人性化的行为,但是如果你没有这样做,他们一定会愤怒。

因此阅读HIG从而了解这些概念,但是请记住,这些都是简单的指导方针,但不是规则,更加不是分类的清单。

4、让功能具有趣味性

开发一个实用的应用程序并不意味着它一定会很无聊。我们在2009年开发的一个应用程序 Flash on the Beach 中,使用了一套标准的 iOS 组件,但是设计出来的外观和体验完全不同。我们希望让这个应用具有自己独特的个性,但是又不会让用户想要疏远。这在当时不是很常见,因此还获得了一个 Gulltaggen 奖。

我最喜欢的iPhone相机应用是Camera+,它的按钮和标题看起来很普通,但是具有可爱的自定义字体风格。

Tweetbot是我最喜欢的Twitter客户端,它结合了阴影和渐变的巧妙应用,使自定义提示框与应用的其他设计搭配得非常融洽,整个应用看起来非常漂亮,这就是对细节的注重。

在他的书 Tapworthy 里面,乔希·克拉克提到了“tap-worthiness”,我更喜欢“lickability”这个词,正是这种对细节的注重让我感觉非常好,甚至想要舔我的手机。

因此我们的应用可以遵循那些准则,同时仍然具有趣味性。现在在iOS5上通过使用新外观的API使这件事变得更加容易。

5、挑战惯例

这方面最明显的例子就是“pull to refresh”(下拉刷新)。你可能知道我具体在说什么。自从布里切尔在Tweetie 2 上介绍了这个词,这个设计概念已经飞速的传播到了其他的手机操作系统。

这个概念是简单的,你将一个列表下拉到中间某个位置,然后释放,这时就会产生一些事件,例如刷新数据,就好像你的Twitter信息。尽管当时没有很直观的产品,一旦你想到了它,它就是一个天才的、完美的“令人惊喜”的例子(Although not immediately obvious at first, once you get it, it’s genius and is a perfect example of ‘surprise and delight’)。

今天我们可以看到许多使用了“pull to refresh”的应用,比如Gowalla, Facebook, Google+, Tweetbot, foursquare, oink, Fribi 等等,将来还会有越来越多的应用会使用它。

另外一个流行的模式是提高中间底部的工具栏按钮。Oink, foursquare, Fribi以及其他的许多应用都采用了这种方法,让人们关注应用程序的重点。

6、场景行为是不同的

当开发一个应用的时候,你只有30秒,也许是一分钟的时间去获得用户的注意。你的应用必须让用户一眼就能看懂并上手。千万不要使用复杂的界面,只需要给我们细节,对不对?

嗯,是但又不是(Well, yes. And no)。有时候,我在沙发上,通过放在膝盖上的平板看电视。或坐在我的浴室里无聊。统计说,其不只是我!

那么你的用户在哪里?他们会在做什么?设计也应该相应的考虑这些。

7、内容也应该不同

简单是好的,但是简单并不意味着愚蠢————我们需要专注于我们的应用程序的核心功能并编写高效的相关的copy。

然而micro-copy非常难写,超级难。

8、我的手指很粗

我的手指很肥因此它至少需要44像素的区域。如果不这样做那么点击会变得非常有难度。我们在FOTB2010这个应用里面就犯了这样的错误。

这个后退按钮有10像素高,但是具有一个巨大的触摸区域从而使得它容易点击。那么问题在哪里呢?它几乎看不到。一定要避免这种情况!

9、独立的解决方案

如果你将要为不同的设备开发一个应用,那么你需要大量的资源。通过将图像放大去适应一个平板不是一个好的方法。

最简单的方式是叫你的设计师一开始就创建各种规格的资源,这样当你需要在iTunes上面使用一个512×512的图标的时候就不会有问题了。

10、设计一个漂亮的图标

俗话说得好,你只有一次机会让用户留下良好的第一印象,你的图标是你的应用实现这一目标的基础。

我们可以在空白的画布上去做一些伟大的事情,通过这个机会,采用有效和漂亮的方法去解决你的问题。

我喜欢这样。

因此,让我们花些时间和精力去完善这些细节。去年,为了Flash on the Beach,我们开发了FOTB.me,这是我们第一次尝试只针对移动设备开发的webapp。

当网站被添加到iOS的主屏幕时,你可以自定义图标和启动画面。因此我们通过这个机会创建了一系列的图标和启动画面,一套适用于旧的iPhone,一套适用于新的iPhone(它具有“视网膜”屏幕),一套适用于横竖屏的iPad。

但是,这只会被极少数人看到。但如果他们注意到了,我希望他们会感到惊讶甚至微笑。如果是这样,那真是太棒了。

11、我的手机就是我的身份

这一切问题的原因是我的手机会透露很多我的信息。

你可以看到我安装了很多的应用程序,但是它们都整齐地归类在不同的文件夹,尽管我的办公桌上一团糟。这说明了什么?我也不知道。

底线就是我无法容忍我漂亮的桌面屏幕上是一个丑陋的图标————因为那会说明我是怎样的一个人呢?

12、不要让我去读那些他妈的手册(RTFM)

拜托!想想小孩。

如果你认为人们不会这样想,那你自己读一下桌面软件的说明书,那会比使用应用程序多花上两三倍的时间。

当iPad出来的时候,有一个杂志应用(这里就不点名了),使用了大量的手势导航。开始我还觉得很酷,这就像一个Minority Report(电影,“少数派报告”)那样的东西,很有趣。

一个星期之后我就不知道该如何使用它了,帮助屏幕也隐藏了起来,因此唯一的方法就是重新安装它。这可不是一个好的体验。

如果你想让使用一些疯狂的基于手势的导航,我们不会阻止你。但是如果你必须这样做,请将帮助屏幕放在最近的地方,并且最好能让你的应用值得我们花费这些时间。

13、不要伪装

我不是那种模仿本地应用程序外观和感受的webapp的粉丝。有一些UI框架会尽力让它们看起来就像本地控制。但是当用户从应用商店将它们下下来之后问题就产生了。

这些webapp本身就运行的比较慢,但是由于它们的外观和感受与其他的应用程序相似,因此用户会对它们产生错误的期望,从而将它们下载下来。它们做出了隐含的承诺但是却没有办法达到。

我会避免它。

14、你的想法不是独创的

NAS早在2001年就这么说过,“没有什么想法是独创的,太阳底下没有什么是新的事物。重点不是你要做什么,而是你怎么实现它。”“没有什么想法是独创的”,

不幸的事实是,想法是多如牛毛,执行就是一切。一个精心设计的产品在合适的时间加上一点点运气就能走很远。

15、为您自己打造

这样你能保证至少有一个幸福的用户。更重要的是,如果你为你自己打造,你会很清楚的知道你到底想要解决什么,怎样才能有的放矢。

16、听取用户的建议

如果你很幸运,在某些方面你的用户会支付你费用,所以有和他们沟通的途径是非常重要的。使用类似于GetSatisfaction的服务和用户交流,不管是反馈错误或提出新的功能建议。这里的关键是,它是公开透明的沟通。

Twitter就是这样操作的,但是还可以改进,你可以停止重复你的一个好主意(Twitter works too but can be a lot more work and you may end up repeating yourself a good deal)。

尽管我们听取用户的建议,并且他们有时候确实能提出一些伟大的想法,但是你也不必非要实现他们说的每件事,相信你自己的直觉。

17、潜近你的用户

分析非常重要的。它会让我们从用户的行为里面学到很多东西,并且会让我们看到用户是怎样使用你的应用的。

对于FOTB.me我们使用了Google Analytics,主要是针对Android,iPhone,iPad和PlayBook。我在Twitter上面看到有人说

@FOTBme I was hoping for this year when I heard web app, but on Opera/Symbian the site doesn’t work at all…
(当我听到webapp之后期待了一整年的FOTB.me,结果它在Opera/Symbian上面完全不能用)
— Thomas Kr?ftner (@tkraftner) September 11, 2011

一开始我想,废话!这能影响多少人呢?结果通过Google Analytics 我发现4,241个访问者里面只有四个人受到影响。虽然不幸有0.09%,但是我们还是可以容忍这点。当然你也可能没有这么幸运。

几个小时后我们看到影响增大到了20个用户,0.5%的比例,但是我们仍然可以接受。

重点是,如果没有这些统计资料,我们没有办法知道这个问题到底有多大或者多小。有了这些数据(得知问题并不大)可以让我们睡个好觉。

18、原型!

这是一个伟大的工具让你可以向其他人表明你的想法并且可以检测技术上的可行性。我们倾向于写一套典型的、小的函数去检测解决一个问题的可能的方法。无论你做什么,首先在设备上实现你的原型。没有什么比在设备上直接测试更具有说服力,即使是滑动浏览一系列的图片(Nothing beats testing on the device itself, even if it means a series of images you can swipe through)。

这里有很多的工具可以让你创建原型如 Prototypes, Balsamiq and FieldTest,你甚至可以使用Keynote。

无论你选择什么,将它放在设备上并展示给你的朋友,以一杯啤酒的代价让他们给你反馈。但是当你完成了这些之后,扔掉这个原型(Whatever you choose, get it on a device and show a friend over a beer to get their feedback. But once you’re done, throw the prototype away)。

我是说真的,扔掉它!这的确很难舍得,但你要知道你写的任何代码,一旦做成了产品,永远不会死(I mean it, throw it away! This takes discipline, but know that any code you write – once it makes it into production – will never die)。

无论用什么方式,你写原型很快。但是你不会希望用接下来的几年时间维护修改那段代码。扔掉它(You write prototypes fast, in whatever way works. Hack it up! But you do not want to spend the next few years supporting that code. Throw it away)。

19、开始

开始实现你的想法,因为是时候将它做出来了。这很难但是也很令人激动,这些想法终于不再只是卡在你的脑海中了,将它们带到现实中来!

如果从一开始就想把所有的事情做的很完美那很容易失败,你不需要把它做的很完美,但是我们会尽力。

20、我们可以使世界变得更好

这是一个崇高的目标,但我就是这么想的。作为设计者和开发者我们有这个能力去创造一些不仅仅影响我们自己而且也会影响其他人生活的东西。

如果我们让生活变得更加容易,更加简单,哪怕只是一点点,同时解决了某个问题,那我们就做了好事,可以让我们引以为豪的好事。

正在加载推荐文章
百度开发者大会-《用HTML5新特性开发移动App》PPT分享
2012第一季度国外HTML5移动开发趋势
Reeoo移动版主题
使用WebSharper和F#开发移动应用
Android游戏开发坐标
无觅相关文章插件,快速提升流量

[ comments ]

相关 [移动 开发 知道] 推荐:

投身移动开发必须知道的20件事

- - 酷勤网-挖经验 [expanded by feedex.net]
移动开发需要具体的设计考虑. 这个所指的范围非常广,可以从“你已经习惯了并觉得容易”到“困难”(These can vary greatly from what you’re used to and it’s easy to trip up),所以,这里有一些开发者 Paulo Fierro 很久以前被告知的忠告.

人们握持手机的习惯----移动开发者应该知道的细节

- - 极客公园-GeekPark
我是极客公园黑板报认证值日生. [核心提示]今天的手机由于触控屏幕的广泛使用,所以用户握持手机的习惯也随之改变. 根据用户的握持习惯开发出的移动产品,用户体验也将会更好. 本文转载自 iPc.Me. 手机是一个全天候设备,不同于 PC 被放置在桌面上使用,人们在站立、走动、乘车甚至吃饭时都在操作和使用手机.

移动开发那些事

- - 微博UDC
说实话,我们这次开发移动端的项目,整个项目组的人都是第一次,最初立项的时候为是选择native app和web app还争论了一番,最后综合考虑,我们选择了web(我们选择了h5)开发. 但从这两种开发模式的特点来说,从它们诞生之日起就开始了不断的争论,孰好孰坏,本文不作探讨,只是简单罗列下本人开发遇到的问题和最终的解决方案.

移动开发之总结

- - SegmentFault 最新的文章
1、-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios和android下点击元素时出现的阴影. 备注:transparent的属性值在android下无效. 2、-webkit-appearance:none可以同时屏蔽输入框怪异的内阴影.

2014年移动界面设计新趋势你知道多少?

- - 互联网的那点事
百度云UE负责人@elya妞 :如果你是一个APP狂热分子,你会花大量的时间在各种APP的尝鲜中,你会明显感受到一些APP在采用着某种风格鲜明的设计语言,来标榜自己的独特之处,形成自己的设计风格,甚至引领设计风向. 去年我们关注到随着Metro设计风格的影响和iOS7的发布,APP明显都开始尝试扁平化的设计语言了,除此之外,还有哪些显性化的设计语言崭露头角呢.

中国移动互联网趋势?百度知道

- - 爱范儿 · Beats of Bits
百度移动・云事业部 发布了关于中国移动互联网趋势的报告. 百度根据百度移动搜索(http://m.baidu.com)及百度移动应用搜索结果页的分析,收集了 2012 年 7 月 1 日到 2012 年 9 月 30 日搜索数据,整理出《百度移动互联网发展趋势报告 2012 年 Q3》. 据报告介绍,百度移动搜索是用户访问移动互联网资源的重要入口,每天有亿级的用户访问量.

2011 移动平台开发现状

- 山河之外 - 互联网的那点事...
Visionmobile 根据“2011 开发者经济调查报告”(点击这里下载该报告)中的数据制作了一幅信息图,使我们可以一览手机各平台的开发现状. 这幅信息图关注的的手机平台有 Android,黑莓,iOS(iPhone),Java ME,Mobile web,Symbian,Windows Phone.

jQuery Mobile开发HTML5移动应用

- - HTML5研究小组
随着移动互联世界的到来,目前已发展到多种移动 操作系统割据的局面,而开发者则急需要能运用原有的开发知识和技能,快速方便地构建移动应用程序,并期望能运行在不同的 手机操作平台上,比如Android,iOS,黑莓等. 而目前,出现了一批十分优秀的支持HTML5/CSS3的移动应用开发框架,其中最为大家熟悉的是jQuery Mobile框架(http:// jquerymobile.com),它可以让熟悉jQuery框架的开发者快速开发出基于HTML5的移动应用,而且直接通过 手机的浏览器即可浏览.

移动应用开发小贴士

- - ITeye资讯频道
严格说来本文是针对iOS应用进行介绍的——在未来一段时间内iOS应用开发无疑仍会是热门,因此,不管是对开发者还是企业管理人员来说,或多或少了解一些应用开发流程十分必要——不过本文涉及的大部分内容其实并不局限于iOS应用,同时也适用Android、Windows Mobile和Blackberry等其他移动平台.