【问题标题】:Compiling Swift for Android为 Android 编译 Swift
【发布时间】:2021-09-07 19:24:14
【问题描述】:

最近我一直在尝试检查是否有办法从 swift 代码生成 APK。

经过一些研究,我注意到几年前有很多线程,然后它就死了。是不是因为某个问题?还有可能吗?

就我而言,我已经有一个希望迁移到 android 的 xcode 项目,但如果可能的话,我希望只有一个源代码而不是 2 个。

【问题讨论】:

  • 即使可以,平台也如此不同,以至于您需要完全重写 UI、存储、线程等。您最多可以在它们之间共享业务逻辑,但要做到这一点,您'd 需要设置以将其分开。除非您从一开始就对其进行架构设计,否则这是不可能的。
  • Google 最近再次宣布了 Kotlin 的多平台支持,正如 Gabe Sechan 所说,它只是为了共享业务逻辑而不是 UI,你可以更深入地挖掘它以找到代码可重用性,但如果你想保持通用代码跨平台像 react native、flutter 这样的编程语言应该对你有好处
  • 是的,让两个操作系统都使用一个代码的最佳方法似乎是用另一种语言重写应用程序。
  • SCADE 2 作为跨平台

标签: android swift apk


【解决方案1】:

虽然为 Android 编译 Swift 代码,甚至创建一个 .apk 文件仍然远非简单,但它 is technically possible。不过,从您提出这个问题的方式来看,我希望您更多地关注编程语言的“用户空间”,而不是了解足够的编译器细节以使其在合理的时间内工作并通过所有快节奏的更改来维护它正在发生。

所以对你来说更现实的答案可能是,目前不可能

但目前 Swift 社区正在进行大量工作,以通过多种方式推动对更多平台的支持,既使在更多平台上构建 Swift 变得非常容易,也为创建 UI 和与系统集成提供框架正确(因为 Swift 只是一种编程语言,应用程序不仅仅是编程逻辑)。

这里有几个链接供进一步阅读:

  1. "Getting Started with Swift on Android" 来自 Swift GitHub 存储库
  2. Realm (2017) 和 Readdle (2018) 的博文解释了 Android 应用的需求
  3. Most viewed threads 用于 Swift 官方论坛上的 Android 标签
  4. "On the road to Swift 6" 帖子,解释 Swift 在不久的将来将如何扩展
  5. 社区驱动的port of UIKit for Android(正在进行中)
  6. SwiftUI 的端口OpenSwiftUITokamak)尚不支持 Android,但以后可能会支持

我希望这可以很好地概述 Swift for Android 的当前状态。

【讨论】:

    【解决方案2】:

    您不能将 swift 代码转换为 java 代码。 有些语言和框架允许使用相同的语言为 Android 或 IOS 编写代码。此类平台是完全原生的,或半原生(混合)或基于 Web 的。

    如果我们谈论 swift - 它是 ios 的本机,因此您无法从中生成 android。

    将来你可以使用 Flutter、React Native 或 Kotlin 和插件来为这两个平台编写。

    很遗憾,您将不得不为 Android 重写它。

    【讨论】:

    • 嗨 Andrei,我并不是真的想将 Swift 转换为 Java,我实际上想知道是否有任何方法可以从 Swift 编译 apk。我的第一反应是去响应原生、ios 或 xamarin。不幸的是,我“继承”了 swift 代码(不反对该语言)。所以我没有重写,而是试图找出是否可以重用它。
    • 不幸的是,我从未听说过任何这样的转换器或编译器。我听说过visa-versa,android-ios,但从未测试过。 MechDome ,如果您有兴趣查看。
    • OP 专门要求为 Android 构建 Swift,而不是为其他编程语言。仅提及其他语言且不回答手头问题的答案属于其他线程,例如this one
    猜你喜欢
    • 2018-03-16
    • 2012-02-12
    • 2020-09-14
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多