Wax ?
Waxは、LuaでネイティブiPhoneアプリを開発できるフレームワークです。 Waxは、LuaとObjective-Cクラスライブラリを接続し、あらゆるObjective-CクラスやフレームワークをLuaで使用できるようにします。
Waxを使う理由?
- Waxはフリーでオープンソースです。いつでもあなたのニーズに合わせてソースコードを変更することができます。
- Luaのような効率的なスクリプト言語でコードを書けば、時間を大幅に節約できます!
- 既存のすべてのObjective-Cライブラリで動作します。
- これは、アプリがオンラインで一部の機能を更新できるようにするもので、Apple App Storeによる審査は不要になります。ただし、Appleがアプリのダウンロードコードを発見した場合は却下される可能性があります。
2.7 Apps that download code in any way or form will be rejected
2.8 Apps that install or launch other executable code will be rejectedHello Wax
Empty Applicationテンプレートを使用して、HelloWaxという名前の新しいiOS APPプロジェクトを作成します。
wax.framework のダウンロード: https://.////..ip
WaxパッケージのヘッダーファイルをインポートするAppDelegate.hファイル:
# import <wax/wax.h>
wax_start("init.lua", nil);
プロジェクトに新しいファイルinit.luaを作成します:
require "ViewController"
viewController = ViewController:init()
window = UIApplication:sharedApplication():keyWindow()
window:setRootViewController(viewController)
プロジェクト内にViewController.luaを新規作成します:
waxClass{"ViewController", UIViewController}
function viewDidLoad(self)
self.super:viewDidLoad(self)
local label = UILabel:initWithFrame(CGRect(0, 120, 320, 40))
label:setColor(UIColor:blackColor())
label:setText("Hello Wax!")
label:setTextAlignment(UITextAlignmentCenter)
local font = UIFont:fontWithName_size("Helvetica-Bold",50)
label:setFont(font)
self:view():addSubview(label)
end
ハローワックス!
Waxの構文について
Luaの関数名にはコロンを付けることができません。この違いを補うために、Objective-Cのメソッド名を区切るものは、Luaではアンダースコアに置き換えられます。例えば、上記のプログラムのUIFont:fontWithName_size("Helvetica-Bold",50)は、Objective-Cの[UIFont fontWithName:@"Helvetica-Bold" size:50]に対応します。
LuaにはObjective-Cのような継承システムはありません。waxClass{「クラス名”, 「PARENT_CLASS”}Objective-CのクラスをLuaで作成するには、.Luaという関数を使います。Luaファイルに追加した関数は、自動的にインスタンスメソッドとして新しいクラスに追加されます。
waxClass{"ViewController", UIViewController}
WaxはObjective-Cのプロパティをサポートしていません。View:setFrame(someFrame)使用できるのはsomeView.frameだけです。





