swift服务器端的支持者使用swift的原因之一是它允许iOS开发人员为他们的应用程序开发后端。但是,我没有看到很多这种使用模式的例子。
有一个chat-ios示例,但是使用的是websockets。
是否有可用的服务器和配套iOS应用示例?
使用自定义服务器的一个难点是处理iOS应用程序中可能存在的糟糕通信。我想看看那里的任何项目是否已经处理好了。
使用parse / firebase的原因之一是内置客户端支持同步/重试。是否存在可用于为自定义后端提供此可靠性的客户端应用程序的任何资源/框架。
答案 0 :(得分:2)
此official list of Vapor projects包含几个iOS /服务器项目对。
这可能是该列表中最好的例子。
答案 1 :(得分:2)
一段时间以来,我一直在为iOS / macOS客户端和Vapor后端开发使用Swift软件包。我正在将汲取的经验教训收集到一组通用的开放源代码存储库中:VaporExampleLabs/Synergy*
。
有可能会在Swift服务器端,iOS设备和macOS应用程序中使用的Swift软件包。视图(Vapor View
,iOS UIView
,macOS NSView
)与底层应用程序逻辑之间的更大分隔允许在平台之间的Swift Packages中共享更多代码。
VaporExampleLabs/Synergy*
软件包和项目的集合提供了有关如何设置Vapor服务器,iOS设备客户端和macOS客户端以使用同一Swift软件包的各种方法。
每个部分重点介绍了在服务器后端和客户端设备软件开发中共享使用Swift代码的一些关键发现。
主要观察结果:
注意:Synergy集项目和程序包仍在收集过程中正在进行中。目标是创建一个共享通用Swift软件包的完整(自包含)后端到客户端连接的示例集。
SynergySqliteC
有时,较低级别的库在服务器和设备之间并不常见。例如,数据库对象关系模型(ORM)对于Vapor是不同的,而iOS / macOS具有CoreData。蒸气提供流利。 iOS / macOS提供了CoreData。
此示例说明了在最低级别直接使用SQLite C源代码。
SynergySqliteC ⇗
显示了如何将跨平台C库设置为Swift软件包。
纯C程序包可能需要将* .h文件手动添加到项目树中,以便在Xcode项目中进行构建。
SynergySQLiteFramework
SynergySQLiteFramework ⇗
提供了一个通用 Swift框架,用于使用基于C的Swift软件包SynergySqliteC
。
SynergyAPI
SynergyAPI ⇗
为收集Synergy应用程序提供了Codable接口。使用泛型SQLite软件包SynergySQLiteFramework
。
SynergyVapor
SynergyVapor ⇗
提供了一个使用SynergyAPI
的Vapor Web应用程序示例。
协同客户
Synergy ⇗
提供了iOS和macOS客户端Xcode项目。 iOS和macOS客户端都使用SynergyAPI
软件包。
iOS / macOS应用程序中的快速软件包
请注意,程序包管理器目前不支持iOS,watchOS或tvOS平台。 Source: Swift Package Manager Project
即使Swift软件包管理器不能直接创建iOS或macOS应用程序,Swift软件包仍可以用作相应Xcode应用程序项目中的子项目。
cd SynergyAPI
swift package generate-xcodeproj \
--xcconfig-overrides Package.iOS.xcconfig \
--output SynergyAPI_iOS
swift package generate-xcodeproj \
--xcconfig-overrides Package.macOS.xcconfig \
--output SynergyAPI_macOS