使用Python同时针对Android和iPhone进行开发的目标

3

我想开发一款既能在安卓又能在iPhone上运行的应用程序。我猜它们分别使用Java和Objective-C语言。我是否可以使用单一的编程语言,例如Python?这是最佳的方法吗?如果使用Python,是否会损失性能、功能等方面的表现?是否会遇到任何限制?


你需要应用程序以本地方式运行吗? - Rudy
4个回答

3
你不能在Android或iPhone平台上使用Python。这显然被苹果SDK许可证所禁止,而对于Android来说,实际上有一个Android脚本环境,但你很快就会意识到它并不适合最终用户。无论如何,Python不支持iPhone,这使得它不能作为跨平台选项。
我认为构建真正支持Android和iPhone的跨平台应用程序的唯一方法是通过HTML5。当然,HTML5应用程序并非完全本地化,但您可以设计混合模式,在其中使用在设备上本地托管或在您的站点上托管的HTML5内容,并在本地网络视图中显示它。
纯HTML5应用程序并非完全本地,因为它们是HTML5而不是CocoaTouch(Android)应用程序。它们只能做HTML5允许的事情,并具有HTML5的外观和感觉。一个主要的限制是设备上特殊硬件的不可用性,例如加速器、陀螺仪等等。无论如何,它们提供了很大的灵活性和最大的跨平台兼容性。
这是一个极端。另一个极端是“完全本地应用程序”,即使用Objective C/Cocoa Touch或Java/Android开发的应用程序。完全访问SDK,特殊硬件,本机外观和感觉,在平台之间没有兼容性。
有第三种可能,即混合应用程序。您可以定义本机骨架UI(例如,基于导航的iPhone应用程序),并通过HTML5提供视图的内容和详细接口。骨架UI将不具备可移植性,但它将允许您做比纯HTML5应用程序更多的事情。此方法通常需要在您的应用程序中使用HTML查看器类,因此您将具有:骨架UI + 本机Web查看器 + HTML5内容。
关于“设备上托管的HTML5内容”:您可以在Web服务器上托管HTML5应用程序,也可以在本地托管设备并从那里加载它(无需Web访问)。

这对我来说很简单。 - vrao
顺便问一下,这些都是什么意思:“完全本地化”、“在设备上本地托管的HTML5内容”或“在您的网站上显示并在本地Web视图中显示”? - vrao
根据你所说的,我可以这样制定路线吗?使用混合方法,我可以构建本机 UI(在 iPhone 上使用 Objective-C,在 Android 上使用 Java),然后通过移动设备上的 HTML Viewer 类将此 UI 提供给 HTML5 内容,该内容是从远程 Web 服务器上的 HTML5 应用程序提供的。 - vrao
这是完全可行的,(最小化的)本地UI + HTML5。 - sergio
这个答案唯一缺少的是对JavaScript的提及,它是PhoneGap等跨平台混合应用框架中必不可少的组件。 - Caleb

0

PhoneGap是一种可以用来针对iPhone和Android的方式之一,通过JavaScript和HTML实现。


0

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

我没有看到@Snicolas提到的Appcelerator,但它可能在两个平台上提供更好的总体抽象。


0
我认为最好的方法是直接迎难而上,最终学习Java和C/Objective-C。这里有一些比较在这里。因此,你可以先用Java/Android编写一个简单的应用程序,然后尝试在iOS/C/Objective C中复制它。如果你采取这种“瞄准星星,落在月球上”的方法,你会忘记自己一生中学过多少种语言。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接