WEB开发网
开发学院手机开发iPhone 开发 Lua编写iOS程序 阅读

Lua编写iOS程序

 2012-10-08 13:42:08 来源:WEB开发网   
核心提示:在这里,我忽略了一些重要的和有趣的东西(比如闭包),Lua编写iOS程序(2),但至少,你已经学到了一点Lua的皮毛,可以在Corona模拟器中测试代码(支持Intel cpu和Power pc的Mac),图1显示了我的corona IDE: Emacs(包含Lua文件出口和项目窗口)、Corona终端(可以从诊断中打

在这里,我忽略了一些重要的和有趣的东西(比如闭包)。但至少,你已经学到了一点Lua的皮毛。在后面我们进入iPhone编码的时候,会看到更多的Lua代码。更多关于Lua的介绍,请阅读这个网站。

iOS支持脚本吗?

正如本文开头列出的两个问题,尤其是第2个问题:“iPhone允许使用Lua(或其他解释型语言)吗?”毕竟,早在苹果的IDP许可协议中就已经阐明“只有苹果官方的API和内置解释器所支持的解释型代码能被下载或用于app中”。

事实上,本文的拟写大纲时,苹果已经改变了原来禁止开发者在app使用除OC和Javascript(Javascript能在web app或者本地 app中使用——通过UIWebView)以外的其他语言的条款(circa2010 四月)。最近(2010 九月),苹果再次改变了这个条款,允许使用脚本语言。

但仍然有几个重要的限制。更主要的是,虽然你可以使用Lua(及其它脚本语言),但你的app不能允许用户从web上下载插件(用过应用程序购买吗?),也不能允许用户编写脚本、下载脚本等。有大量的商店应用在使用Lua这样的语言(比如劲乐团)。

当然,在app中包含Lua这类语言的两个最为主要的作用,就是创建插件系统,让用户自己能够编写脚本。除此之外还有许多。

如何在iOS开发中使用Lua?

尽管你不能为终端用户创建一个插件系统,也不能让用户自己编写脚本,但你仍然能以一种插件的方式开发你的系统!这可以加快原型的开发速度,同时在下个版本中有助于添加新的功能。使用Lua还有另一种好处,它允许你进行“快速原型开发”(我最喜欢抱怨的一句话:不要闭门造车式地编程),缓解甚至不需要内存管理,允许更多的团队成员参与到开发中来(有许多Lua项目根本没有程序员在编写代码),应用程序优化更加轻松,提供更强劲的持久化机制。

简而言之,Lua节省了开发时间,降低了开发门槛。生活变得如此轻松愉快!假设你已经决定使用Lua,那么我们该如何做起呢?

Corona

Ansca Mobile公司的Corona允许你完全用Lua来开发iOS应用,以及Android应用。你可以用同样的源代码编译出iOS和Android程序。这正是Lua(实际上是Corona)为何如此吸引人的原因:跨平台。

列表3 是一个app的全部源代码。

列表3: Swirly Text 应用中的main.lua

local w, h = display.stageWidth, display.stageHeight

local dx, dy, dtheta = 5, 5, 5

local background = display.newRect(0, 0, w, h)

background:setFillColor(255, 255, 255)

local message = display.newText('Hello from Corona', w/2, h/2)

message:setTextColor(0, 0, 200)

local function update(event)

local counter_spin =false

message:translate(dx, dy)

message:rotate(dtheta)

if message.x > wor message.x < 0 then

dx= -1 * dx

counter_spin = true

end

if message.y > hor message.y < 0 then

dy = -1 * dy

counter_spin = true

end

if counter_spin then

dtheta = -1 * dtheta

end

end

Runtime:addEventListener('enterFrame', update)

Corona程序可以用任何文本编辑器开发——我用的是Emacs。所有Lua源代码中用到的资源(图片、声音、数据)必需放在同一个目录,Corona需要main.lua文件来启动app。可以在Corona模拟器中测试代码(支持Intel cpu和Power pc的Mac)。图1显示了我的corona IDE: Emacs(包含Lua文件出口和项目窗口)、Corona终端(可以从诊断中打印调试信息),以及Corona模拟器。

上一页  1 2 3 4 5 6  下一页

Tags:Lua 编写 iOS

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接