如何制作 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 竞赛中的机器人冒险

推荐阅读

突袭前,海豹突击队在按全尺寸复制的本拉登住所进行排练

周日击毙 21 世纪头号通缉犯的海豹突击队非常注重准备和准确性,他们按照“十一罗汉”的风格重建了目标...

选择退出:学校设备正在共享你的家庭数据,但你可以阻止他们

你不仅仅是一个数据点。选择退出功能可帮助你恢复隐私。一名 6 岁的孩子放学回家时,带着教育委员会提供...

三星新款冰箱原型有望为你种植食物

在消费电子展的展厅对面,三星的 Bespoke Plant 冰箱看起来就像一台典型的高端冰箱。然而,...

诺贝尔物理学奖表彰对黑洞的洞察——包括我们银河系中的黑洞

瑞典皇家科学院周二宣布,2020 年诺贝尔物理学奖将由三位天体物理学家共同获得:加州大学洛杉矶分校的...

如何使用 Little Snitch Mini 查看哪些 Mac 应用程序已连接到互联网

您可能知道 Mac 上的应用程序一直在连接互联网,但它们究竟在连接什么?您可以使用 Little S...

废热是免费能源。那我们为什么不利用它呢?

在未来几年内,伦敦地铁产生的粘稠热量将不再无用地飘散到大气中。相反,其中一部分将为附近 1,400 ...

什么是 8K?你的下一台电视应该配备 8K 吗?

自 2019 年推出 8K 分辨率电视以来,有两个问题一直占据着讨论的焦点:什么是 8K?它值得吗?...

木星的大红斑像果冻一样摇晃

如果说月球是由奶酪制成的(但事实并非如此),那么木星著名的大红斑 (GRS) 更像是一碗果冻。从新角...

如何阻止垃圾邮件破坏你的收件箱

电子邮件的便利性(免费信息、快速交付)也使其容易受到垃圾邮件的攻击。专业的垃圾邮件发送者只需一个地址...

这款受壁虎启发的机器人可以帮助我们解决太空垃圾难题

众所周知,在数十年的太空旅行中,我们并不总是清理自己的垃圾。太空垃圾——如报废卫星、空火箭燃料容器以...

第一个自冷罐

二十年前,米切尔·约瑟夫着手解决现代社会面临的一大挑战:如何制造一罐可以自行冷却的啤酒。他设计了一种...

灭绝的“雷兽”在进化的转瞬之间从微型变成巨型

一颗导致恐龙灭绝的小行星撞击地球后,史前巨兽失去了对地球的统治权。大约 6600 万年前始新世时期兴...

特斯拉 Model X:“更大、更好的本田 CR-V”

特斯拉 Model X 正在美国 30 个城市巡回展出,与粉丝见面。不过,这些粉丝可不是普通粉丝,他...

早餐真的是一天中最重要的一餐吗?

大多数人从小就被不断提醒,早餐是必须吃的。但近年来,营养学家和科学家对这一关键的进食时间提出了质疑。...

Yurucamp△特典影像OVA#1的魅力与评价:重新发现露营的乐趣

《悠闲露营》OVA 加值视频的魅力与背景■作品概要《摇曳露营△》是根据芳文社漫画《Manga Tim...