《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应用开发中有多种主流框架
233 60
|
2月前
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
236 4
|
2月前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
3月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
130 1
|
3月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
85 3
|
3月前
|
设计模式 安全 Swift
探索iOS开发:打造你的第一个天气应用
【9月更文挑战第36天】在这篇文章中,我们将一起踏上iOS开发的旅程,从零开始构建一个简单的天气应用。文章将通过通俗易懂的语言,引导你理解iOS开发的基本概念,掌握Swift语言的核心语法,并逐步实现一个具有实际功能的天气应用。我们将遵循“学中做,做中学”的原则,让理论知识和实践操作紧密结合,确保学习过程既高效又有趣。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你打开一扇通往iOS开发世界的大门。
|
3月前
|
搜索推荐 IDE API
打造个性化天气应用:iOS开发之旅
【9月更文挑战第35天】在这篇文章中,我们将一起踏上iOS开发的旅程,通过创建一个个性化的天气应用来探索Swift编程语言的魅力和iOS平台的强大功能。无论你是编程新手还是希望扩展你的技能集,这个项目都将为你提供实战经验,帮助你理解从构思到实现一个应用的全过程。让我们开始吧,构建你自己的天气应用,探索更多可能!
81 1
|
4月前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
1月前
|
IDE 开发工具 Android开发
移动应用开发之旅:探索Android和iOS平台
在这篇文章中,我们将深入探讨移动应用开发的两个主要平台——Android和iOS。我们将了解它们的操作系统、开发环境和工具,并通过代码示例展示如何在这两个平台上创建一个简单的“Hello World”应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧,帮助你更好地理解和掌握移动应用开发。
68 17
|
2月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
41 2