3

我想开发一个同时针对 android 和 iphone 的应用程序。我猜他们使用 Java 和 Objective-C。我可以使用像 Python 这样的单一语言吗?这是最好的路线吗?使用 Python 会失去性能、功能等吗?我会遇到什么限制吗?

4

4 回答 4

3

您不能在 Android 或 iPhone 平台上使用 Python。这显然被 Apple SDK 许可所禁止,而 Android 实际上有一个Android 脚本环境,但您很快就会意识到这并不适用于最终用户。无论如何,iPhone 不支持 Python 的事实将其排除在跨平台选项之外。

我认为构建支持 Android 和 iPhone 的真正跨平台应用程序的唯一方法是通过 HTML5。当然,HTML5 应用程序并不是完全原生的,但您可能会想出一种混合设计,在该设计中使用本地托管在设备或网站上的 HTML5 内容,并在原生 veb 视图中显示。

纯 HTML5 应用程序不是完全原生的,因为它们是 HTML5 而不是 CocoaTouch (Android) 应用程序。他们只能做 HTML5 允许的事情并具有 HTML5 的外观。一个主要限制是设备上没有可用的特殊硬件,如加速度计、陀螺仪等。无论如何,它们提供了很大的灵活性和最大的跨平台兼容性。

这是一个极端。另一个极端是“完全原生的应用程序”,即用Objective C/Cocoa Touch 或Java/Android 开发的应用程序。完全访问 SDK、特殊硬件、原生外观和感觉,跨平台不兼容。

还有第三种可能性,即混合应用。您可以定义原生骨架 UI(例如,在 iPhone 上,基于导航的应用程序)并通过 HTML5 提供视图内容和详细界面。骨架 UI 不会是可移植的,但它可以让你做的比在纯 HTML5 应用程序上做的要多得多。这种方法通常需要在您的应用程序中使用 HTML 查看器类,以便您拥有:骨架 UI + 原生 Web 查看器 + HTML5 内容。

关于“设备上本地托管的 HTML5 内容”:您可以将 HTML5 应用程序托管在 Web 服务器上,也可以本地托管到设备并从那里加载(无 Web 访问权限)。

于 2011-06-02T15:54:06.077 回答
0

phonegap是您可以用来定位 iphone 和 android.through javascript、html 的方式之一。

于 2011-06-02T16:07:48.750 回答
0

我所知道的最接近的是MonoTouchMonoDroid项目。它们允许您编写 C# 代码而不是 Objective-C(用于 iPhone)和 Java(用于 Android)。问题出现在 UI 中,因为没有针对不同 UI 模型的通用抽象。理想情况下,您可以编写您的核心业务/领域/任何代码,使其不依赖于 UI,然后以这种方式获得一些重用。

我还没有看到@Snicolas 提到的 Appcelerator,但它在提供跨两个平台的总抽象方面可能做得更好。

于 2011-06-02T16:09:55.430 回答
0

我会考虑咬紧牙关,以最终学习 Java 和 C/Objective-C 为最终目标。我这里有一些比较。因此,也许用 Java/Android 编写一个简单的应用程序,然后尝试在 iOS/C/Objective C 中复制它。如果你采取这种让星星登陆月球的方法,你会忘记你在你的学习过程中学到了多少语言寿命。

于 2011-06-03T01:29:14.253 回答