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

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

  那么,你想要从事移动开发?也许你想经过应用商店就能够得到预想的上百万的收入,或者仅仅只是在寻找一个新的挑战。不管如何,当你想设计你本身的 app 时确定须要考虑许多具体的问题,固然我不是指的编程这方面。 编程

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

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

  一、选择你的平台 webapp

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

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

  二、甭想快速暴富 工具

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

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

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

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

  三、阅读 HIG

  Human Interface Guidelines(人性化界面指南)或者说 HIG 是一个全部开发平台都具备的文档,它告诉你怎么样去建立一个良好的用户界面,让用户在使用的时候感受就像在家同样天然温馨。每一个平台都是不一样的,所以你须要考虑到每一个细微的差异。

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

  在黑莓平板上,用户但愿经过下拉顶部状态栏来显示设置选项。用户每每不会感谢你提供了这些已知的人性化的行为,可是若是你没有这样作,他们必定会愤怒。

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

  四、让功能具备趣味性

  开发一个实用的应用程序并不意味着它必定会很无聊。咱们在 2009 年开发的一个应用程序 Flash on the Beach 中,使用了一套标准的 iOS 组件,可是设计出来的外观和体验彻底不一样。咱们但愿让这个应用具备本身独特的个性,可是又不会让用户想要疏远。这在当时不是很常见,所以还得到了一个 Gulltaggen 奖。

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

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

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

  所以咱们的应用能够遵循那些准则,同时仍然具备趣味性。如今在 iOS5 上经过使用新外观的 API 使这件事变得更加容易。

  五、挑战惯例

  这方面最明显的例子就是“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 以及其余的许多应用都采用了这种方法,让人们关注应用程序的重点。

  六、场景行为是不一样的

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

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

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

  七、内容也应该不一样

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

  然而 micro-copy 很是难写,超级难。

  八、个人手指很粗

  个人手指很肥所以它至少须要 44 像素的区域。若是不这样作那么点击会变得很是有难度。咱们在 FOTB2010 这个应用里面就犯了这样的错误。

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

  九、独立的解决方案

  若是你将要为不一样的设备开发一个应用,那么你须要大量的资源。经过将图像放大去适应一个平板不是一个好的方法。

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

  十、设计一个漂亮的图标

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

  咱们能够在空白的画布上去作一些伟大的事情,经过这个机会,采用有效和漂亮的方法去解决你的问题。

  我喜欢这样。

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

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

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

  十一、个人手机就是个人身份

  这一切问题的缘由是个人手机会透露不少个人信息。

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

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

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

  拜托!想一想小孩。

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

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

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

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

  1三、不要假装

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

  这些 webapp 自己就运行的比较慢,可是因为它们的外观和感觉与其余的应用程序类似,所以用户会对它们产生错误的指望,从而将它们下载下来。它们作出了隐含的承诺可是却没有办法达到。

  我会避免它。

  1四、你的想法不是首创的

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

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

  1五、为您本身打造

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

  1六、听取用户的建议

  若是你很幸运,在某些方面你的用户会支付你费用,因此有和他们沟通的途径是很是重要的。使用相似于 GetSatisfaction 的服务和用户交流,无论是反馈错误或提出新的功能建议。这里的关键是,它是公开透明的沟通。

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

  尽管咱们听取用户的建议,而且他们有时候确实能提出一些伟大的想法,可是你也没必要非要实现他们说的每件事,相信你本身的直觉。

  1七、潜近你的用户

  分析很是重要的。它会让咱们从用户的行为里面学到不少东西,而且会让咱们看到用户是怎样使用你的应用的。

  对于 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% 的比例,可是咱们仍然能够接受。

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

  1八、原型!

  这是一个伟大的工具让你能够向其余人代表你的想法而且能够检测技术上的可行性。咱们倾向于写一套典型的、小的函数去检测解决一个问题的可能的方法。不管你作什么,首先在设备上实现你的原型。没有什么比在设备上直接测试更具备说服力,即便是滑动浏览一系列的图片(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)。

  1九、开始

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

  若是从一开始就想把全部的事情作的很完美那很容易失败,你不须要把它作的很完美,可是咱们会尽力。

  20、咱们可使世界变得更好

  这是一个崇高的目标,但我就是这么想的。做为设计者和开发者咱们有这个能力去创造一些不只仅影响咱们本身并且也会影响其余人生活的东西。

  若是咱们让生活变得更加容易,更加简单,哪怕只是一点点,同时解决了某个问题,那咱们就作了好事,可让咱们引觉得豪的好事。

相关文章
相关标签/搜索