《iOS 8应用开发入门经典(第6版)》——第1章,第1.1节欢迎进入iOS平台

简介:

本节书摘来自异步社区《iOS 8应用开发入门经典(第6版)》一书中的第1章,第1.1节欢迎进入iOS平台,作者 【美】John Ray(约翰 雷),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.1 欢迎进入iOS平台
iOS 8应用开发入门经典(第6版)
您阅读本书说明您可能有iOS设备,这意味着您知道如何使用其界面:清晰的图形、响应迅速、多点触摸和数以十万计的应用程序,这只是冰山一角。然而,作为开发人员,您需要习惯应对一个迫使您以不同方式思考的平台。

1.1.1 iOS设备
当前,iOS平台家族成员包括iPhone、iPad、iPod Touch和Apple TV,但Apple TV还未对第三方开发开放。在阅读本书时您将发现,很多屏幕截图都基于以iPhone(具体地说是iPhone 6)为中心的项目,这并非是我不喜欢大设备,而是因为iPad和iPhone 6+界面很大,难以在屏幕截图中显示。好消息是,如果您要开发针对iPad的项目,这样去做就是了!如果您要开发针对iPhone 6+的项目,这样做好了。为这两种设备进行开发时,编码过程几乎相同。对于不同的情况,我将确保您明白设备之间的差别(及其原因),但这样的情况很少。您还将发现,每个示例都提供了iPhone版本和iPad版本,这些代码可从本书的配套网站(http://teachyourselfios.com)下载。因此,不管您使用哪种设备,按本书介绍的做都将创建适用于该设备的应用程序。

注意:
与Apple开发工具和文档一样,本书不区分iPhone和iPod Touch。几乎在所有情况下,为这些设备开发的方式都相同,虽然有些功能在较早的iPod Touch版本上没有,但较早的iPhone和iPad版本亦如此。

1.1.2 显示屏和图形
iOS设备的分辨率各不相同,但iOS提供了一种考虑分辨率的简单方式。例如,在iPhone 5和iPhone 6之前,iPhone的屏幕大小为320 × 480点。请注意,这里说的是“点”而不是像素。iPhone 4采用了Retina屏幕,在此之前,iPhone的屏幕分辨率为320 × 480像素;现在,iOS设备的实际分辨率为上述分辨率与缩放因子的乘积。这意味着虽然在小设备(如iPhone 4s)上对元素进行定位时,使用的是数字320 × 480,但像素数可能更多。例如,iPhone 4(s)、5(s)和6的缩放因子为2,这意味着iPhone 4s的实际分辨率为(320 × 2)×(480 × 2),即640 × 960像素。iPhone 5稍有不同,其屏幕更大,为320 × 568点,即640 × 1136像素;而iPhone 6的屏幕375 × 667点,即750 × 1334像素,为如图1.1所示。

那么庞大的iPhone 6+呢?它更与众不同——缩放因子为3,这意味着屏幕上的每个点都表示9个像素。以点为单位时,屏幕尺寸是多少呢?414 × 736点。在缩放因子为3的情况下,这相当于1242 × 2208像素,对吧?不完全对。iPhone 6+的分辨率为1080 × 1920,但“内部”分辨率为1242 × 2208。实际上,您可以这么认为:内部分辨率更高,但自动缩小内容,以适合1080 × 1920的屏幕。

像素如此之多,屏幕空间好像很大(即便是iPhone 5亦如此),但别忘了,所有这些像素都将显示在对角线只比无名指长一两英寸的屏幕上。

iPad系列产品的情况类似。iPad 2和第一代iPad mini的屏幕分辨率为768 × 1024点,但其缩放因子为1。采用Retina屏幕的iPad的屏幕分辨率仍为768 × 1024点,但缩放因子为2,因此以像素为单位时,分辨率为1536 × 2048。

本书后面介绍如何将对象放置到屏幕上时,将更详细地介绍缩放因子的工作原理。您需要知道的要点是,当您创建应用程序时,iOS将考虑缩放因子,以最大可能的分辨率显示应用程序及其界面,而您几乎无需为此做任何工作。

屏幕方面的限制并非坏事。正如您将学到的,使用iOS开发工具可创建层次与桌面软件一样多的应用程序,但其界面设计的结构化程度和效率更高。

您可在屏幕上显示复杂的2D和3D动画,这要归功于所有iOS设备都支持OpenGL ES和Metal。OpenGL是一个定义和操纵图像的行业标准,被广泛用于游戏的创建;而Metal是Apple的一个应用程序编程接口(API),用于以极低的开销访问3D硬件。每次升级iOS设备时,都采用了更高级的3D芯片和渲染功能,从而改善了这些功能,但即使是最初的iPhone也有相当不错的图像处理功能。


3b700e956d6cb4cf9c1df4754e7279b6ad76f5f5

图1.1 iPhone 6屏幕大小以点为单位,在纵向模式下为375×667,在横向模式下为667×375,
但每个点由4个像素组成(水平和垂直方向上各两个)

需要考虑不同的屏幕尺寸吗?

iPhone 4引入了Retina屏幕,但处理起来非常简单。开发人员无需编写额外的代码,就可在应用程序中添加用于Retina屏幕的资源,这些资源将在需要时自动加载。之所以可以这样,是因为虽然分辨率变了,但长宽比没变——屏幕的水平和垂直点数都与以前相同。

iPhone 5有了新变化,其屏幕更长,这意味着iPhone的屏幕点数首次发生了变化,从320 × 480变成了320 × 568。然而,Apple更新了界面工具,让界面能够平滑地缩放,以适应不同的屏幕尺寸。

时间如梭,Apple于2013年推出了采用全新用户界面(UI)的iOS 7。突然之间,应用程序必须考虑完全不同的外观——控件和字体大小都与以前不同。

2014年,Apple推出了一系列尺寸不同于iPhone 5和5s的iOS设备,再次印证了那句老话:唯一不变的就是变化。换句话说,我们必须考虑到这些设备比以前更宽、更高了。

好在Apple增大设备尺寸的同时,也在不断开发让应用程序能够适应不同屏幕尺寸和布局的工具。

本书后面将介绍这些自适应工具——自动布局系统。通过结合使用自动布局系统和尺寸类(size class),可创建能够适应任何屏幕尺寸的应用。

1.1.3 应用程序资源约束
与台式机和笔记本电脑的高清晰度显示器一样,我们也越来越习惯于处理器的速度比单击速度快。iOS设备装备的处理器各不相同,从早期iPhone采用的400 MHz ARM到当前销售的iPad和iPhone设备采用的多核A6、A7和A8。A系列芯片是一个集成在芯片中的系统(system on a chip),给设备提供了中央处理单元(CPU)、图形处理单元(GPU)和其他功能;这是Apple设计的第一个CPU系列,在随后的很长一段时间内都将使用它们。

为确保iOS设备能迅速响应,Apple做出了巨大努力,限制了设备的多任务功能。从iOS 4开始,Apple创建了一组多任务应用程序编程接口(API),供特定情况下使用。在较新的iOS版本中,放松了对这些API的限制,但如果iOS认为应用会耗费大量资源,就不会允许它继续执行。iOS将用户体验凌驾于其他一切之上。

不能忘记的另一个约束是可用内存。在最初的iPhone中,整个系统(包括您的应用程序)可用的内存只有128MB,而且没有虚拟内存的概念(将速度更慢的存储空间用作内存),因此您必须小心管理应用程序创建的对象。在最新的iPhone中,Apple提供了1GB内存。但别忘了,用户无法对早期的iPhone进行内存升级。

1.1.4 连接性
iPhone和iPad能够通过移动电话提供商(如美国的AT&T、Verizon和Sprint)始终连接到Internet。内置的WiFi和蓝牙对这种广域网接入进行了补充。在无线热点的覆盖范围内,WiFi可提供与台式机相当的浏览速度。另一方面,蓝牙现在可用于将各种外围设备(包括键盘)连接到iOS设备。

作为开发人员,您可利用Internet连接来更新应用程序的内容、显示网页以及创建多玩家游戏。唯一的缺点是,应用程序使用的3G或LTE数据越多,愿意使用它的用户就越少,因为数据套餐的费用很高。有鉴于此,很多应用都只支持WiFi。请针对WiFi设计应用,并尽可能保守地使用无线数据。

1.1.5 输入和反馈
在输入和反馈机制及其易用性方面iOS设备卓尔不群。您可从多点触摸屏幕(在iPad上,最多为11个手指)读取输入值、通过加速计和陀螺仪检测运动和倾斜、使用全球定位系统(GPS)进行定位、使用数字指南针确定面对的是哪个方向,以及使用距离(proximity)传感器和光传感器确定用户当前正如何使用设备。iOS可向应用程序提供很多有关用户当前在什么地方及其如何使用设备的信息,这使其变成了一个万能控制器,就像Nintendo Wii和PlayStation Move一样,但功能超越了它们。

iOS设备还支持直接在应用程序中拍摄照片和视频,这打开了与现实世界交互的大门。当前市面上就有应用程序能够识别拍摄的物体并在线查找有关这些物体的参考资料(Amazon Mobile app)或实时地翻译印刷文件(Word Lens)。

最后,对于用户与应用程序交互时执行的每项操作,您都可提供反馈。这可以是在屏幕上能够看到的反馈,也可以是高品质音频以及通过震动(仅iPhone)带来的力量反馈。作为开发人员,您将在本书中学习如何使用所有这些功能。

有关iOS平台的走马观花之旅到这里就结束了。从来没有哪种设备为开发人员定义并提供了如此多的功能,只要仔细考虑资源限制并相应地进行规划,将有大量的开发机会等着您。

相关文章
|
2月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
2月前
|
开发者 iOS开发
iOS应用上架详细图文教程(上)
App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些事。
|
2月前
|
Swift iOS开发 开发者
iOS 应用上架流程详解
iOS 应用上架流程详解
|
2月前
|
Android开发 iOS开发 UED
appuploader   iOS 应用自动发布
appuploader   iOS 应用自动发布
|
2天前
|
存储 缓存 安全
基于iOS平台的高效图片缓存策略实现
【4月更文挑战第22天】 在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。尤其对于iOS平台,由于设备存储空间的限制以及用户对流畅性的高要求,设计一种合理的图片缓存策略显得尤为关键。本文将探讨在iOS环境下,如何通过使用先进的图片缓存技术,包括内存缓存、磁盘缓存以及网络请求的优化,来提高应用的性能和响应速度。我们将重点分析多级缓存机制的设计与实现,并对可能出现的问题及其解决方案进行讨论。
|
2天前
|
存储 缓存 算法
实现iOS平台的高效图片缓存策略
【4月更文挑战第22天】在移动应用开发中,图片资源的处理是影响用户体验的重要因素之一。特别是对于图像资源密集型的iOS应用,如何有效地缓存图片以减少内存占用和提升加载速度,是开发者们面临的关键挑战。本文将探讨一种针对iOS平台的图片缓存策略,该策略通过结合内存缓存与磁盘缓存的机制,并采用先进的图片解码和异步加载技术,旨在实现快速加载的同时,保持应用的内存效率。
|
2天前
|
存储 编解码 JSON
利用SwiftUI构建高效iOS天气应用
【4月更文挑战第21天】 在本文中,我们将深入探讨如何运用SwiftUI框架打造一个响应迅速且用户友好的iOS天气应用程序。我们将重点放在利用SwiftUI的声明式语法简化界面开发,并通过结合Core Location和Networking APIs实现实时天气数据的获取与展示。文章将详细阐述整个开发过程,包括API集成、数据模型设计、用户界面布局以及动态适配不同屏幕尺寸的策略。
|
20天前
|
存储 缓存 iOS开发
实现iOS平台的高效图片缓存策略
【4月更文挑战第4天】在移动应用开发中,图片资源的加载与缓存是影响用户体验的关键因素之一。尤其对于iOS平台,由于设备存储和内存资源的限制,设计一个高效的图片缓存机制尤为重要。本文将深入探讨在iOS环境下,如何通过技术手段实现图片的高效加载与缓存,包括内存缓存、磁盘缓存以及网络层面的优化,旨在为用户提供流畅且稳定的图片浏览体验。
|
1月前
|
安全 数据安全/隐私保护 虚拟化
iOS应用加固方案解析:ipa加固安全技术全面评测
iOS应用加固方案解析:ipa加固安全技术全面评测
37 3
|
1月前
|
运维 监控 安全
应用研发平台EMAS常见问题之sophix ios flutter热更新如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
77 0