Apple开发中的库,API,框架和SDK之间的关系。

有时我们会像类似元素一样谈论库,API和框架。 因此,我想简单地解释它们各自的含义以及它们之间的相互关系,以便您更好地理解它们。 此外,重要的是要知道SDK是Apple操作系统中的重要元素。

来吧,让我们说清楚!

图书馆

库是保存预编写代码的地方,可以调用这些代码来帮助您更快更轻松地完成工作。 该库基本上是一组元素,例如函数,类,常量,变量等,您可以在项目中使用它们来创建应用程序。

例子:

  1. Swift标准库解决了复杂的问题,并允许您编写高性能的可读代码。 这些库是用Swift编写程序的基本功能层,它们是为Swift设计的并以这种编程语言处理的一组数据类型和功能。
  • 如果您用引号引起来的文本,例如“我喜欢制作原型”,那么Xcode将借助Swift标准库将其作为字符串进行处理。
  • 如果输入: let a:Int = 10 ,则程序会将其解释为不带小数的整数。 例如: let sum = a + 1的结果为11。如果尝试使用let sum = a + 0.5 ,则会显示错误,因为编译器不允许常量和包含小数点后的数字。
  • 但是,如果您编写: let b:Double = 10 ,程序将知道该数字可以有小数。 因此,如果您添加十进制值,例如: let add = b + 0.5 ,则结果为10.5。

API

API(应用程序编程接口)是您的代码与一个或多个库之间的连接。 它与它所连接的库的版本有一定距离。 另外,API不包含实现细节。 例如,可能有多个库可以使用十进制Double或Float,并且每个库都有针对这些数字类型的完整实现。 尽管程序的API不会改变,但在这种情况下,会添加小数的API取决于您所使用的设备和操作系统,您将使用一个库或另一个库(对于macOS或iOs),具体取决于API。

例子:

  1. Apple Music API是音乐服务网络的一部分。 使用Apple Music API,您可以在Apple Music目录和iCloud的音乐库中访问有关媒体的信息,例如专辑,歌曲,艺术家和播放列表。 如果您授权它,则还可以访问或修改与您的用户关联的数据。 例如,您可以在目录和音乐库中找到适合您的音乐推荐或更改特定歌曲的评级。 然后,Apple Music API将连接您的应用程序代码以及Apple提供的有关iTunes中音乐的所有库和资源。 基本上,此API会盲目实现音乐的使用,但是我们知道,如果使用适当的代码,Apple音乐将在我们的应用程序中正常工作。
  2. Search Ads API使广告商和广告代理商可以以编程方式创建和管理大量广告系列,并创建报告以了解趋势和其他客户。 该API为他们提供了资源和方法,使他们可以创建广告系列并获取有关它们的信息。 该API是Web环境所独有的,它允许访问创建或提供所需信息的不同资源和方法,而无需完全了解所使用库的内部实现的详细信息。

框架

框架是提供许多服务的大型库或一组库(而不是像大多数库一样只是集中的功能)。 框架包含许多工具,例如可促进应用程序开发的API和库。 框架提供了一个完整的基础,您可以在此基础上构建自己的代码,而不是构建一个使用库代码来完成部分工作的应用程序。

随着框架通过多个发行版的发展,API被引入或被拒绝,并且现有API的行为有时可能会发生变化。 Apple尽一切可能使可能导致不兼容的更改最小化,在某些情况下,甚至根据框架的版本提供其他行为。 在特殊情况下,您需要对代码进行编程,以确定框架的版本并相应地进行调整。

通常,框架通过观察与应用程序链接的系统框架的版本来检测应用程序的生成方式。 因此,当您使用较新的SDK重新链接应用程序时,可能会观察到不同的行为,其中某些行为可能会导致不兼容。 在这些情况下,由于正在重建您的应用程序,因此您必须同时解决这些问题。 在某些情况下,还有其他框架提供默认设置(首选项),您可以使用这些默认设置来获得新旧行为,而不管应用程序所基于的SDK是什么。

例子:

  1. 基础:访问操作系统的基本数据和服务,以定义应用程序的基本功能。 例如,如果您想更改文本字符串的颜色,则可以使用Foundation提供的方法。
  2. AVFoundation:与视听资源配合使用,控制摄像机和音频,并配置它们与系统的交互。 例如,拍摄照片时,您可以使用AVFoundation的方法选择iPhone的前置或后置摄像头。
  3. UIKit:为应用程序构建图形用户界面。 例如,对于viewController的视图(或屏幕)的背景颜色为黄色,您将使用属性backgroundColor = .yellow

开发包

SDK是用于程序的特定实现,可简化API或框架的使用。 例如,从以下SDK版本开始,可以在多个操作系统(iOS,macOS,tvOS和watchOS)中使用Foundation框架:iOS 2.0 +,macOS 10.0 +,tvOS 9.0+和watchOS 2.0+。 例如,这意味着,当发布第一款具有iOS 1.0版本的iPhone时,将无法使用Foundation框架,因为直到版本2,才集成了该实现的SDK 2.0才为iOS操作系统识别使用此基金会框架。

结论

苹果公司和其他人已经开发了库来帮助您创建个人代码。 这些库已包含在API中,以使您的代码与这些库之间的连接更容易。 随后,这些框架允许使用一个或多个库或API,这些库或API允许您在编写的代码中创建个性化功能。 最后,借助SDK,Apple设备的操作系统将可以识别您的代码,因此您可以使用库,API和框架。

有时,库,API和框架之间的界线是模糊的,但是由于这些工具中的每一个都具有阅读文档的强大能力,因此您可以使用它们中的任何一个正确,轻松地实现或编程应用程序中的许多功能。 现在,我想借此机会感谢成千上万的开发人员和工程师,他们的工作和研究使我们每天更加轻松地开发应用程序。

感谢所有人!

这是您的号召性用语!

本文是“如何通过Swift成为iOS专业人士:从零到App Store”课程中250多个课程之一。

如果您喜欢这篇文章,请按“拍手”按钮,以便更多人可以找到它,我们邀请大家在您的社交网络上分享链接! 另外,对于在那里讲西班牙语的人,该课程提供西班牙语。

参考书目

  • 基于SDK的开发概述
  • Apple Swift词汇表
  • 迅捷标准库
  • PHPhotoLibrary
  • 苹果音乐API
  • Search Ads API
  • 框架基础
  • 框架AVFoundation
  • 框架UIKit
  • 框架,库,IDE,API,SDK和工具包之间的区别?
  • 框架与 API
  • 框架UIKit
  • 框架,库,IDE,API,SDK和工具包之间的区别?
  • 框架与 API