#kivy
Kivy是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,对于多点触控有着非常良好的支持,是一套专门用于跨平台快速应用开发的开源框架,使用Python和Cython编写,基于OpenGL ES 2只需一套代码,即可运行于主流桌面和移动平台之上,支持大部分原生输入协议和设备,包括WM_Touch、WM_Pen、Mac OS X Trackpad和Magic Mouse、Mtdev、Linux Kernel HID、TUIO,此外,还包含一个多点触控的鼠标模拟器。
#demo
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text='Hello World')
TestApp().run()
这样就可以在Mac和ios以及安卓上运行
kivy 与iOS交互,新建一个demo.py
print "Hello Kivy"
python demo.py
ios .m文件里面 调用
FILE * fp = fopen(Queuet.py", "r");
if (fp == NULL)
return 1;
PyRun_SimpleFile(fp, "demo.py");
iOS与python交互通过一个文件,或字符串的形式来做PyRun_String,PyRun_SimpleFile
这样的方式对于编译型语法的程序员来说很别扭,不过kivy主要开发是用python,
PyRun_SimpleFile估计是官方给的一个并不好的交互方式。
python调用iOS pyobjus,主要是调用iOS里面一些特有的类型,目前支持delegate回调方式
from pyobjus import autoclass
from pyobjus.dylib_manager import load_framework, INCLUDE
load_framework(INCLUDE.AppKit)
NSAlert = autoclass('NSAlert')
NSString = autoclass('NSString')
ns = lambda x: NSString.alloc().initWithUTF8String_(x)
alert = NSAlert.alloc().init()
alert.setMessageText_(ns('Hello world from python!'))
alert.addButtonWithTitle_(NSString.stringWithUTF8String_("OK"))
alert.addButtonWithTitle_(NSString.stringWithUTF8String_("Cancel"))
alert.runModal()
python 对于网络,数据库,动画,3d,逻辑实现是可以的,但是kivy的gui界面实在做得是差强人意,和xib相比可以用粗制滥造来形容,开发人员少,毕竟没苹果那么财雄势大。这点还是可以理解的
整体来说做逻辑可以考虑kivy,,另外就是kivy官方的更新速度不是很快。 编译器的完善性有待项目检验,不过它的UI框架使用起来比iOS方便很多,独有的kivy语法很神奇,写界面很方便。但是界面确实不敢恭维。
期待kivy进一步完善。