使用 Swift 构建 iOS 应用程序的优点与缺点

1,633 阅读7分钟

Swift 易于使用且易于阅读,改变了 iOS 应用程序的开发方式,并正在实现不可能的事情。

在 Swift 出现之前,应用程序主要是使用 Objective-C 创建的,这既耗时又困难。使用Swift,它为应用程序开发带来的好处数不胜数。速度、安全性、用户体验和维护只是几个例子。当我们将注意力转向在iOS 应用程序开发中使用 Swift 编程语言时,让我们考虑这些。

什么是Swift?简要概述

Swift 由 Apple 于 2014 年创建,是一种适用于 iOS、iPadOS、macOS、tvOS、watchOS 和 Linux 应用程序的编程语言。不过,直到 2015 年,Apple 才决定开源代码以促进更多采用。现在,Apple App Store 有196 万个应用程序可供下载,其中部分应用程序是用 Swift 编写的。其中包括 Airbnb、Facebook、LinkedIn、Lyft、Slack 和 Uber。

Lyft 之前是用 Objective-C 编写的,这是一种可以追溯到 1980 年代的编程语言,Lyft 是切换到 Swift 的应用程序的一个例子。Lyft 的原始版本已增加到75,000 行代码,但通过迁移到 Swift,该公司重新创建了具有相同功能的应用程序,而代码行数不到三分之一。

几年之内,社区已经从过时的 Objective-C 语言转变为易于学习和阅读的现代、向后兼容的编程语言。对于寻求编程语言来开发应用程序的企业,以下是 Swift 的优缺点。

Swift的优点

通常被称为“没有 C 的 Objective-C”,与它的前身相比,Swift 有很多好处。

它很快

Apple 官方网站声称Swift 比 Objective-C 快 2.6 倍,有助于节省成本。它也更容易阅读和写作。正如上面以 Lyft 为例,企业可以使用 Swift 快速开发 iOS 应用程序,因为它需要的代码比其他语言少得多。

年轻男子在格子衬衫上使用手机的手特写,而他的伙伴则在争论

很安全

Swift 的另一个优势是它的安全性。它被创建为一种类型安全和内存安全的编程语言。类型安全指向防止任何类型错误的语言。内存安全意味着它避免了与未初始化指针相关的漏洞,这可能导致程序崩溃。通过更短的反馈循环(这是将输出作为输入反馈,决定了该循环的原因和结果),开发人员可以看到任何代码错误,减少调试时间并消除低质量代码的风险。

可与 Objective-C 互操作

通过与 Objective-C 兼容,项目可以用任何一种语言编写。这对于正在更新的大型项目特别有用,因为 Swift 添加了更多功能,然后将这些功能放入 Objective-C 的代码库中。

低维护

一旦使用 Swift 构建了一个应用程序,它就很容易维护。与在两个单独文件中管理的 Objective-C 相比,Swift 将 Objective-C 头文件 (.m) 和实现文件 (.h) 合并到一个程序 (.swift) 文件中。需要注意的一件事是 Swift 具有依赖关系。而在 MacOS 上,Swift 已经安装并准备就绪,在 Linux 上安装 Swift 需要先安装某些依赖项,例如 Python。

更好的用户体验

使用 Swift 开发的应用程序需要更少的安装时间和更少的设备内存,为用户提供更好的应用程序体验。

有效的内存管理

Swift 使用一种称为自动引用计数 (ARC) 的解决方案,该解决方案建立在其 ObjectiveC 的前身之上。ARC 确定哪些类实例没有被使用,并为开发人员摆脱它们。这让开发人员有更多时间专注于应用程序的性能,而不会减少其 CPU 或内存分配。

ABI稳定性

应用程序二进制接口 (ABI) 是等效于 Swift 的应用程序编程接口 (API) 的二进制文件。根据Swift 的说法,虽然 ABI 稳定性对于任何编程语言来说都是一项重大成就,但“Swift 生态系统的最终好处是实现应用程序和库的二进制兼容性。” 实际上,ABI 允许使用不同版本的 Swift 甚至 ObjectiveC 编译的代码进行通信。

选项的使用

Optionals 是一种编程概念,它使开发人员能够防止应用程序崩溃,同时确保在整个应用程序中维护干净的代码。把它想象成一个包装器类型,它把值包装在里面。一个可选项既可以包含某些内容,也可以为空。要确定的是,需要解开可选项,如果操作正确不会导致崩溃。

Swift的缺点

虽然 Swift 旨在让开发人员更轻松地维护和编写应用程序代码,但也有一些缺点需要考虑。

Swift 仍然是一门新语言

与 1980 年代出现的 Objective-C 相比,Swift 是一个新人,创建于 2014 年。这意味着它可能会遭受成长的痛苦。尽管最近更新了 ABI 稳定性和向后兼容性,但 Swift 在工具和库方面受到限制。

Netguru-Biuro-2018-6078 _HD

二进制兼容性并不总是有效

尽管 ABI 稳定性是 Swift 5.1 的一个优势,但使用不同版本的 Swift 编译的代码可能会出现问题。当开发人员主要使用 Objective-C 时,代码可以编译成静态库并作为依赖项引入到项目中。在引入 Swift 的 ABI 之前,无法在 Swift 中创建静态库。虽然现在可以实现,但将这些依赖项实施到项目中存在问题。

它不是一种反思性语言

与 Java 或 Kotlin 等编程语言相比,Swift 不是一种反射语言。相反,它提供了另一种选择:镜像功能。有了这个,Swift 可以获取一个对象并“自我描述”它,但它不能从内部操作它。如果反射在 Swift 中可用,它会自动注入依赖项,但相信这很难实现。

小人才库

这是另一个小缺点,但无论如何都需要提出。虽然 Swift 的社区发展迅速,但与其他编程语言相比,它仍然相对较小。StackOverflow 的 2019 年开发者调查发现,在超过 87,000 名受访者中,只有6.6%使用 Swift。

学习一门新语言

虽然它是一门容易学习的语言,但它仍然需要时间来理解 Swift,而有些项目可能没有。如果企业可以推迟发布他们的应用程序,直到团队成员对 Swift 感到满意,从长远来看,这将是一个很好的举措,因为 Apple 会继续投资于其开发。

Swift 是 iOS 开发的未来吗?

尽管还很年轻,但 Swift 正在成为一种广泛用于 iOS 开发的编程语言。一些已经选择 Swift 的公司包括 Eventbrite、Kickstarter、LinkedIn、Twitter 和 Whatsapp。尽管仍有一些初期问题需要解决,但 Swift 正在变成一种成熟的语言,最终可能会取代 Objective-C,成为开发 iOS 应用程序的首选语言。

从长远来看,Swift 将帮助企业填补移动应用程序的空白。这是一种易于理解的快速语言,它正在成为开发人员的首选。由于它是一个开源平台,它背后有一个庞大的社区,任何希望参与的人都做出了贡献。对于希望以最少的努力切换到语言的企业来说,Swift 将继续成为未来应用程序开发的关键组件。

iOS公众号推荐:iOS小客栈 (摸鱼学习的小客栈)

原文地址