服务器端Swift-快速入门

罗伯特·巴兰 Robert Baran)

构建Swift Web应用程序使您可以重用已有的技能。 但是,如果您不是iPhone mac开发人员,也可以从头开始。 本文向您展示了最受欢迎的服务器端Swift框架,并让您进入使用Swift的更快,更安全的API的世界。

Swift于2014年发布。从那时起,它已成为iOS和macOS开发的流行解决方案。 由于Swift是开源的,人们开始使用它。 有很多尝试寻找Swift的其他用法。 事实证明,它们是服务器端的理想之选,同时比其他语言更快,更安全。 该过程的下一步是将Swift应用于服务器端开发。 在这里,重要的是要提到Swift可以在macOS,Linux甚至Windows上编译。 此外,一些框架允许开发人员创建云应用程序。

在Server-Side Swift发布之后,我感到有快速浏览它的冲动。 当时真的很难分辨它是否已准备好用于商业用途。

现在,当我看着它时,我会说它足够稳定。 因此,让我们尝试比较最受欢迎的框架。 就个人而言,我建议您在尝试每个框架之前,甚至选择最适合您的框架,它们之间会有细微的差异。

当前,最受欢迎的服务器端Swift框架是Vapor,Perfect和Kitura。

还有其他一些工具,例如Zewo和NozelIO,但是它们并不那么受欢迎,但这并没有失去它们的价值。 事实上,我调查了每个框架,我的结论是:Perfect and Vapor。

几年前,当Server-Side Swift对我来说还很陌生时,我并不相信这将是针对特定后端的最佳语言。 为什么? 因为它像其他所有后端解决方案一样工作,并且没有什么特别的特殊之处使其变得特别,但是对于我作为IOS开发人员而言,它仍然使我处于全栈状态。 我知道Java和JS,在我看来,掌握最新技术非常好,主要是因为它们使我们成为了更好的开发人员。 我还没有找到太多有关它的教程或文章。 当然,关于Java或JS的数量并不多。 因此,您必须自己创建很多东西。 我认为,Swift也比其他语言快。 如果您想将其与其他产品进行比较,这是基准服务器端swift框架vs nodeJS。

SPM — Swift Package Manager —管理发行版Swift代码,与构建系统集成在一起,以自动执行在Mac和Linux上运行的下载,编译和链接依赖项过程。

XCode — Apple IDE,用于编译和调试Obj-C和Swift代码。

AppCode — Jetbrains IDE,用于编译和调试Obj-C和Swift代码。

其他文本编辑器,如括号,VS代码,Sublime等。+ SPM

对于框架,还有很多非常特定的工具,在快速概述中,我将进一步介绍这些工具。

概述:

汽:

它具有非常活跃的社区以及简单的语法。 这个框架主要集中在纯粹用Swift编写。 正如Vapor — Swift是一个非常易读和易懂的API,因为它保留了命名和约定。

资料格式:

JSON,XML

数据库:

MySQL,PostgresSQL,SQLite,MongoSB

云:

Heroku,Amazon Web服务和蒸气云

工具:

蒸气工具箱

完善:

最流行的服务器端快速开发框架,正如作者所声称的那样,它已经可以量产并且可以与商业产品一起使用。 强烈建议使用它,因为它体积大,功能强大且速度快。 该框架每月更新一次。

资料格式:

JSON,XML,对文件,目录和.zip文件的直接操作的本机支持

数据库:

MySQL,PostgresSQL,SQLite,CouchDB,MongoSB,MariaDB,FileMaker

云:

Heroku,亚马逊网络服务

工具:

完美助手

Kitura:
这个框架就像一个WebFramework。 Kitura在数据库处理方面非常独特。 示例SQL DB类型Kitura使用称为“ Kuery”而不是“ Query”的抽象层。 Kuery支持MySQL,SQLite和PostgreSQL。 Kitura还支持Redis,CouchDB,Apache Cassandra和ScyllaDB,但通过本机软件包,这些与Kuery不相关。

支持的数据格式:

JSON,Aphid MQTT(IoT / IoT消息传递)

数据库:

MySQL,PostgresSQL,SQLite,CouchDB,Apache Cassandra,ScylaDB

云:

Heroku,Amazon Web服务,Pivotal Web服务,IBM Bluemix

工具:

Kitura CLI

摘要:

服务器端Swift是一个快速发展的解决方案,可与最新技术(如云)一起在商业上使用。 几年后,我们获得了成熟的语言和出色的框架,这些框架不断使Server-Side Swift变得更好。 说到“蒸气”和“完美”,到现在两者似乎都还不错。 例如,自2016年9月首次发布以来,Vapor的增长非常快,目前有3.1版本可用。 Perfect具有相似的特性,并于2015年11月首次发布。如前所述,我个人建议在选择合适的框架之前先尝试一下每个框架。

县长:

资料来源:https://www.perfect.org/

松弛:http://www.perfect.ly/

教程:https://www.youtube.com/channel/UCsw_djZbUnPtHu2XVNn7d3g

雷·温德利希(Ray Wenderlich)课程:https://videos.raywenderlich.com/courses/77-server-side-swift-with-perfect/

示例代码:https://github.com/PerfectExamples

GitHub:https://github.com/PerfectlySoft/Perfect/

汽:

资料来源:http://vapor.codes

不和谐:https://discordapp.com/invite/vapor

教程:http://vapor.university

Ray Wenderlich课程:https://videos.raywenderlich.com/screencasts/509-server-side-swift-with-vapor-getting-started

示例代码:http://example.vapor.codes

GitHub:https://github.com/vapor/vapor

Kitura:

资料来源:https://www.kitura.io

松弛:https://swift-at-ibm-slack.mybluemix.net/

教程:http://www.kitura.io/en/resources/tutorials.html

示例代码:https://github.com/IBM-Swift/Kitura-Sample

GitHub:https://github.com/IBM-Swift/Kitura/

Swift NIO:

Apple于2018年3月1日发布—低级,跨平台,事件驱动的网络应用程序框架。

GitHub:https://github.com/apple/swift-nio

NIO参考:https://apple.github.io/swift-nio/docs/current/NIO/index.html

教程:https://www.raywenderlich.com/76-tcp-server-with-the-swiftnio-networking-framework

也有Zewo和NozelIO,但是仅基于Swift而Zewo是Go-Style框架,NozelIO是node.js样式框架。

Zewo Github:https://github.com/Zewo/Zewo/

NozelIO Github:https://github.com/NozeIO/Noze.io

macOS — IDE(Xcode,AppCode)

Linux-https://swift.org

Windows-https://swiftforwindows.github.io