怎么用Python开发iOS程序

这篇文章将为大家详细讲解有关怎么用Python开发iOS程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

为雁塔等地区用户提供了全套网页设计制作服务,及雁塔网站建设行业解决方案。主营业务为网站设计、网站制作、雁塔网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

对,你没有看错,就是使用Python开发iOS程序!

我们见过使用JS、Lua、Ruby开发iOS程序的,但是基本没有见过使用Python开发iOS程序(软件)的,这是为什么?关于这个问题,我后面会回答。

那么,怎么用Python开发iOS程序呢?

其实我们最主要解决的就是下面几件事情:

在iOS App中安装Python解释器。

搭建Python和objc通信的桥梁。

如何配置工程并开发。

如果不使用UIKit这些,那么就要使用OpenGL ES这些了,这种方式,主要是用于开发游戏的,我们这里不涉及这些。

当然,以下所有内容都是在一台已经安装了Xcode的Mac上进行的。

在iOS App中安装Python解释器

Python-iOS-support

pybee开源了一个可以嵌入到iOS工程中的Python编译脚本,具体位置在这:

https://github.com/pybee/Python-iOS-supp...

默认是使用Python 3.4.2,编译x86_64、i386、ARMv7、ARMv7s、ARM64共5个版本,然后打成一个臃肿包,可选framework或者.a。

如果真的要用于生产环境的话,只要把Makefile中的

TARGETS-iOS=iphonesimulator.x86_64 iphonesimulator.i386 iphoneos.armv7 iphoneos.armv7s iphoneos.arm64

修改为:

TARGETS-iOS=iphoneos.armv7 iphoneos.arm64

我们只需要支持ARMv7和ARM64即可,ARMv7s可以兼容ARMv7,所以可以让包小一些。

修改Python版本的地方在:

PYTHON_VERSION=3.4.2

替换为需要版本即可。                                                                                                                                                                         

编译

切到Python-iOS-support目录,设置编译参数,直接编译。我们这只需要iOS版本,所以直接make iOS即可。

编译成功之后,会在build目录上生成Python.framework和OpenSSL.framework。

搭建Python和objc通信的桥梁

rubicon-objc是一个连接Python和objc的桥梁。

首先,我们需要安装一下:

pip install rubicon-objc

调用objc的方式和以前objc直接的写法很像,只是有一些需要改变,比如:

方法名不使用:,而是使用_。

多参数需要使用Python的方式

如何配置工程并开发

创建工程

Python所需要的工程和直接用Xcode创建的不太一样,手动改写的话,还比较麻烦,所以我们直接用模板工具生成。

cookiecutter是一个可以在模板中快速创建工程的一个工具,Python-iOS-template是pybee开源的一个使用Python开发iOS工程的模板。

首先,我们需要安装cookiecutter,直接使用pip安装即可:

pip install cookiecutter

创建完工程生成的目录:

app目录是放置我们创建的python文件的地方。

app_packages目录是放三方包的地方,等同于我们在电脑端的site_packages文件夹。

工程里面可以同时存在objc文件和python文件,两者可以各自运行,并不冲突。                                                                                   

关于怎么用Python开发iOS程序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


标题名称:怎么用Python开发iOS程序
当前URL:http://cdiso.cn/article/jcoijc.html

其他资讯