iOS中Lua脚本应用笔记二: 关于Lua在iOS的使用

1. 在App中引入脚本的原因:

如何处理UI变化

如何处理逻辑变化

如何解决数据源不灵活的问题

Objective-C语言的问题是其是编译执行的

2. 为什么选的是Lua

设计目标:嵌入到应用程序中(嵌入式脚本)

体积小:100-200K

最快的脚本语言(非JIT)

API简洁

动态语言

3. 使用Lua开发应用的模式:

A. Lua作为配置文件, 为宿主语言应用提供参数(有点像数据源?);

B. 宿主语言作为底层库,Lua作为逻辑描述。

4. 什么是Lua

Lua属脚本编程语言,于1994年由巴西里约热内卢天主教大学的研究人员设计开发,"Lua"为葡萄牙语单词"月亮"

与PHP、Perl、JavaScript不同,Lua被称为嵌入式脚本语言 , 最著名的应用是在网络游戏《魔兽世界》中

最引入注目的特点:以极小体积和简单的语法提供相对全面的功能;以简洁的API实现与宿主语言最方便的接口。

5. 为什么称为"嵌入式"?

最典型用法,作为一个库,嵌入到其他大型语言(称之为宿主语言)的应用程序之中,为应用程序提供参数配置或逻辑描述等功能,带来前所未有的灵活性。

Lua常见宿主语言有:C/C++, Java, .NET, 甚至其它脚本语言如PHP, Ruby等。

6. Lua工作流程:

Step 1 : 宿主语言建立Lua解释器对象。

Step 2 : 将宿主语言实现的Lua扩展(若有),如函数等,注册到Lua解释器中,供其使用。

Step 3 : 读入Lua source code或者预先编译后的Lua程序(可以从文件、字符串、网络等任意来源)。

Step 4 : 执行读入的Lua程序。

7. Wax框架及其本身的一些问题

https://github.com/probablycorey/wax/

设计目标:使用Lua开发应用

Objective为Lua提供库

只提供单向的辅助函数: Objective-C -> Lua

只提供一个lua_State

对Wax做了部分修改

其他的一些库:

Lua-Objective-C-Bridge

   LuaCocoa

大量应用商店使用Lua语言