转载自:http://www.4ebstudio.com/web-development-for-the-iphone-and-ipad-getting-started.html
根据全球最大的手机网络广告AdMob显示,iPhone操作系统已经占据全球智能手机50%的市场份额,紧接其后的是Android,占24%。而苹果的iPad首年的销售计划是1至4万台。无论你喜欢与否,iPhone操作系统,特别是Safari,对于网页开发人员来说已经是一股不可忽视的力量。如果你还没有准备好,那么现在已经是时候开始熟悉并深入研究这个操作系统了。
幸运的是,iPhone操作系统上的Safari是一款十分强大的浏览器。和桌面系统的Safari4一样,可以完好的支持CSS3以及HTML5。同时Safari还提供了一些随手可用的漂亮的界面元素,有些在iPhone和iPad之间还会有所不同。最后要说的是,由于iPhone操作系统已经存在一段时间了,因此有很多资可以利用。
我知道大多数关于iPhone操作平台的讨论都集中于原生应用程序。但是,使用HTML,JavaScript以及CSS同样可以创建强大的,具有原生外观的页面。本文讲着重讨论三个关于创建和优化你的网站的词汇:设计,代码以及测试。
在开始讨论之前,让我们先来看看用网络应用替代原生应用的优势与劣势。
优势:
- 不需要经过苹果的审批程序和繁文缛节,这一点对于现在苹果公司正在执行的极具争议的条款极其重要。
- 对于在其他流行的操作平台,如Android以及Blackberry,使用相同的代码进行网络应用的优化会更为容易。
- 你不需要学习Objective-C。
- 如果你的应用程序是收费的,那么你不需要和苹果公司进行收益分成。
- 你可以100%的控制你的支付方式,促销以及分销方式。当然,这也可能会成为负面影响,那要看你怎么看待这件事了。
劣势:
- 不会在App Store里面展示。
- 在设备上安装会比较麻烦。
- 无法实现iPhone操作系统的一些原生的功能,如推送及GUI控制。
设计
iPhone操作平台的网络应用设计和原生应用设计很相似,因此你需要使用一些强大的工具。无论你的网站框架设计工具是铅笔和纸张还是桌面软件,全都可以。
灵感
没有多少人知道苹果官网有一个叫做“Web apps”的栏目,该栏目专门用来展示一些优化过的网站。
以下是其他一些非常好的移动设备网页设计资源:
- Apple Web Apps Listing
- Mobile Awesomeness Design Gallery
- CSS iPhone Design Gallery
- Well Placed Pixels
- Apple App Store (虽然这些都是原生的应用程序,不过你可以找到一些很好的视觉设计灵感)
纸张
纸张模型是我长期以来一直使用的设计网站框架结构的工具。以下是几款常用的工具:
- Notepod: iPad and iPhone sketchbooks
- App Sketchbook
- PixelPads
- UI Stencils sticky pads
- Apress iPhone Application Sketch Book
- Printable iPhone Wireframe Template (免费)
数字化
一旦你想好了你的设计走页,我们需要将他们移到桌面上具体化。我非常喜欢使用的网页架构设计工具是OmniGraffle,但有时候也会直接使用Photoshop进行。不过使用什么,以下这些工具都会对你有很大的帮助:
- iPhone GUI PSD 3.0 以及 iPad GUI PSD (Photoshop)
- Layered iPhone GUI elements (Photoshop)
- PSD Vector Kit (Photoshop)
- iPad and iPhone stencils; 更多可以参看 Graffletopia (OmniGraffle)
- iPhone and iPad Development GUI Kits, Stencils and Icons
代码
当你开始为iPhone操作系统上的Safari进行代码设计的时候,理解浏览器的工作模式是非常重要的。另外,iPhone和iPad的浏览器会有一些细微的差别,例如表单选择的盒模型工作模式等。最重要的是,Safari可以很好的支持CSS3和HTML5,因此你可以放心使用先进的代码而不用担心跨浏览器的兼容问题。
相关知识
事实上,苹果公司对于iPhone操作系统的Safari说明文档已经足够详细了。唯一不足的一点就是缺少操作系统和浏览器探测的使用帮助。以下就是针对这点的相关使用说明:
iPhone & iPod touch浏览器探测
The Javascript
1
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
2
if (document.cookie.indexOf("iphone_redirect=false") == -1) window.location ="http://m.espn.go.com/wireless/?iphone&i=COMR";
3
}
The PHP
1
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||strstr($_SERVER['HTTP_USER_AGENT'],'iPod'))
2
{
3
header('Location: http://yoursite.com/iphone');
4
exit();
5
}
iPad浏览器探测
The Javascript
1
var isiPad = navigator.userAgent.match(/iPad/i) != null;
The PHP
1
$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
The .htaccess
1
RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
2
RewriteRule ^(.*)$ http://ipad.yourdomain.com [R=301]
iPhone & iPod touch窗口方向探测
The Javascript
1
function orient()
2
{
3
switch(window.orientation){
4
case 0: document.getElementById("orient_css").href = "css/iphone_portrait.css";
5
break;
6
case -90: document.getElementById("orient_css").href = "css/iphone_landscape.css";
7
break;
8
9
case 90: document.getElementById("orient_css").href = "css/iphone_landscape.css";
10
break;
11
12
}
13
14
window.onload = orient();
iPad窗口方向探测
1
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
2
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">
jQTouch移动设备框架
iPhone拥有众多开发框架,其中jQTouch是佼佼者。jQTouch提供了全方位的工具帮助你的移动网络应用程序看上去更像原生的。你可以到这里查看该框架的网站,也可以使用你手中的iPhone输入demo网址来感受该框架带给你的无穷魅力。
测试
在iPhone操作系统上创建网站或网络应用程序的一个关键且棘手的部分就是测试。和常规的网页浏览器相比,该测试会相对复杂一些。不过,如果你熟悉一些工具的使用的话,那么会使测试工具相对容易许多。
Liveview
Liveview是在你进行设计或者代码制作初始阶段时的一款智能测试工具。它允许你将桌面设计的图片的图片在你的移动设备上进行播放,以便看到设计图的实际效果。这对于获取字体大小以及视觉细节来说非常有用,毕竟有些时候想从photoshop上或许更为逼真的视觉效果比较困难。
使用iPhone模拟器
在我看来,没有什么比较好的iPhone或者iPad的仿真器。目前你在网络上找到的那些仿真器都是在浪费你的时间。你最好去下载苹果官方提供的iPhone操作系统模拟器的最新版本,当然,它也支持iPad。
虽然设置好SDK和本地测试环境需要花上一些功夫,但是这些还是值得你去做的,总比依赖于一些非官方且经常会出现不精确错误的仿真器来说更好。
PhoneGap: 两全其美?
PhoneGap是一款开源的,可以创建多移动平台的开发框架。如果你想使用HTML,CSS以及Javascript创建你的应用程序,又想让他们能够原生运行,并且可以出现在App Store上,那么PhoneGap便是解决方案。它不仅支持iPhone操作系统,还支持运行Android, Palm,Symbian,Windows,以及Blackberry操作系统的移动设备。
PhoneGap同样支持最近极具争议的3.3.1版本的苹果服务条款。换句话说,只要你的应用程序支持PhoneGap,那么它也同样会被苹果公司所接受。你可以查看一下使用PhoneGap创建的应用程序列表来进一步认识这款开发框架。