如何制作 iPhone 应用程序:第 2 部分

如何制作 iPhone 应用程序:第 2 部分

在本系列的第一部分中,我们介绍了组装一个可行的 iPhone 应用程序开发平台的“基本要素”。现在我们的桌面上堆满了乱七八糟的电缆,是时候撸起袖子开始拼凑一些代码了。

不过,首先要做的事情是。在开始开发下一款出色的美国应用程序之前,你必须完成两件事。一个是免费的,但另一个则需要你掏钱。

  • 成为注册的 iPhone 开发人员。这是免费的。没错,现在就去做吧;然后你就可以下载免费的 iPhone SDK(软件开发工具包;目前最新版本是 2.2.1)。请注意,正如本系列第一部分所述,要使用此 iPhone SDK,您还必须拥有基于 Intel 的 MacMac OS X 10.5.5。此外,您必须在成为单一实体开发人员(例如 Dave Prochnow)或公司开发人员(例如 Microsoft Corporation)之间做出选择。如果您选择走公司路线,您将被要求提供公司注册文件(例如联邦 TIN、合伙企业、有限责任公司或 S 公司文件)。
  • 订阅 iPhone 开发者计划。标准计划的订阅费用为 99 美元(加销售税),企业计划的订阅费用为 299 美元。大多数人都可以轻松接受 99 美元的标准计划订阅。做出选择后,您将被带到 Apple Store,在那里通过信用卡交易即可快速订阅一年的 iPhone 开发者计划。

注册并订阅后,登录 iPhone Dev Center 并开始下载所需的所有内容:SDK、视频、示例应用程序和文档。当然,您可能已经了解其中的一些内容,但您对 iPhone 的了解越多,开发应用程序就越容易。

请注意,我说的是“应该”更容易。这是因为,如果你对 Objective-C 编程语言和 Apple 的 Cocoa 开发环境缺乏扎实的基础,你可能会经历一段非常痛苦的学习过程。

幸运的是,有一些技巧和窍门可以帮助最大限度地减少这个学习曲线:

1. 不要重新发明轮子。找到一个与您的应用非常相似的 Apple 示例应用(无论是外观还是功能)。然后去掉 Apple 的内容并将您自己的代码集成到这个工作示例外壳中。

2. 从他人的错误中吸取教训。从 iTunes App Store 中挑选几款具有代表性的竞争对手的应用程序。借鉴他们做对的地方,并严格避免他们做错的地方。

3. 在高速公路上寻找巧妙的编程技巧。当你被难倒时(你会被难倒好几次甚至更多!),在网上搜索一个可以巧妙地处理与你类似的问题的代码片段或片段。

4. 创新是所有应用之母。不要随波逐流(市场需要多少粗糙的身体功能导向应用?)——而是要开创一种新潮流。

指示

学习一个全新的编程系统就像从消防水管中汲取一口水一样困难。所以,慢慢来,一旦你在 Objective-C 和 Cocoa touch 编程方面打下了坚实的基础,就该开始独立开发了。

一般来说,你的应用程序开发周期应该是这样的:

1. 构思您的应用概念。使用大而宽的笔触并创建初始应用设计文档。慢慢充实应用的所有细节。考虑图形、多媒体、字体、颜色、布局、组织、程序流程和应用目标。文档越详细,您的应用效果就越好。

2. 安装 SDK。这个 1.5GB 以上的庞大下载包里包含完整的 Apple Xcode Cocoa 开发环境。Xcode 的支持包括大量实用程序、文档和 Mac OS 示例代码。如果您希望体验 iPhone 开发的完整体验,则需要有效的网络连接来下载示例代码和其他参考库材料。但是,此网络连接对于 Xcode 操作并非必需。

3. 打开 Xcode 并创建您的项目。Xcode中有多个项目模板,可确保您不会搞砸此步骤。

Xcode IDE。戴夫·普洛斯诺

4. 构建界面。还有什么比拖放式界面设计更简单的呢?Xcode 中集成了一个名为 Interface Builder 的可视化开发实用程序。在 Interface Builder 中,您可以开发应用程序的完整外观和感觉,而无需编写一行代码。

Xcode 的界面构建器。Dave Prochnow

5. 编写代码。如果说 Interface Builder 是应用程序的骨架和血肉,那么代码就是血液和神经系统。没有代码,您的应用程序就只是一团毫无生气的废物。编写代码时要简洁、干净。

6. 构建它,它就会运行。您的第一级应用程序测试应该使用 Xcode 友好的 iPhone 模拟器进行。当您在项目中选择“构建并运行”时,Xcode 将编译您的代码并自动启动 iPhone 模拟器。这个 Xcode 实用程序非常适合快速评估应用程序的基本流程,但它不能替代在 iPhone 和 iPod touch 上进行的实际测试。事实上,这将是您应用程序开发过程中为您的项目创建“测试团队”的好时机。为了将测试人员添加到您的项目中,您必须从 iPhone 计划门户获取配置文件。通过您的 iPhone 开发人员计划订阅,可以访问此门户。明智地使用此功能。让您的项目测试人员为您的应用程序编写和安排测试场景。通过从第 1 步创建完整的应用程序设计文档,此过程将得到简化。

7. 测试一下。为了在真正的 iPhone 和 iPod touch 上测试您的应用程序,您必须对您的应用程序进行代码签名。这些证书是从您在步骤 6中使用的同一个 iPhone 程序门户获得的。让您的应用程序成功进行代码签名并在真实设备上加载可能很困难。以下是四个技巧,可确保您的应用程序可以在测试设备上运行:

  • 尽管 Apple 向我们保证这种“直接”编码是不必要的,但我发现它几乎总是必要的:不要依赖 info.plist 中的 bundle ID,而是将 iPhone 程序门户中实际的应用程序 ID 插入到 info.plist 的 bundle ID 字段中。
  • 在目标的获取信息按钮的构建列表的任意 iPhone OS 设备键下对您的应用程序进行代码签名。
  • 使用代码签名标识密钥(位于任何 iPhone OS 设备密钥的正上方)在同一个目标信息位置对你的应用进行代码签名。
  • “构建”菜单中选择“构建” —而不是“构建并运行”。

一旦您成功编译了应用程序包(该包的图标可能有一个白色的国际“否”符号 - 带有斜线的圆圈),请将其适当的配置文件发送给您的测试人员。

8. 微调。成功完成所有测试后,使用特殊的 Xcode 实用程序来测量和调整最终应用程序。这最后一步将确保您的应用程序成为任何 iPhone 和 iPod touch 的良好公民。

接下来,我们的第三集也是最后一集将把这只小猪推向市场!关注 Apple iTunes App Store 并跟踪我们的进展。

Xcode 的 iPhone 开发中心。Dave Prochnow

<<:  搭建一座桥梁

>>:  FIRST 竞赛中的机器人冒险

推荐阅读

2021 年,你将享受全面回忆

人类天生就有能力每秒记住近 2 比特的信息,或者一生记住几百兆字节的信息。与 DVD 电影(最多可容...

科学家们想了解猴面包树是如何存活数千年的。后来这些古树开始死亡。

猴面包树是撒哈拉以南非洲景观的标志性组成部分。猴面包树的树枝盘根错节,可盘旋至近 100 英尺高,树...

当宇宙飞船着火时会发生什么?

下一批补给品计划于 3 月 22 日发射至国际空间站,里面将有一些有趣的科学实验。补给品将由 Orb...

更智能、更安全、更强大、更先进的未来材料

材料科学长期以来一直是材料进步乃至所有进步的根源,以至于我们可能倾向于认为它最大的贡献已经过去了。石...

Yowamushi Pedal -LIMIT BREAK- 第 5 季:全面了解新挑战和突破极限的剧情

Yowamushi Pedal -LIMIT BREAK- 第 5 季回顾和详情概述《飙速宅男 -L...

“非凡”的化石为令人困惑的翼龙问题提供了线索

古生物学中争论不休的话题之一是翼龙如何飞行。一些专家推测,其中最大的翼龙可能根本无法飞行,就像今天的...

《东京24区》的魅力与评价:深入了解故事和人物

东京 24 区 - 东京 24 区 - 景点和评价■作品概要《东京24区》是一部改编自原创动画作品的...

路西法彗星:不容错过的动漫体验

路西法彗星——太空与梦想的交汇点2015 年秋季动漫季有许多新动漫作品俘获了观众的心,但《路西法彗星...

夜之魔法师的魅力与评价动画:不容错过的魔法世界

暗夜巫师动画 - 深渊中的魔法与战斗的故事《夜之魔法师动画》于2007年至2008年播出,是根据菊池...

大老鼠如何占领北美

在世界各地的考古遗址中,通常会忽略一组遗骸:啮齿动物的骨骼。数千年来,老鼠一直与人类一起生活(和死亡...

“我一个人可以做到!”《第五季》的吸引力与评价:独特的世界观与人物塑造

我一个人就可以做到! [第5季] - Hitori dekirumon! - 回顾与推荐《一人出门!...

妖怪手表系列新品的魅力与评价:有哪些不可错过的进化?

“妖怪手表!” (新系列)的吸引力与评价“妖怪手表!” (新作)是2019年4月5日至12月20日...

这款小工具可在几秒钟内自动调音任何吉他

纵观自动吉他调音器 23 年的发展历程,它一直都是一套极为复杂的系统,价格高达数千美元,而且需要繁琐...

日本袭击珍珠港背后的秘密武器

今天是珍珠港事件 71 周年纪念日,此次袭击事件将美国卷入了第二次世界大战。这次袭击是毁灭性的。超过...

一个塑料杯和一个吸尘器可以改写太阳系的历史

吉姆·哈里斯说,现在它已经收起来了。没什么可做的了。他参观了肯尼迪航天中心的仪器储藏室,以确保一切正...