Kivy跨平台技术开发iOS

#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 demo

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相比可以用粗制滥造来形容,开发人员少,毕竟没苹果那么财雄势大。这点还是可以理解的

lisview
UI可视化编辑器
编辑器

整体来说做逻辑可以考虑kivy,,另外就是kivy官方的更新速度不是很快。 编译器的完善性有待项目检验,不过它的UI框架使用起来比iOS方便很多,独有的kivy语法很神奇,写界面很方便。但是界面确实不敢恭维。

期待kivy进一步完善。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,655评论 7 249
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,301评论 4 61
  • 本文参加#未完待续,就要表白#活动,本人承诺,文章内容为原创,且未在其它平台发表过。 表白一个很喜欢的高...
    张伟航的家长阅读 287评论 4 1
  • 怀孕前的准备有哪些?在打算怀孕前做好备孕工作有利于下一代的健康,同时也可以借此机会好好地调理一下女性身体,而万事都...
    孕妇注意事项阅读 145评论 0 1
  • 前段时间一个部队的同学回来探亲,期间我们喝了好几次酒。 他高考考入军校,现任连长,就叫他连长吧。连长之前的女朋友是...
    vj日常阅读 284评论 0 0