gpt4 book ai didi

Vapor 服务器和配套的 iOS 应用程序示例

转载 作者:行者123 更新时间:2023-12-04 18:01:24 24 4
gpt4 key购买 nike

swift 服务器端的拥护者支持使用 swift 的原因之一是它允许 iOS 开发人员为他们的应用程序开发后端。但是,我没有看到很多这种使用模式的例子。

有一个chat-ios例如,但那是使用 websockets。

是否有任何可用的服务器和配套 iOS 应用程序示例?

使用自定义服务器的困难之一是处理 iOS 应用程序使用中可能出现的不良通信。我想看看那里是否有任何项目处理得很好。

使用 parse/firebase 的原因之一是内置客户端支持同步/重试。客户端应用程序是否有任何资源/框架可用于为自定义后端提供这种可靠性。

最佳答案

一段时间以来,我一直在为 iOS/macOS 客户端和 Vapor 后端开发使用 Swift 包。我正在将经验教训收集到一组通用的开源存储库中:VaporExampleLabs/Synergy* .
可以在 Swift 服务器端、iOS 设备和 macOS 应用程序中使用 Swift 包。 View (Vapor View、iOS UIView、macOS NSView)和底层应用程序逻辑之间更大的分离,允许在跨平台的 Swift 包中共享更多代码。VaporExampleLabs/Synergy*包和项目集合提供了如何设置 Vapor 服务器、iOS 设备客户端和 macOS 客户端以使用相同的 Swift 包的各种工作。
每个部分都重点介绍了在服务器后端和客户端设备软件开发中使用共享的 Swift 代码的一些关键发现。
主要观察:

  • 将尽可能多的应用程序逻辑从 View 中分离出来,以便放置到 Swift 包中。
  • 考虑使用跨平台的 Swift 和/或 C 库。
  • Xcode 有时需要额外的手动步骤,例如在构建阶段添加 C 头文件。
  • Swift 包可以生成为 Xcode 项目,用作 iOS 和 macOS 应用程序中的子项目。在 iOS/macOS/tvOS 应用程序可以使用 SPM 构建之前,Swift 包子项目可以作为一种解决方法。

  • 注意:Synergy 项目和包集仍然是 进行中的工作用于收集经验教训。目标是创建一套完整的(自包含的)后端到客户端连接的示例,共享通用的 Swift 包。

    SynergySqliteC
    有时,较低级别的库在服务器和设备之间并不常见。例如,Vapor 的数据库对象关系模型 (ORM) 是不同的,iOS/macOS 有 CoreData。 Vapor 提供 Fluent。 iOS/macOS 提供 CoreData。
    此示例说明了在最低级别直接使用 SQLite C 源代码。 SynergySqliteC ⇗展示了如何将跨平台 C 库设置到 Swift 包中。
    纯 C 包可能需要手动将 *.h 文件添加到项目树中,以便在 Xcode 项目中构建。
    SynergySQLiteFramework SynergySQLiteFramework ⇗为使用基于 C 的 Swift 包 SynergySqliteC 提供通用 Swift 框架.
    协同API SynergyAPI ⇗为 Synergy 应用程序的集合提供 Codable 接口(interface)。使用泛型 SQLite 包 SynergySQLiteFramework .
    SynergyVapor SynergyVapor ⇗提供了一个使用 SynergyAPI 的示例 Vapor Web 应用程序。 .
    协同客户 Synergy ⇗提供 iOS 和 macOS 客户端 Xcode 项目。 iOS 和 macOS 客户端都使用 SynergyAPI包裹。
    iOS/macOS 应用程序中的 Swift 包
    Swift Package Manager Project 在 2019.06.03 之前声明如下:

    Note that at this time the Package Manager has no support for iOS, watchOS, or tvOS platforms.


    2019.06.03, Swift Package Manager Project已更新以表明 Xcode 11 中存在一些 SPM 支持。

    Xcode 11 integrates with libSwiftPM to provide support for iOS, watchOS, and tvOS platforms.


    即使 Swift Package manager 不能直接创建 iOS 或 macOS 应用程序,Swift Packages 仍然可以用作各个 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
    SubprojectSynergyAPI
    资源
  • StackOverflow: How do I use Swift Package Manager with an existing macOS project? ⇗
  • StackOverflow: Vapor server and companion iOS app examples ⇗
  • 教程:"Sharing Swift Code Between iOS and Server Applications" ⇗
  • 关于Vapor 服务器和配套的 iOS 应用程序示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47717355/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com