文 / 柯博文

2010年最热门的电子产品是什么?目前记录看来就是第一天销售30万台的Apple iPad。因为太超过预期的热卖了,让苹果电脑临时决定将出货到其他国家的时间延后一到五个月。这个商品到底有何特殊的地方?让我们历史退到2000年10月 Comdex展览,当时Microsoft比尔•盖茨的在演说中举起Table PC,于是所有的目光便集中在这一个高科技的板子:可以用笔在板子上画画,并写下文章,如此一个神奇的板子。虽然这样的创新想法由在HP制造成真,却因为大尺寸的触屏不便宜,加上不到2小时的电池、价格比笔记本电脑高……后面的事实大家都知道。

iPad 的硬件特征

没想到在2010年,以iPad为标志,这样的想法又卷土重来了 。从硬件的角度来看,它主要有如下功能设备:

  • 机器角度器
  • GPS位置
  • 外加设备装置
  • 点对点的蓝牙无线连接
  • Wi-Fi或 Wi-Fi加3G
  • 9.7-inchIPS触屏
  • 指南针
  • 扬声器
  • 麦克风

所以除了CPU 和触屏的大小外,事实上iPad就是拿掉打电话、收发短信功能的iPhone。IPS 触屏大小为9.7英寸,与传统的TFT LCD相比亮度较高,并且在多个角度都可清楚看到画面;有802.11n 的无线上网和Bluetooth 2.1+,30-pin 的外接传输口;CPU采用主频1GHz的“Apple A4”,该CPU本身有能力可以解码高清画质的视频。所以从硬件角度来看,iPad实在跟iPod Touch类似,就是屏幕大了点、CPU 快了些、电池可以用10个小时。那么,这样的硬件对开发者会有哪些机遇或者影响呢?

记得《PC World》杂志最近对iPad进行了测试,建议使用者不要让iPad碰水和摔到,最好买个保护盒装起来。这次调查是把一台iPad摔在地上,浇上咖啡,用钥匙刮擦,甚至还用棒球猛砸。 测试结果发现,iPad并不如iPhone耐摔,从座位高度摔到地毯上,几次之后显示器就出现瑕疵,如果正面直接摔在水泥地,屏幕玻璃也会出现裂痕,但显示功能未受影响;iPad不耐水,冲水和咖啡后,水会从耳机孔渗入,屏幕可能整个煳掉;iPad的屏幕十分耐刮,用指甲刮过不留痕迹,但背面却容易留下刮痕;另外如果成人坐在iPad上面也不会压坏。

所以程序员在设计软件时,可能要想想是否能使它在特殊地方做特殊应用,如工厂、建筑场所等。这样的可行性大吗?因为坏掉再买新的可能性大吗?如果这样,相关的软件应用可以开发吗?

我们再由软件来看iPad,电脑在iPad 上不是采用的不是像PC的Mac OS操作系统,而是智能型手机 iPhone OS 操作系统,这是为什么?

除了可以让硬件不用那样高端,操作性也可以用手指头代替鼠标与键盘,并且可以沿用iPhone 上现有的20万款软件,并且有大量的程序员想尽办法开发新的应用……

iPad SDK 分析

让我们用技术开发的另一个角度来分析iPad,以SDK的角度来看iPad的开发技术。首先必须要大家知道的是,您只要学过iPhone SDK 和程序代码,都可以一行都不用修改,可以直接在iPad上执行。或者这可以这样说,iPad 事实上是用iPhone OS 和程序设计语言Objective-C, 所以您只要学一套程序,就可以在两种机器上面执行,当然您会发现Apple 还是专门替iPad提供了不少Libraries,以列表的方式显示如下:

#. User Interface

以前iPhone 设计时,整个触屏只有320 x 480的大小,和旋转90度时的 480 x 320 pixel点,但是iPad 的触屏有 9.7-inch,而画面点数有1024 x 768 pixel大小。所以在设计UI使用者互动界面时,几乎要重新设计iPad专属的大小。

#.Split Views 切割画面 UISplitViewController

切割画面,您可以切割成两个画面来显示,例如左边的画面使用列表的方式,把所有的清单条列式的列出来,另外一边显示内容,并且也支持旋转功能,当使用者把iPad 转动时,您的程序也可以处理画面要显示的内容和位置。

#. Custom Input Views-UIR-esponder

您可以自定义使用者的输入键盘的设定,显示程序定义的输入和配套方法的时候,成为第一个接收到event 的程序。现在,您可以定制任何输入的方法,输入的视窗位置可以是在顶部或者底部。(以前,标准的Apple键盘是唯一的输入方法)

#. Popovers layer-UIPopov-erController

就是跳出一个新的视窗层,您可以使用它们来执行工具,调色板,选项菜单,并没有挡住您的应用程序的主要内容,并提供用户的信息选取。

#.Modally presented

控制项,现在支持可配置的报告风格,它确定是否所有的窗口或只有部分被 modalVIEW覆盖。

#. Toolbars

工具栏,现在可以放置在顶部和底部的位置。iPad屏幕尺寸比iPhone大,这样程序也可以增加工具选项。

#. Page Sheets的UI 设计

当iPad 是直放时效果是全屏幕,但是如果iPad 是横放时,视窗只有直的宽度。

#. Form sheets

可是设定程序出来的UI是放在画面的中央,看起来像是跳出来的视窗,在iPad Mail 设定选项时,便是用这样的方式来显示要使用者输入的个人资料。

为了开发iPad技术,Apple同时也公布iPad/iPhone OS 3.2 版。我们一起看看有什么新的功能,这一个版本只限在iPad公司专用的。

  • 手势识别器-UIGestureRecognizer

是的,除了传统的点击、移动等一般的手指动作外,新的SDK将可以让您设计出手势和手写的程序,您还可以运用在安全辨识或游戏中,用不同书写的方法,产生不同的功能。

  • Core Text

在之前的SDK版本,如果想要显示不同的字体和文字样式,是非常不容易的事,但是现在新的SDK使这一切简单多了。

  • 文字动画-效果CATextLayer

之前的动画效果都是针对UIView 画面来做动画效果,但这一个版本开始支持文字效果的动画。

  • 自制字体-UIAppFonts

以前,尤其在 iPhone 中文字体上面,我们总是觉得没有太多的字体可以使用,现在我们可以用UIAppFonts 来注册您的字体为系统字体,并可以在程序中使用。

  • 拼字矫正功能-UITextChecker

想在程序中,自动矫正用户拼字的问题吗?现在新的UITextChecker,就可以加入程序中,只要几行,您的软件便可以有这样的功能。

  • 支持共享文件

iPad 和新版的iPhone 终于可以支持共享档案了,以前因为 sandbox 设计,所以一个程序无法接触到另外一个程序和文件,虽然在安全和保密方面有很大的帮助,但是却也限制软件一旦删除或升级,旧的文件就全部都不见了,这一个问题在 UIFileSharingEnabled 出现之后,您就可以透过iTunes 把程序中的\Documents\* 档案,备份和分享到PC/MAC 上面了,请注意这样的功能还是要透过iTune 这个软件。

  • 注册可以支持的文件类型-Info.plist

您可以透过设定Info.plist 告诉系统,哪一些文件格式您可以支持和打开。当Apple Mail 打开某一个特别的文件格式时,您可以用UIDocumentInteractionController 来显示文件给用户,这是一个非常特别的功能,可以让您的程序在iPhone/iPad OS平台的应用程序之间相互作用。

  • 外接显示的支援

如果您用iPad/iPhone 专用的外接设备,现在UIScreen 可以传回一个以上的外接设备屏幕到您的程序,您同样可以用UIWindow 来控制不同屏幕要显示的内容,您可以在程序中设定每一个屏幕的UI和动作。

  • UIMenuController

事实上它和刚刚提到的popover有点像,程序员可以自己设计出要跳出来的视窗,如果您想知道如何设计,您可以参考我的网站www.powenko.com,里面有范例可以让您设计这样的程序。

  • PDF 档案打印

如果您想将文件在程序中,储存为PDF档案,您可以使用下面的新功能就可以达成UIGraphi-csBeginPDFContextToFile,UIGraphicsBeginPDFContextToData,UIGraphicsBeginPDFPage,UIGraphicsBeginPDFPageWithInfo和UIGraphicsEndPDFContext。

  • CALayer 可以支援阴影

用函数shadowOpacity,sha-dow- Radius,shadowOffset,sha-dowColor和shadowPath,就可以让您的显示元素有阴影的效果。

  • 播放影片-MPMoviePlayerCon-troller

现在播放影片有新的函数 MPMoviePlayerController,程序员可以不一定用全屏的方式来播放影片,现在程序可以自定大小、位置甚至按钮的样子,它是继承 MPMoviePlayerViewController。

iPad 经典案例介绍

#. Time 杂志

运用iPad 的大屏幕,用更像实际杂志的排列方法来设计软件的UI,阅读起来更像是实际的杂志。

#. Kindle  iPad 版本

亚马逊所设计的Kindle  iPad版本软件真的做得很漂亮,阅读起来效果很好,大尺寸又是彩色的画面,当然可以下载、购买与阅读,不禁让人想问卓越亚马逊这家全球最大的网上中文书店一个问题,那您研发的Kindle电子书怎么办?

#. LoopTek eReader - iPad Version

当然自家的录克软件公司eReader软件也要提一下了,这是一个离线阅读系统PDF、HTML文件档或多媒体文件 3GP、MOV、 MP3 等的iPad阅读软件,用户可以用PC或MAC通过Browser与iPad连线,并做上传、修改、管理等操作并且可以备份资料在iPad中,离线阅读文件就变得很容易。

结束语

总的来说,iPad的大尺寸画面可以让软件显示更多的文章和资讯,而这样的大小其实跟一本书一样,实在是很有想象空间。以目前Apple Store上面的应用来看,今天特别替iPad设计的都是跟内容、文章、游戏相关的应用,但是相信未来一定会有更有趣的发展,毕竟iPhone起初都是以创新、独特的软件得到用户的购买和捧场。现在用户的特性都是喜欢新奇的事物,所以越是可以吸引用户的目光就越会得到讨论,让我们拭目以待iPad未来的发展。

作者简介:

柯博文,美国硅谷LoopTek公司CEO,专注于Google Android和Apple iPhone手机应用软件开发,目前已经在Google的Android Market和iPhone上开发销售近百款软件,并有多款曾经为Top 10软件。

(本文来自《程序员》杂志10年05期)

iPad 开发技术与案例分析相关推荐

  1. 基于CAMx的空气质量模拟及污染来源解析技术与案例分析

    CAMx模型是一个基于大气化学,针对臭氧.颗粒物和雾霾天气过程的大气污染物计算模型.该模型由安博(Ramboll)技术团队在美国国家环保局和许多州立环保部门的支持下不断开发和完善.美国国家环保局利用C ...

  2. java me基础教程 pdf_Java ME手机应用开发技术与案例详解 PDF

    资源名称:Java ME手机应用开发技术与案例详解 PDF Java ME手机应用开发技术与案例详解基于Java ME,系统描述了Java ME手机应用开发的各个方面.全书按照Java ME程序的开发 ...

  3. java web 应用技术与案例教程_《Java Web应用开发技术与案例教程》怎么样_目录_pdf在线阅读 - 课课家教育...

    出版说明 前言 第1章 java Web应用开发技术概述 1.1 Java Web应用开发技术简介 1.1.1 Java Web应用 1.1.2 Java Web应用开发技术 1.2 Java Web ...

  4. 微信小程序开发技术预研分析报告

    预研背景 本次预研是对微信小程序使用流程及开发技术的研究. 预研目的和意义 本次预研在于了解小程序具体语法.接口功能.具体实现方式等. 预研目标 通过微信小程序的技术研究可实现自主完成小程序的功能开发 ...

  5. 京东业务增长10倍背后的敏捷开发秘籍【案例+分析】

    需求又要改? 项目上线时间又提前了? 老板还嫌增长不够? 团队都开始灰心丧气了? 来看看京东内部是如何解决这些让人焦头烂额的棘手问题. 1 两次失败之后成功支持双11活动 京东每年两次大的的促销活动中 ...

  6. Redis开发设计规范及案例分析

    引言 redis不是垃圾桶也不是 SUPER MAN,能力和资源都有限,不合理的使用会降低它的健康度,严重时甚至会引起redis抖动.阻塞等进而导致服务不可用,每一个使用redis的开发人员都应当掌握 ...

  7. Java获取本机连接过的所有WiFI密码并且以TXT文本输出文件,javaee开发技术与案例教程

    运行效果: WIFI信息会在控制台打印出来 自动打开生成WIFI信息的TXT文本 原理: 本教程原理就是用Java调用cmd命令获取WIFI信息,然后使用BufferedReader来读取内容. 使用 ...

  8. 阅读笔记(ROS书籍⑤)《ROS机器人开发:实用案例分析》卡罗尔·费尔柴尔德 托马斯·L.哈曼

    这本书是在微信读书上发现的,它在语言描述上比较容易让人理解,同时也有与无人机相关的案例,这是我比较关注的. 以下摘自我的微信读书笔记. ◆ 1.6.1 ROS节点 >> 一般而言,节点就是 ...

  9. 给力!百度智能云3个案例入选《云开发技术实践白皮书》

    云开发是云原生一体化开发环境和工具平台,为开发者提供高可用.自动弹性扩缩的后端云服务,包含计算.存储.托管等 Serverless 化能力,可用于云端一体化开发多种端应用(小程序.公众号.Web 应用 ...

最新文章

  1. 计算机网络知到马惜平答案,计算机网络实习用Dreamweaver搭建个人网站
  2. springMVC源码学习之:springMVC响应请求的几种方法
  3. 在react next 中使用rem_CSS中的rem:了解和使用rem单位
  4. 人脸识别算法初次了解
  5. php变量值随机,PHP生成各类随机数值
  6. 【arduino】DIY音乐播放器,arduino音箱播放wav音乐
  7. python读取与写入配置文件
  8. 【速学速记】Python 高阶函数
  9. springboot controller访问不到_Spring Boot 开篇:快速入门
  10. kafka(一)设计分析
  11. Citrix为什么要兼容第三方服务器虚拟化平台
  12. 操作系统原理与实践-1熟悉实验环境
  13. lisp型材库_基于AutoLISP的AutoCAD标准零件库的开发研究
  14. 六人扑克牌游戏 三先 规则
  15. 复合辛普森公式求解定积分 matlab
  16. Large scale GAN training for high fidelity natural image synthesis解读
  17. U盘禁止写入/SD卡被禁用怎么解除
  18. 使用手机号登录、注册、重置密码
  19. VMware中使用U盘PE系统
  20. 全球及中国汽车机电开关行业十四五发展规划及投资前景分析报告2022-2028年

热门文章

  1. 【C语言编程练习】5.7填数字游戏求解
  2. Android文件存储编程实验,Android编程中File文件常见存储与读取操作demo示例
  3. 误删微信聊天记录觉得手足无措?免费教你如何恢复
  4. 二叉树:二叉树视频笔记
  5. 抖音爆火李峋同款爱心代码,简单附带教程,还有烟花代码,手残党也能学会!!
  6. AMD、ARM、Intel、Qualcomm
  7. 诱惑视频木马样本态势
  8. 算法工程师也有35岁危机吗?
  9. 使用微信wx-open-launch-app标签实现微信网页打开App记录
  10. HCNP学习笔记之OSPF协议原理及配置1-基础知识