iPad应用开发者的建议
原文摘自Smashing Magazine《A Dad’s Plea To Developers of iPad Apps For Children》
我花了很长时间为孩子购买和测试iPad应用。具体点说,我很愿意为我两岁的宝贝女儿做这件事情,即便她已经成功霸占了我的iPad。通过这段时间的观察研究,我也摸索出了什么对我女儿很有效,所以我就总结了四个基本规范,希望能够给予开发者些许启发。
1. 功能可见是王道
大多数幼儿类应用展示了一系列不同事物,你可以点击触发一些动作。母牛哞哞叫,窗口打开或关闭,蜂蜜罐需要收集起来等等。但是大多数应用并没有指出哪些元素是可交互的,哪些不是。这常常让人狂躁且沮丧,比如大狗熊游戏,你需要仔细尝试才能发现那些实际可交互的元素。
解决方法很简单:功能可见(Affordance)。将元素置于问题情境中来提示用户它是可触碰的。Disney Puzzle Book就做的很好。例如,在Winnie the Pooth Puzzle Book中,蜜蜂罐之肆意摆动提示孩子们需要触摸他们才能收集。
分页对大多数幼儿应用的趣味性而言是如此的重要,但它也经常是一片沼泽。各家的处理方式各异。最通用的分页方法是基于触摸式的箭头和手势。这两种交互都是可行的,但是由于轻拂操作对于较小的手指来说略显笨拙,手势则需要精确,所以箭头对幼儿最适用了。
另外,整个屏幕的底部也是一片点击热区。如果分页控件放置于底部,孩子们经常会误点击这一部分而带来一些麻烦。我很喜欢Old MacDonald的分页处理方式:在屏幕顶端清晰地标记了前进和返回箭头。
3. 菜单是不常用的二级动作
对于屏幕的顶部:不要放置任何交互元素——尤其是菜单操作,一旦用户跟随着应用前进,很少需要它。很多次我不得不停下车取消一些菜单误操作……很危险啊!Mickey Mouse Puzzle Book就是这类让人沮丧的应用实例的代表:
最重要的是,它使用了两次点击的方法启动菜单。菜单icon正常状态下是透明的,第一次点击后会移除透明层,第二次点击则会启动菜单。尽管不是很简单,但不失为一种避免误点击的好方法。
4. 如果你尝试骗我的孩子买些东西,那你死定了
我盯着你呢,Talking Tom Cat。许多应用都这样做,但Talking Tom Cat可谓首屈一指。屏幕如同个地雷,放置了一些图标,很容易由于误点击引起购买操作——不包括随机变换引起人注意力的广告条。GoDaddy的dark patterns总是诱骗用户购买更多的域名,也属于一类,但是如果你尝试运用persuasive design于我年幼的女儿身上,感激涕零。否则,你的应用将会被删除,且以后不会有任何利益瓜葛。
结论
为孩子们设计应用是非常困难的。不仅难在创造高质量、与年龄相匹配的内容,而且设计应用的流程和交互也非常困难,因为设计师们必须避免使用一些高级的手势(这些东西会让孩子们感到沮丧和困惑,他们的爸妈也一样)。所有的应用都应当坚持基础性的东西。希望上述四点能对幼儿类应用有所裨益。
–EOF–
文章中提到的两种设计原则——dark patterns和persuasive design——非常值得研究一下。
孩子是无知的,记得过年时候,给四五岁的表弟看Tom猫,就这玩意儿就得晚上半天,而且以后天天吵着要看。确实,从交互和趣味性上,都很不错,但是通过无知孩子的误点击赚钱确实是有些“作恶”的色彩。父母是纠结的,孩子喜欢但是这玩意儿一不小心就得掏腰包,最终之得忍痛割爱将其删除。虽然App最终服务的是孩子,但是开发者也得知道应用的管道是父母,父母这一关过不了你也无法见到最终用户。
淘米就说了一件有趣的事情,淘米妈妈应用,爸爸妈妈们可以对应用评分,选出最适合孩子玩的应用。但其中对于应用的年龄段分级,有待商榷,比如捕鱼达人适合3~6岁儿童玩吗?或许可以,或许又有点问题。
iPad应用开发者的建议的更多相关文章
- 10大iOS开发者最喜爱的类库
该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库:1)不能投 ...
- iOS不越狱装收费App——注册iOS设备为开发者工具
额,这篇教程主要是我写下来用于总结注册iOS设备和用iResign安装App的过程,想要不越狱安装App当然有办法,但是有几个前提--你是一个Apple开发者,或者你有个朋友是App的开发者.如果没有 ...
- 总结分享十大iOS开发者最喜爱的库
该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库:1)不能投 ...
- 总结分享十大iOS开发者最喜爱的库 分类: ios相关 app相关 2015-04-03 16:43 320人阅读 评论(0) 收藏
该10大iOS开发者最喜爱的库由"iOS辅导团队"成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个 ...
- ios学习- 10大iOS开发者最喜爱的类库
该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库: 1)不能 ...
- 十大ios开发者喜爱的开源库
十大ios开发者喜爱的开源库 (转自博客园) 2014-08-17 14:07:58| 分类: objective-c | 标签:ios 开源库 |举报|字号 订阅 下载LOFTER我的照片书 ...
- 10大iOS开发者最喜爱的库
该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库:1)不能投 ...
- iPad和iPhone上的应用程序图标
iPad和iPhone上的应用程序图标 问:如何在iPad和iPhone使用我的应用程序包中的图标文件? 答:下面是处理文件的图标为iPhone专用的应用程序,iPad的专用应用程序,以及通用的应用程 ...
- 最受Web前端开发者欢迎的五大开发工具
工其事,必利于器.好的开发工具毋容置疑会帮助Web前端开发者事半功倍,51CTO在上期主办的技术沙龙<大型网站PHP开发之道> 对现场的百余位Web开发者做了问卷调查,后经51CTO调研小 ...
随机推荐
- Statement及PreparedStatement执行多个sql
这两个对象的区别: 1.Statement它更适合执行不同sql的批处理,它没有提供预处理功能,性能比较低. 2.PreparedStatement它适合执行相同的批处理,它提供了预处理功能, ...
- Python TCP客户端
import socket target_host="www.baidu.com" target_port=80 # 建立一个socket对象 client=socket.sock ...
- iOS 原生态扫描二维码、条形码的功能。
1.导入AVFoundatin.framework. 2.新建一个viewController,命名为QRScanViewController,用于扫描的界面. h文件如下,设置代理. #import ...
- servlet3.0,web.xml的metadata-complete的作用
metadata-complete是servlet3.0规范中的新增的属性,该属性接受两个属性值,true或false.当该属性值为true时,该web应用将不会加载Annotation配置的web组 ...
- APK动态加载框架(DL)解析
转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/39937639 (来自singwhatiwanna的csdn博客) 前言 好久 ...
- Lua __index元方法
[Lua __index元方法] 当你通过键来访问 table 的时候,如果这个键没有值,那么Lua就会寻找该table的metatable(假定有metatable)中的__index 键.如果__ ...
- LightOJ 1285 - Drawing Simple Polygon (几何,极角排序)
1285 - Drawing Simple Polygon PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
- C++ 用libcurl库进行http通讯网络编程(转)
转载:http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html 目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三. ...
- Spring MVC Web框架
1. Spring MVC简介 Spring MVC是java EE平台请求驱动类型的轻量级Web框架,使用了MVC设计模式的思想,spring框架的主要优势之一就是分层架构,分层架构允许选择使用 ...
- java多线程详解(6)-线程间的通信wait及notify方法
Java多线程间的通信 本文提纲 一. 线程的几种状态 二. 线程间的相互作用 三.实例代码分析 一. 线程的几种状态 线程有四种状态,任何一个线程肯定处于这四种状态中的一种:(1). 产生(New) ...