posts - 138, comments - 1881, trackbacks - 97, articles - 13
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

用过iPhone的朋友应该知道,iPhone上面的一些应用程序是能够随机器转动自动适应的,也就是说竖着拿的时候就竖着显示,横着拿的话就横着显示,iPhone中至关重要的Safari浏览器当然也支持这一点了,因此我们考虑设计iPhone friendly的应用程序时,首先要考虑兼容这种情况,不能把页面定死在一个宽度上。且慢,我们不是说设计自己的应用程序吗?这和内置的Safari有何关系?iPhone被设计为不允许安装任何第三方应用程序(破解不在讨论范围之内),一切第三方应用程序必须以Web的形式来跑,小到一个国际象棋的游戏也如此,因此我们现在说的应用程序就是指Web,但是与传统意义上以提供信息为核心的Web又不同,我们所说的是以提供交互操作为主的应用。

好吧,在我们正是进入布局的讨论之前,先来赏析一下已有的iPhone应用:

Facebook iPhone Edition

Facebook的iPhone版。如果你已经习惯了在iPhone上使用过Facebook,第一次在PC上浏览这个页面会被它的“肥大”吓坏的。从这个页面我们能够得知,让页面自动适应iPhone屏幕的方法就是尽量使用百分比来定义宽度,特别是全页宽度一律用100%,如果是导航栏里面4个项目并排的就每个25%。

AppMarks

AppMarks可以说是一个应用程序的书签,当然也有人把它作为Safari的首页,那就相当于桌面了,因为你收藏的应用程序就在这个页面直接显示,以大图标的方式。AppMarks以前是可以直接在PC上浏览的,现在已经自动将非iPhone的请求重定向到介绍页了,不过这里有一个AppMarks Demo能在PC上看看。我们能够看得到图片是4个一行地排列的,共12个,然而横屏会怎样了?当然是变成6个一行,仍然能够在一屏内显示完,并且不会有不满行的图标。其实这是一个很tricky的做法,12是4和6的公倍数,因此虽然竖屏和横屏的显示方式不一样,但你不会觉得有什么缺陷。

Newsgator Mobile iPhone Edition

终于有一个ASP.NET写的iPhone应用了,其实和上面的Facebook看起来差不多,同样采用了宽度为100%的做法,同时页面上的元素要么向左对齐要么向右对齐。这听起来很废话,其实意思是,中间尽管留空,不要想把整个宽度为100%的块区都利用起来,说明性文字可以放左边,操作及视觉反馈放右边,这样无论屏幕怎么旋转都好看。如果中间塞满了内容,只会让Safari进行比例缩放操作,把页面整个缩小,这其实是不利于操作的。

GMail

这不是普通的GMail吗?怎样才能看到iPhone版?这就需要通过修改user-agent属性欺骗它了。iPhone上的Safari所用的user-agent如下所示:

Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

使用Firefox的User Agent Switcher修改一下user-agent就行了,然后你就能看到iPhone上看到的GMail了。仍然和上面的网站一样,可点击区域是一大个宽度为100%的块区。

小结

实际上,设计iPhone friendly的界面,在CSS的层面上来说一点也不难,甚至可以说是非常简单,因为基本上就是宽度为100%的块区,少数时候要用到按百分比划分的块区,但实际上我们也应该避免这种情况。为什么呢?别忘记了,iPhone的用户是没有鼠标的,他们必须通过手指来操作页面上的一切,因此可点击区域必须尽量大。

既然他们看不到鼠标指针,你也就不用考虑可点击区域必须是链接或者cursor: pointer,因为用户无法通过鼠标指针的改变来判断一个区域是否能点击。然而这同时也就引入了另一个问题,如何让用户了解一个区域能否点击呢?这时候你必须给出明确的视觉暗示,例如看起来是链接的文本,蓝色的文本有无下划线通常都挺诱惑人去点,这方面Facebook是一个例子。另一种做法是让界面看起来是菜单式的,好像AppsMarker和Newsgator那样,菜单右侧的符号让人挺熟悉不是吗?只要我点击这个菜单项,就会展开下一级菜单。最后一种做法就是基于用户已经熟悉的独创暗示来提示用户,习惯使用GMail的用户一看到邮件标题那个大大的蓝色区域,就知道点击是打开邮件,这是不需要任何指引的,最坏的情况下,用户不知道点击什么还是会点击邮件标题,之后他也就会用了。

到此为止,就已经把设计iPhone friendly应用界面的一些布局因素解释清楚了,我们下一步就要进入交互的环节,让我们的应用程序真正执行起来,并且是在客户端JavaScript环境中执行起来。如果你想继续关注本话题的话,欢迎订阅:

Feedback

#1楼   回复  引用  查看    

2007-12-25 22:20 by Ray Zhang      
不错的文章!
我没用过iphone,但能将开发技术在各个设备上都了解一下还是很有意思的。

#2楼[楼主]   回复  引用  查看    

2007-12-25 22:30 by Cat Chen      
@Ray Zhang
用一下你就会发觉这东西很好玩的,Apple的用户体验总是领先于Microsoft,当然这种影响覆盖了为Apple平台开发的设计师与程序员。

#3楼   回复  引用  查看    

2007-12-25 23:05 by Leepy      
iphone的操作系统是什么?

#4楼   回复  引用  查看    

2007-12-25 23:49 by Jeffrey Zhao      
不知道iphone啥时能普及一些的说

#5楼[楼主]   回复  引用  查看    

2007-12-26 00:21 by Cat Chen      
@Leepy
Mac OS X,也就是UNIX内核,在上面跑的浏览器是Safari 3,不过和桌面的Safari 3有一些细微差别。其实,即使是iPod上面跑的也是Mac OS X,因此才有hacker版的terminal,装上terminal后懂UNIX的人想做什么操作都很容易了。

#6楼[楼主]   回复  引用  查看    

2007-12-26 00:23 by Cat Chen      
@Jeffrey Zhao
普及速度非常快啦,我身边都有不少人最近才买了iPhone或者是iPod Touch,然而真正问题在于使用上。就好像同样是SNS站点,同样是IM,中国主流用户的使用方式和美国是完全不同的,因此我们在学习国外创新的iPhone Web App设计方式时,也必须考虑这是否能够适应中国市场。这个问题我会专门开一贴来说。

#7楼   回复  引用  查看    

2007-12-26 08:10 by aspnetx      
@Cat Chen
张老师可是微软的人哦
对了,有相关的模拟器下载么?

#8楼[楼主]   回复  引用  查看    

2007-12-26 08:52 by Cat Chen      
@aspnetx
MS里面应该不少人用iPhone啦,哈哈……上次MVP Open Day,余辉的iPhone就成为了众多Windows Mobile MVP的围攻对象。

模拟器的问题我找找再告诉你。不过如果是Web App开发的话,其实也不用模拟器,在桌面端的Safari 3测试基本上就可以了。

#9楼   回复  引用  查看    

2007-12-26 09:23 by LikeCode      
没有用过"爱疯了",也没有考虑过购买.
不过对cat所说的自动横屏显示与竖显示的功能倒显示APPLE很细心为用户的想法,希望其它PPC手机也能效仿这个功能!

另外,CAT说所有程序是以WEB形式运行?感觉这个问题有点不可思议!

#10楼   回复  引用  查看    

2007-12-26 09:41 by Enzo      
iPhone确实让人爱疯了!

#11楼[楼主]   回复  引用  查看    

2007-12-26 09:53 by Cat Chen      
@LikeCode
iPhone里面有加速感应器,因此能够确定重力方向。其实以前的IBM ThinkPad一直有配备这个功能,在机器抖动时就锁住硬盘防止刮划,如果是长时间的轻度抖动它又能自动容忍了。

另外Apple的做法确实是让iPhone不能如普通PDA或SP那样随意安装第三方软件,一切交互必须在浏览器内完成,你去官方的App Library看看已经发布的第三房Web App就知道了,其实这也是可行的。

#12楼   回复  引用  查看    

2007-12-26 11:56 by Leepy      
在iphone上可以做win app的开发吗?目前有没提供相关SDK呢?

#13楼[楼主]   回复  引用  查看    

2007-12-26 12:59 by Cat Chen      
@Leepy
不是Windows系统,而是Mac OS X,因此Win App肯定跑不了,专门设计的OSX App可以在破解后的iPhone上面跑。然而作为一个产品开发,你不应该指望用户会破解iPhone,特别是为了你的软件而破解,因为破解iPhone意味着失去保修,所以还是老老实实做Web App吧。

#14楼   回复  引用  查看    

2007-12-26 21:24 by aspnetx      
@Cat Chen
可怜的余晖老大啊

#15楼[楼主]   回复  引用  查看    

2007-12-26 21:54 by Cat Chen      
@aspnetx
该叫余总,哈哈……

不过上册老葛可没对我的小Palm说什么,嘻嘻。

#16楼   回复  引用    

2008-07-01 13:06 by lee max[未注册用户]
看到您的博客,说实在,我很兴奋!
我是一个iphone的推崇者,我看到了一个将要来临的移动信息时代,
我很看好 iphone 的web app,真诚希望能获得您的指教。

我做了一个web app 的 试验品,专门让疯友可以用iphone来浏览壁纸(据说2.0版将会支持保存网页图片)
网址是 http://www.tootoo8.com

请教问题如下:
1、safari 不支持我设置的 anchor
2、莫名其妙的,table 与 table 之间多了一些空白区块
3、不太明白,如何利用user-agent 让不是iphone的浏览器显示不同页面
谢谢!

#17楼[楼主]   回复  引用  查看    

2008-07-01 22:20 by Cat Chen      
@lee max
关于针对iPhone设计的web应用,我建议你平时使用PC或Mac上的Safari来做测试。

#18楼   回复  引用    

2008-07-13 14:33 by lee max[未注册用户]
呵呵,都装了
ie / firefox / safari



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1014698




相关文章:

相关链接: