IOS APP 电商平台项目架构重构-Swift语言(二)
Madman 后端工程师

前言

进几年新语言的浪潮都比较猛烈,服务端的的Golang, Deno。安卓的Kotlin,IOS的Swift
这些新语言共同的优势都是运算性能更高,代码更简洁。让人难以抗拒,弱点是新语言技术社区不成熟,开源库较少,但是经过这几年的沉淀,这些问题也渐渐不再明显。由 Apple 创建,Swift 是当今发展最快的编程语言。作为著名的 Objective-C 的替代品,Swift 拥有大量优势,使其在iOS 开发中处于领先地位。

App项目重构语言选择

  • Objective-C
  • Swift
    先说我的结论,我选Swift。
    为什么?下面是我的理由。

Swift和Objective-C的联系

Swift和Objective-C共用一套运行时环境,Swift的类型可以桥接到Objective-C

Swift比Objective-C有什么优势?

  1. Swift容易阅读和编写,语法和文件结构简易化。
  2. Swift更易于维护,文件分离后结构更清晰。
  3. Swift更加安全,它是类型安全的语言。
  4. Swift代码更少,简洁的语法,可以省去大量冗余代码。
  5. Swift速度更快,运算性能更高。
  6. Swift构建速度更快,且打包资源大小更小。
  7. Swift是一个开源项目,拥有庞大的开发社区。
  8. Swift有更好的内存管理。
  9. Swift支持动态库。

Swift更快

现代技术需要高速的性能,而Swift完全满足了这种需求。根据大量测试,它在 FFT 和 Mandelbrot 算法方面显示出与 C++ 几乎相同的性能。早在 2015 年就发现 Xcode 6.3 beta 提高了 GEMM 算法的性能。

考虑到 Swift 仍然是一门年轻的编程语言,越来越多的增强功能即将推出。每个人都在谈论这个工具的未来的原因很简单,因为 Swift 正在快速开发语言。它的潜力是不可否认的,而 Objective-C 显示出更糟糕的结果。

根据 Apple 的研究,Objective-C 与 Swift 的速度比较:
根据 Apple 的研究,Objective-C 与 Swift 的速度比较

Swift更安全

还记得 Objective-C 中的 nil 指针变量(未初始化)将表达式变为无操作并导致应用程序崩溃吗?使用 Swift 时您可以忘记这个问题。它的设计考虑了安全性,并且每次编写错误代码时都会产生编译器错误。这意味着可以在开发阶段修复所有错误,而无需随后查看整个代码。不会给客户带来不好的惊喜。

Swift更易于阅读和编写

Swift 变得如此流行的原因之一是这种编程语言的简单语法。这一事实使代码更易于阅读和编写。另一方面,Objective-C 需要大量符号、分号来结束行、“if”或“else”语句中的条件表达式周围的括号等。Swift 没有这些。相反,它在括号内使用逗号分隔的参数列表。

此外,实现任何选项是 Swift 需要编写比 Objective-C 语言更少的代码字符串,从而避免额外的错误,从而使代码更简洁。因此,与 Objective-C 相比,开发人员完成任务所需的时间更少。

Swift 类似于自然英语,对于使用 Java、JavaScript、Python、C# 和 C++ 的编码人员来说更容易理解。他们可以轻松地将用 Swift 编写的代码片段应用到您拥有的现有工具链中。

Swift 有更好的内存管理

Objective-C 的问题之一是 ARC(自动引用计数),它在 Cocoa API 和面向对象的代码中得到支持。但是,该代码不适用于过程 C 代码和诸如 Core Graphics 之类的 API。这导致了巨大的内存泄漏。

Swift 通过使用过程和面向对象的代码路径使 ARK 完整,从而解决了这个问题。现在编码人员可以专注于应用程序逻辑及其功能,而不是管理应用程序内的内存。

Swift 支持动态库

正如我们上面提到的,Swift 是一种开发速度非常快的语言,但它也允许您在新的 Swift 版本到来时立即更新您的应用程序。这是可能的,因为使用了与 iOS 8 一起提供的动态库。以前,静态库更新是与新 iOS 版本等重大更新一起进行的。

就其而言,动态库允许将代码段直接连接到应用程序。此功能有助于使您的项目保持最新状态,减少应用程序的初始大小,加快外部库的加载速度并最大限度地减少加载新内容所需的时间。

在 Swift 中实现动态库是 Apple 如何专注于使 iOS 生态系统响应更快并为其用户提供扩展性能的另一个例子。

Swift 是一个开源项目

作为一个开源项目,Swift 为其用户提供了额外的优势,其中之一是减少了 Objective-C 中常见的名称冲突。

Swift 的另一个制胜点是庞大的开发社区,随时准备增强 iOS 开发语言。Apple 成功地为使用 Swift 作为iOS 开发主要语言的开发人员带来了最佳的客户体验,并提供了影响其未来的可能性。

Swift目前存在的缺点

社区的开源项目比OC相对偏少,但是经过这几年的沉淀也绝对不算少。
对ios低于ios11以下版本不兼容,对于还有兼容4年前的ios系统的项目就不建议使用。

那么Objective-C呢?

在 2014 年 Swift 发布之前,Objective-C 是一种广泛使用的编程语言。可悲但真实,现在它无处可去,专家预测它不会收到任何重大更新。原因很简单:Swift 语言已经包含了 Objective-C 的所有解决方案。此外,还有许多 Objective-C 缺乏的进步。尽管 Objective-C 可能会借用 Swifts 的一些新特性,但它永远不会那么前沿。

Objective-C 的另一个弱点是它的安全级别。如前所述,Swift 被认为更安全。由于数据保护是大多数用户最关心的问题,开发人员也不能忽视这一点。

最重要的是,与 Swift 不同,不可能使用 Objective-C 以交互方式开发应用程序。这对每个软件工程师来说都是一个很大的缺点,它会对开发过程产生相当负面的影响。

自从 Apple 发布 Xcode 6.3 以来,修复了 Apple Bug Report 实用程序中的许多恼人的错误,Objective-C 没有机会追赶 Swift。

结论

虽然大多数现有的 iOS 应用程序都是用 Objective-C 编写的,但现在是时候考虑将它们转移到 Swift 上了。在更新方面,Swift 允许 iOS 开发人员在短时间内处理任何更改。这一切都归功于它更平易近人和负责任的性质。

  • 本文标题:IOS APP 电商平台项目架构重构-Swift语言(二)
  • 本文作者:Madman
  • 创建时间:2021-07-21 10:56:04
  • 本文链接:https://www.patpat.site/开发/前端/App/IOS-APP-电商平台项目架构重构-Swift语言-二.html
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论