我可以写使用Python原生iPhone应用程序

问题描述 投票:87回答:13

使用PyObjC,您可以使用Python编写Cocoa应用程序为OS X我可以写使用Python原生iPhone应用程序,如果是这样,如何?

iphone python cocoa-touch
13个回答
34
投票

目前没有,目前可用来访问iPhone SDK的唯一语言是C / C ++,Objective C的和斯威夫特。

没有任何技术原因,这不可能在将来改变,但我不会屏住呼吸,这种情况发生在短期内。

这就是说,Objective-C和斯威夫特真的不是太吓人了......

2016 edit

的Javascript NativeScript框架现已使用。


1
投票

你可以用PyObjC做到这一点,当然是有一个越狱的手机。但是,如果你想要得到它进入App Store,他们不会允许它,因为它“解释代码。”但是,您可能能够使用Shed Skin,虽然我不知道任何人这样做。我想不出什么好理由这样做,虽然,因为你失去了动态类型,还不如使用ObjC。


1
投票

我认为这是不可能的,但前面我最近听说PyMob,因为应用程序是用Python编写的,并最终输出在各种平台(对象 - 适用于iOS,Java的针对Android等),原生的源代码,这似乎有趣。这当然是非常独特的。 This网页解释了它的更多细节。

我没有给它一个镜头还,但很快就一起来看看。


1
投票

BeeWare是创作原生iOS和Android应用程序的开源框架。


1
投票

2019更新:

虽然Python的iOS开发是相对不成熟,可能会阻止(据我所知)从具有天然的UI,并且可以在苹果支持的开发语言来实现功能的应用程序,苹果现在似乎允许嵌入的Python解释器在本地斯威夫特/的OBJ-C应用。

这支持从本地斯威夫特/的OBJ-C代码导入Python库和运行Python脚本(即使提供的命令行参数)直接。

我公司在实际包装我们的原生的iOS应用程序的基础设施(原来用Python编写的)!它的工作原理非常好,可以通过客户端 - 服务器模型,可以轻松实现各部分之间的通信。

这里是一个不错的库通过Beeware用,如果你想尝试在iOS应用运行Python脚本18.11模板:https://github.com/beeware/Python-Apple-support/tree/3.6


0
投票

唯一显著“外部”的语言为iPhone开发,我是在框架和兼容性方面半显著支持知道的是MonoTouch,在iPhone上开发C#/。NET环境。


52
投票

您可以在iPhone上使用PyObjC为好,由于杰伊·弗里曼(Saurik公司)的出色工作。见iPhone Applications in Python

请注意,这需要在此刻越狱iPhone。


22
投票

是的你可以。你写在你的tinypy代码(这是限制Python的),然后用tinypy将其转换为C ++,最后用了XCode编译成原生iPhone应用程序这一点。菲尔Hassey出版了一本叫做大象的游戏!使用这种方法。这里有更多的细节,

http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/


22
投票

看来这是现在一些开发商被允许这样做:iOS的开发者协议是昨天发生变化,似乎已经在这样一种方式被ammended为使您的应用程序中嵌入法律一个Python interpretter:

3.3.2节 - INTERPRETERS

旧:

3.3.2应用程序可能不本身安装或以任何方式启动其他可执行代码,包括但不限于通过使用插件架构的,呼叫其他的框架,其他API或其它。除非另有苹果书面批准,没有解释的代码可能下载或除了代码是解释和苹果的记录的API和内置解释(S)运行的应用程序使用。尽管如此,与苹果公司的事先书面同意,如果这样的使用仅是为了提供与该应用程序的预期和宣传的目的一致的小功能或功能的应用程序可以使用嵌入在一个有限的方式解释代码。

新:

3.3.2应用程序可能无法下载或安装可执行代码。解释的代码只可在应用程序中使用,如果所有的脚本,代码和解释都封装在应用程序,而不是下载。唯一的例外,以上是脚本和代码下载,并通过苹果公司的内置的WebKit框架上运行。


20
投票

是的,现在你可以开发在Python iOS应用。

有两个框架,你可能要签:KivyPyMob

请认真考虑回答this question过,因为他们更跟上时代的不止这一个。


19
投票

到了iOS开发者协议的更新意味着,当你满足开发人员指南,你可以使用任何你喜欢的,只要。第3.3.1节,制约开发人员可以使用什么iOS开发,已被完全删除。

来源:http://daringfireball.net/2010/09/app_store_guidelines


8
投票

Pythonista其出口到Xcode的功能,它允许您将Python脚本导出为建立独立的iOS应用程序的Xcode项目。

https://github.com/ColdGrub1384/Pyto也值得探讨。


5
投票

在iPhone SDK协议也相当含糊担心自己是否会甚至允许运行脚本语言(一个WebView中的JavaScript之外)。我的解读是,这是确定的 - 只要你没有执行该脚本从网络(所以预安装和用户编辑的脚本似乎是OK)下载。

IANAL等等等等。


2
投票

从技术上说,只要解释代码不被下载(不包括JavaScript的),应用程序可能会批准。 Rhomobiles“罗德”框架就是这样做的,捆绑移动的Ruby,Rails的的轻量级版本,和你的应用程序在App商店分布。因为无论是翻译和解释代码被打包到最终的应用程序 - 苹果不觉得反感。

http://rhomobile.com/products/rhodes/

即使是最新的苹果新闻发布后 - 罗德应用(移动红宝石)仍然在应用程序商店是可行的。我觉得很难相信,tinyPy或pyObjC不会找一个地方是否有愿意开发者社区。

© www.soinside.com 2019 - 2024. All rights reserved.