用Python同时瞄准android和iphone

用Python同时瞄准android和iphone,python,android,iphone,beeware,Python,Android,Iphone,Beeware,我想开发一个针对android和iphone的应用程序。我猜他们使用Java和Objective-C。我可以使用像Python这样的单一语言吗?这是最好的路线吗?我会因为使用Python而失去性能、特性等。我会遇到什么限制吗?您不能在Android或iPhone平台上使用Python。苹果SDK许可证显然排除了这一点,而安卓系统实际上有一个,但你很快就会意识到这并不适用于最终用户。无论如何,iPhone不支持Python这一事实排除了跨平台选项的可能性 我认为构建一个真正支持Android和iP

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

您不能在Android或iPhone平台上使用Python。苹果SDK许可证显然排除了这一点,而安卓系统实际上有一个,但你很快就会意识到这并不适用于最终用户。无论如何,iPhone不支持Python这一事实排除了跨平台选项的可能性

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

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

这是一个极端。另一个极端是“完全本地应用”,即在Objective C/Cocoa Touch或Java/Android中开发的应用。完全访问SDK、特殊硬件、本机外观,没有跨平台兼容性

第三种可能是混合应用程序。你可以定义一个原生的骨架用户界面(比如说,在iPhone上,一个基于导航的应用程序),并通过HTML5提供视图的内容和详细的界面。骨架用户界面将不会是可移植的,但它将允许您在纯HTML5应用程序上做更多的事情。这种方法通常需要在应用程序中使用HTML查看器类,这样您就有了:骨架UI+原生web查看器+HTML5内容


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

phonegap是您可以用来瞄准iphone和android的一种方式。通过javascript,html.

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


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

< P>我会考虑咬紧子弹,并最终目标是最终学习java和C/Objtojava。我有一些比较,也许在Java/Android中编写一个简单的应用程序,然后尝试在iS/C/Obj.C中复制它。如果你的目标是让星星登陆月球,你会忘记你一生中学过多少种语言。

你需要以本地人的身份运行应用程序吗?这对我来说很简单。顺便问一下,“完全本地”是什么意思,“HTML5内容在设备上本地托管”或“在您的站点上并在本地web视图中显示”根据您所说的,我可以制定此路线吗?通过混合方法,我可以构建本机UI(iPhone上的objective-C和Android上的Java),然后通过移动设备上的HTML查看器类向该UI提供HTML5内容,该类由远程web服务器上的HTML5应用程序提供。这是完全可行的,(最低限度)本机UI+HTML5.+1这个答案中缺少的一点是JavaScript,它是PhoneGap等跨平台混合应用程序框架的基本组件。