《iOS 9应用开发入门经典(第7版)》——第2章,第2.2节使用iOS模拟器

简介:

本节书摘来自异步社区《iOS 9应用开发入门经典(第7版)》一书中的第2章,第2.2节使用iOS模拟器,作者 【美】约翰 雷(John Ray),更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 使用iOS模拟器
第1章说过,甚至不需要有iOS设备就可进行iOS开发,其原因是Xcode包含iOS模拟器。该模拟器很好地模拟了Apple iPhone和iPad,包含Safari、通讯录、设置、Game Center、日历、地图、新闻(News)、提醒事项(Reminders)、健康(Health)、Watch和Wallet等应用程序用于集成测试,如图2.29所示。


6fba3ef2dd32e5d608d4f0e405247a4e51a7a3f4

图2.29 iOS模拟器包含iOS标准应用程序的简化版

在早期针对模拟器进行开发可节省大量的时间:您无需等到将应用程序安装到实际设备就可看到修改代码的效果。另外,您无需购买并安装开发人员证书就可在模拟器中运行代码。

然而,模拟器并非完美的iOS设备,它不能模拟复杂的多触点事件,也不能提供有些传感器(陀螺仪、加速计等)的真实读数。在这些方面,它最多只能旋转以测试横向界面以及模拟简单的“摇动”。虽然如此,对大多数应用程序来说,其功能足够了,是开发过程的重要组成部分。

警告:在Mac上运行得快并不意味着在iPhone上也运行得快
对模拟器来说,绝对不能指望的一点是,模拟的应用程序性能类似于实际应用程序性能。模拟器通常运行得非常流畅,而实际应用程序可使用的资源可能更有限,因此性能没有在模拟器中好。请务必偶尔在实际设备中进行测试,以确保预期与实际情况一致。

2.2.1 启动应用程序
要在模拟器中启动应用程序,可在Xcode中打开项目,确保生成方案被设置为您选择的iOS设备(iPad Air、iPhone 6、iPhone 6+等),再单击Run按钮。几秒钟后,模拟器将启动并加载应用程序。您可使用本章的文件夹Hour 02Projects中的HelloSimulator项目对此进行测试。

启动并运行后,应用程序HelloSimulator将显示一行文本以及一幅从网站下载的图像,如图2.30所示。

应用程序运行后,您便可使用鼠标与其交互,就像使用手指一样:单击按钮、拖曳滑块等。如果您单击应用程序希望获得输入的字段,将显示屏幕键盘。您可使用Mac键盘输入,也可通过单击屏幕上的键盘按钮来输入。还可模拟iOS的复制并粘贴服务,方法是在文本中单击并按住鼠标,直到出现熟悉的放大镜。

单击Xcode工具栏中的Stop按钮退出应用程序。也可选择菜单Hardware>Home,但Xcode将以为应用程序还在运行,导致不同步。


9dc0ed7cd2ed14e1a0b8c54572a63107f06ca6d7

图2.30 在Xcode中单击Run按钮,在模拟器中启动并运行应用程序

注意:
在模拟器中启动应用程序将在模拟器中安装它,就像在iOS设备中安装应用程序一样。退出应用程序后,它仍保留在模拟器中,直到您手工删除它。

要从模拟器中删除已安装的应用程序,可在其图标上单击并按住鼠标直到它开始摇摆,然后单击出现在左上角的X。换句话说,将应用程序从模拟器中删除的方法与将其从iOS设备中删除完全相同。

要将模拟器重置到原始状态,可从iOS模拟器菜单中选择Reset Content and Settings。
提示:
可随时切换到其他设备,为此只需在菜单Hardware>Device中选择相应的菜单项。

2.2.2 模拟多点触摸事件
虽然只有一个鼠标,但可在光标位于iOS模拟器屏幕上时按住Option键来模拟简单的多点触摸事件,如两个手指合拢和张开。这将绘制两个表示手指的圆圈,并可使用鼠标来控制它们。要模拟多点触摸事件,可在按住Option键的情况下单击并拖曳。图2.31显示了两个手指合拢手势。

请使用应用程序HelloSimulator来尝试这些操作,您应该能够使用模拟器的多点触摸功能来缩放屏幕上的文本和图像。


1e62bacb6789d7b5fa828e3913cdb74081140214

图2.31 使用Option键模拟简单的多点触摸

提示:
在模拟器中,要移动模拟的指尖(例如,以便能够在屏幕底部附近执行合拢手势),可按住Shift键并拖曳模拟的指尖。只要按住Shift键不放,就可将模拟的指尖移动到任何地方。

2.2.3 旋转模拟的设备
要模拟设备旋转,可从菜单Hardware中选择Rotate Right或Rotate Left,如图2.32所示。您可使用这些菜单项将模拟器窗口旋转到全部4种可能的朝向,并查看屏幕上的结果。


56c92a87c6351f516e85a599bfde48d26018e8c5

图2.32 旋转到各个可能的朝向

同样,使用HelloSimulator对此进行测试。该应用程序将对旋转事件做出反应:相应地调整文本的方向并获取一幅新图像。

2.2.4 模拟其他情况
您可能想在模拟器中测试其他几种独特的情形。使用Hardware菜单可访问如下功能。

Device(设备):选择其他设备,模拟应用程序在这些设备上的运行情况。
Shake Gesture(摇动手势):模拟快速摇动设备。
Home(主屏幕):模拟按下Home(主屏幕)按钮的效果。
Lock(锁定):模拟锁定的设备。由于用户可在应用程序运行时锁定iPhone和iPad,有些开发人员选择让其应用程序以独特的方式对此做出反应。
Reboot(重启):重启模拟的iOS设备。
Touch ID Enrolled/Simulate Finger Touch:启用/禁用指纹识别(Touch ID)设备,并模拟在Touch ID传感器上有效或无效的触摸。
Simulate Memory Warning(模拟内存警告):触发应用程序的内存太少事件,这对测试应用程序能否在资源太少时妥善地退出很有用。
Toggle In-Call Status Bar(切换来电状态栏):当应用程序运行时,如果有来电,屏幕顶部将出现另一条线(触摸它可切换到电话)。该选项模拟该直线。
Simulate Hardware Keyboard(模拟键盘):模拟连接的键盘,只需使用Mac键盘即可。
TV Out(电视输出):显示一个窗口,其中显示了设备的电视输出信号的内容。本书不使用这项功能。
请在应用程序HelloSimulator中对旋转、摇动或内存不足进行测试。图2.33显示了该应用程序对模拟摇动手势做出的反应。


a3c2a6b0ea1170b35f583ed141ed90708ed98b82

图像说明文字 图2.33 在iOS模拟器中,可测试应用程序如何处理多种独特的情况

警告:在iOS应用程序崩溃时恢复
如果应用程序在iOS模拟器中运行时出现问题并崩溃,Xcode将显示调试器。要在应用程序崩溃时恢复,可单击Xcode工具栏中的Stop按钮退出应用程序,再隐藏调试器并检查代码。第24章将介绍如何使用调试器找出导致应用程序崩溃的bug。

2.2.5 添加其他要模拟的设备
默认情况下,Xcode只显示在售的Apple iOS设备及其模拟选项(可在Xcode的下拉列表Scheme和模拟器的Devices菜单中找到它们)。要添加其他设备,可在模拟器中选择菜单Hardware>Device>Manage Devices,如图2.34所示;也可在Xcode中选择菜单Window>Devices。

这将打开Devices窗口,其中列出了可用的模拟器硬件和iOS版本,如图2.35所示。

要删除设备,可通过单击来选择它,再按Delete键;要添加设备,可单击左下角的+按钮,Xcode将显示Create a new simulator对话框,如图2.36所示。


10dcf8bada7d2e67f6b0664cc0c57556af029703


001fd50d6a81bdca49115a94b6f94b20bd63a583

图2.36 配置新的模拟器

输入模拟器的名称,选择设备类型和iOS版本,再单击Create按钮。新建的模拟器将立即出现在Xcode和iOS模拟器中。

相关文章
|
1月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
58 3
|
6天前
|
Android开发 Swift iOS开发
探索iOS与安卓应用开发的差异性
探索iOS与安卓应用开发的差异性
22 2
|
26天前
|
Java Android开发 Swift
掌握安卓与iOS应用开发:技术比较与选择指南
在移动应用开发领域,谷歌的安卓和苹果的iOS系统无疑是两大巨头。它们不仅塑造了智能手机市场,还影响了开发者的日常决策。本文深入探讨了安卓与iOS平台的技术差异、开发环境及工具、以及市场表现和用户基础。通过对比分析,旨在为开发者提供实用的指导,帮助他们根据项目需求、预算限制和性能要求,做出最合适的平台选择。无论是追求高度定制的用户体验,还是期望快速进入市场,本文都将为您的开发旅程提供有价值的见解。
|
1月前
|
物联网 vr&ar Android开发
掌握安卓与iOS应用开发:核心技术与未来趋势
本文深入探讨了安卓和iOS应用开发的核心技术,包括开发环境、主要编程语言、常用框架以及性能优化技巧。同时,文章还展望了两大平台未来的发展趋势,如人工智能、增强现实和物联网的集成,为开发者提供全面的技术参考和发展指引。
|
12天前
|
开发工具 Android开发 Swift
探索iOS与安卓应用开发的异同点
【10月更文挑战第24天】本文通过比较iOS和安卓开发环境,旨在揭示两大移动平台在开发过程中的相似性与差异性。我们将探讨开发工具、编程语言、用户界面设计、性能优化及市场分布等方面,以期为开发者提供全面的视角。通过深入浅出的分析,文章将帮助读者更好地理解每个平台的独特之处及其对应用开发的影响。
|
1月前
|
安全 Android开发 iOS开发
深入解析:安卓与iOS的系统架构及其对应用开发的影响
本文旨在探讨安卓与iOS两大主流操作系统的架构差异,并分析这些差异如何影响应用开发的策略和实践。通过对比两者的设计哲学、安全机制、开发环境及性能优化等方面,本文揭示了各自的特点和优势,为开发者在选择平台和制定开发计划时提供参考依据。
50 4
|
2月前
|
开发工具 Android开发 iOS开发
掌握安卓与iOS应用开发:关键技术与未来展望
本文深入探讨了安卓和iOS平台下的应用开发技术,重点比较了两大平台的架构、开发工具和市场策略。通过分析最新的技术趋势和开发者社区的反馈,文章为读者提供了一个全面的对比视角,旨在帮助开发者做出更明智的平台选择和开发决策。
|
2月前
|
iOS开发 开发者 UED
探索iOS应用开发中的SwiftUI框架
【9月更文挑战第26天】 在iOS开发的海洋中,SwiftUI犹如一艘现代的快艇,引领着开发者们驶向更加高效与直观的编程体验。本文将带你领略SwiftUI的魅力,从其设计理念到实际应用,我们将一步步揭开它如何简化界面构建过程的面纱。通过对比传统方式,你将看到SwiftUI如何让代码变得像诗一样优美,同时保持强大的功能性和灵活性。准备好让你的iOS开发技能加速升级,一起驾驭这股新潮流吧!
|
2月前
|
安全 Java Android开发
掌握安卓与iOS应用开发中的关键技术
本文深入探讨了安卓和iOS平台上应用开发的关键性技术,包括平台特性、开发工具选择、性能优化技巧及跨平台开发的可行性分析。通过对比两种平台的开发环境与实践案例,旨在为开发者提供全面的视角以理解和把握移动应用开发的核心技术。无论是安卓的Java与Kotlin之争,还是iOS的Swift语言革命,本文都将一一解析其优势与应用场景,帮助开发者在技术选型上有更明智的决策。此外,文章还将触及到当前流行的跨平台框架如React Native和Flutter,评估它们在项目实施中的实用性和限制,为有意进行多平台同步开发的团队提供参考。通过对这些关键技术的梳理,本文期望能够启发开发者深化对移动平台开发的理解,并
|
2月前
|
人工智能 vr&ar 数据安全/隐私保护
探索iOS应用开发的新趋势
在数字时代的浪潮中,iOS应用开发领域正经历着翻天覆地的变化。从增强现实(AR)的融入,到人工智能(AI)的广泛应用,再到隐私保护的重视,这些新趋势不仅重新定义了用户体验,也为开发者带来了前所未有的挑战与机遇。本文将深入探讨这些变化如何影响着iOS应用的开发,以及开发者如何利用这些新技术创造出更加智能、安全且引人入胜的应用。