【问题标题】:linux language to use to mirror iphone development用于镜像 iphone 开发的 linux 语言
【发布时间】:2010-02-10 20:36:41
【问题描述】:

我想在 linux 中创建一个 gui 程序,我最终可能会转移到 iphone。我应该使用什么编程语言和 GUI 框架来简化这个过程?

我认为使用 Objective-C 是最好的,因为 gcc 会编译它,但是是否有与 Cocoa 类似且不需要太多重写的与 Objective-C 一起使用的 GUI 框架? (除了明显的输入差异和出现iphone键盘时的屏幕偏移等)(Objective-C + Cocoa似乎是iphone唯一支持的语言)

谢谢,

【问题讨论】:

  • iPhone 不使用 Cocoa。它使用 Cocoa Touch。一个 Cocoa 应用程序只能在 Mac 上运行;它不会在 iPhone 上运行。

标签: iphone linux cocoa-touch user-interface


【解决方案1】:

您的问题确实是一个关于如何构建跨平台应用程序的经典问题。你基本上有两个选择:

  1. 使用特定于平台的 UI 在跨平台代码中实现应用程序模型。您可以轻松地为 iPhone 编译 C 和 C++,所以我会选择其中之一。您可以使用 Objective-C++(就像 Objective-C 是 C,Objective-C++ 是 C++ 的超集)将您的 Objective-C UI 连接到 iPhone 的这个模型层。当然,您会为 linux 版本使用其他一些 UI 工具包。唯一另一个现实的选择是用 C# 为 Mono 运行时编写后端。您可以使用 MonoTouch 为 iPhone 编译一个 C# 应用程序(尽管您需要一台 Mac 来实际部署它)。同样,您可以使用标准 C#/.Net 编写模型,但您必须使用 MonoTouch 的 UIKit 来编写 UI——本质上它仍然是特定于平台的 UI,但您可以使用 C# 和 .Net 而不是 C++ /升压/等。如果这是您的偏好,则用于后端。

  2. 使用完全跨平台的库。 iPhone 还没有,但 MonoTouch 可能是最接近的(见上文)。

所以,实际上,您的选择是 Objective-C/C/C++ 或 C#(通过 Mono)。您可以使用 GNUStep 工具链和库在 linux 上使用 Objective-C,但我不建议使用 GNUStep 编写整个应用程序,因为 GNUStep 和现代 Cocoa 之间存在足够的库差异,使其本质上是一个不同的平台。

【讨论】:

    【解决方案2】:

    我发现了这个:http://www.cocotron.org/

    然而 Iphone 是一个完全不同的野兽,Iphone Cocoa 与 Mac OS X 上的 Cocoa 不一样,至少 UI 部分不一样。

    【讨论】:

      【解决方案3】:

      据我了解,Objective-C 是 C 的超集。我认为 C 程序可以在 xcode 中编译并转移到 iPhone 上。

      现在,处理库完全是另一回事了。

      【讨论】:

        【解决方案4】:

        确实没有很好的解决方案。我唯一可能建议的是 Flash CS5。使用它,您可以编译为 AIR for linux 和原生 iPhone 应用程序。它不是真正的 iPhone 上的闪光灯。这是一种将 Flash 项目编译为原生 iphone 应用程序的方法。

        http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/

        【讨论】:

          【解决方案5】:

          最好从 Mac (Cocoa) 应用程序开始,如果需要,稍后将其移植到 iPhone。这样,港口将是一个相对较小的努力。当然,你需要一台 Mac 才能做到这一点,但一台 Mac Mini 只需几百美元,你可以使用现有的外围设备,以后如果不再需要它,可以在 eBay 上出售。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-06-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多