如何为iOS设备开发通用的应用程序

转自:http://www.builder.com.cn/2013/0311/2147862.shtml


Builder开发者在线 随着越来越多的iOS设备问世,开发人员应当重新评估其创建想要在所有设备上运行的应用程序的方法。当首次引进iPhone的时候,开发人员并没有关注于创建一个简单的代码库以使能够运行在多重设备上。没有其它的设备。在iPod Touch进入市场的时候,界面-尺寸和分辨率-几乎是等同于第一代的iPhone。开发、编译以及发布与这两个设备兼容的通用应用程序是非常简单的。如今,开发一套能够在所有设备上运行的简单应用程序并不会太难。

过程步骤

Apple Xcode使得通用二进制代码的编码变得很简单,但没有实现自动化。需要一点附加的工作-规划和编码阶段均需要-以使得生成可扩张的通用应用程序。开发一个通用的应用程序的第一步是从设备菜单(见图A)中选择“通用”选项。Xcode 会为iPhone、iPod以及iPad设备使用代码创建一项目。创建了两个故事板文件并将其附加到通用项目中。其中一个故事板文件支持iPhone和iPod设备的屏幕尺寸和分辨率,而另外一个故事板文件要独属于设备产品中的iPad 家族系列。

图 A
如何为iOS设备开发通用的应用程序

除了设备-独有的故事板文件(见图B)之外,一个通用的项目会包括两个单独的区域用于单独地控制每个类型设备的配置设置。被支持的方向、应用程序图标以及登录图片由在项目设置下面的概要标签的不同部分内进行管理 (见图 C 和 D)。

图B
如何为iOS设备开发通用的应用程序
图 C
如何为iOS设备开发通用的应用程序
图 D

如何为iOS设备开发通用的应用程序

正如您所看到的, Xcode具有用于开发通用应用程序的内置的支持。如果开发人员的意图是维持所有设备的一般体验,那么只需遵循在每个故事板上的相同的设计和流型,编译然后运行即可。然而如果有必要在每一个设备上具有不同的体验,就会需要额外的编码。

iOS编程指南的高级应用程序技巧 部分,Apple使用了开发在iPad 设备中的横向和在iPhone以及iPod设备中的纵向上支持登录的通用应用程序的例子。Info.plist是使用元数据控制iOS应用程序某些方面的非常有效的方式。将特定键附加到Info.plist文件上是控制代码库之外的参数的一种简单又可扩展的方法。 可以参考一下列表键引用 ,以获得在Info.plist文件中可以定义的参数的一览表。

在Info.plist 文件内部的一组名称/数值结构如下:

<key>UserInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscape</string>

该<key>标签识别属性, <string>标签附上数值。在上面的例子中,由我们的通用应用程序支持的每一个设备都将以横向模式启动。为了针对一个特定的设备,我们将这三个设备类型的其中一个附到键上。举例来说,如果我们需要让iPhone 设备以纵向模式启动,我们应当将以下的代码加到Info.plist文件中:

<key>UserInterfaceOrientation-iphone</key>
<string>UIInterfaceOrientationPortrait</string>

可接受值为iphone, ipad以及 ipod。

越过界面

有时候需要创建条件代码路径以支持设备-独有的功能。Apple包含了用于容易地测定当前设备类型的宏。 UI用户界面惯用语 宏是UIKit 框架的一部分,可供所有的应用程序使用。如果该设备是 iPad,那么从该宏中返回的值将会是 UIUserInterfaceIdiomPad。如果该设备是 iPhone 或是 iPod Touch,返回的值则是UIUserInterfaceIdiomPhone。

无论什么时候使用该宏,都有必要出现分支或运行设备-独有的程序。典型的条件语句看起来应当如下所示:

If (UI_USER_INTERFACE_IDIOM() == UIUserInterfacePhone) {
// Place iPhone/iPod specific code here...
}else{
// Place iPad-specific code here...
}

开发人员一直在不断地寻找使开发iOS 应用程序所需要的代码数量最小化的方法。其中一个方法当然是维护用于再使用的类别、方法和函数的程序库。考虑在通用应用程序中用到这些类别的可能性是非常重要的。考虑到这一点,您应当在必要时使用条件代码路径开发类别。

最终想法

开发通用应用程序有利有弊。从维护和支持的角度来看,更易于管理代码库。同时,一个通用的应用程序方法意味着单一发行-升级和补丁-同时覆盖所有的设备。然而商业需求可能会推翻开发和发布通用应用程序的可行性。有时候对iPhone应用程序和为iPad发布的相同应用程序采取不同的价格点可能会更合适。目前,应用程序商店对每一个应用程序仅支持一种价格。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值