常见支持开发 iOS 的第三方语言
Js 语言
Lua 语言
Ruby 语言(RubyMotion)
怎么用 Python 开发 iOS 程序
其实我们最主要解决的就是下面几件事情:
在 iOS App 中安装 Python 解释器
搭建 Python 和 objc 通信的桥梁(rubicon)
如何配置工程并开发
在 iOS App 中安装 Python 解释器
Python-iOS-support
pybee 开源了一个可以嵌入到 iOS 工程中的 Python 编译脚本,具体位置在这:
https://github.com/pybee/Python-iOS-support
默认是使用 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 解释器编译
cd 到 Python-iOS-support 目录,设置编译参数,直接编译。我们这只需要 iOS 版本,所以直接 make iOS 即可。
Python 解释器framework
如果编译出问题,可以直接下载编译好的版本:
https://github.com/pybee/Python-iOS-support/releases
搭建 Python 和 objc 通信的桥梁
rubicon-objc 是一个连接 Python 和 objc 的桥梁。
首先,我们需要安装一下:
打开 mac 终端运行下面命令 pip install rubicon-objc
Python 写 iOS 语法
1)调用 objc 的方式和以前 objc 直接的写法很像.
2)方法名不使用:,而是使用_ 如:OC 代码:[label setText:@"xxx title"]
Python 代码:label.setText_("xxx title")
3)不能使用 nil,Python 里面使用 None 代替 如:myArray = NSArray.arrayWithObjects_("ok", "ok1", "ok2", None)
Python 可支持 iOS 插件功能
1、iOS 内嵌 lua wax 可实现 app 下发插件能力。
2、iOS 内嵌 jsPatch 可实现 app 下发插件能力。
3、iOS 如果内嵌 Python 解释器与 rubicon 通信框架,利用 OC runtime 同样可以下发 python 文件来实现下发插件能力。
原文地址 :https://cloud.tencent.com/developer/article/1005262?fromSource=waitui (转载)
Python 开发 iOS 总结
1、没有 Oc 语法高亮 IDE 的支持 ,OC 系统库方法名较长开发者必须熟记各名方法名,这无疑给开发增加难度。
2、Python 解释器过大生成的只有 ARMv7 和 ARM64 的 Python.framework 就已经有 20M 了;相比较而言,lua 的解释器就只有 200k。
3、技术支持 rubicon 没有任何官方文档;开者过程出现一些 rubicon 框架自身的 BUG,无人解决。
一个可以编译执行的 demo
运行结果如下:
网友评论