一、引子
使用Python编写iOS原生应用,为何有这样的想法,其实本来是源于对JS类的跨平台框架的学习。熟悉原生开发的同学们都知道,对于可跨平台的原生框架,使用JS实现的占了大半,其原因是由于Apple内置了JavaScriptCore这样一个JS引擎,使得JavaScript与Objective-C的交互变得非常容易,能够交互,我们就可以容易的编写出各种各样的桥来为JS端提供原生功能,随着原生端桥的全面支持和JS端组件的丰富,一个完整的矿平台框架就诞生了。虽说这是一个庞大的工程,但是实现思路并不深奥,之前也有博客也有介绍:
https://my.oschina.net/u/2340880/blog/856321
有了JavaScript框架实现思路的基础,那么不免就很容易想到,其实在语言层面,语言可以做的事情都是相似的,只要有对应的引擎可用,那么原则上说,任何语言都可以编写iOS应用程序,只有难以与方便与否的差别。对于Python来说,其的确有iOS版本的解释器可用。
二、在iOS平台使用Python解释器
Github上有很多有趣的项目,其中有一个项目可以将Python源码编译成可以在iOS平台运行的Framework,其地址如下:
https://github.com/beeware/Python-Apple-support
有了这个工具,我们可以选择任意版本的Python来将其打包成Framework在iOS平台运行,当然如果你对版本没有特殊的要求,你也可以直接从下面的地址下载已经打包好的Framewok使用:
https://github.com/pybee/Python-iOS-support/releases
下载完成后,会得到两个Framework,将他们添加进工程,并进行链接,如下图:
需要注意,对于Python.framework要更特殊一点,我们需要将其拷贝进工程的Bundle中,以便后续使用。