LuaAppMaker でアプリを作る

(2019.12.22. 公開)

0. はじめに

 LuaAppMaker は、クロスプラットフォームの単体アプリケーションを作るためのツールです。グラフィックインターフェイスとして wxWidgets、記述言語として Lua を使います。技術的に言えば、wxWidgets の Lua バインディングとして wxLua があり、それを実行するための環境をまとめたものが LuaAppMaker です。

0-1. なぜ Lua か

 Lua は単純な言語なので、覚えることが少なく、すぐに習得できます。LuaAppMaker のような「実行環境」があれば、書いたプログラムを手軽に走らせることができます。

0-2. なぜ wxLua か

 wxWidgets のプログラミングは C++ 言語で行うのが標準ですが、その他にも多くのプログラミング言語で利用することができます(「バインディング」と呼ぶ)。中でも、最近注目度の高い Python へのバインディングとして、wxPython があります。私も wxPython を使ってみて、これは素晴らしいプログラミング環境だ、と感じました。

 しかし、wxPython は、動かすまでのハードルがかなり高いのです。試しに、ウェブで wxPython の記事を探して、読んでみてください。たくさん見つかると思いますが、たいてい最初の方に「Python と wxPython がインストールされていることを前提とします」と書いてあるでしょう。これらのインストールは難しい作業ではないのですが、非常に多くのファイルやライブラリを PC に書き込むことになります。「一生 Python に添い遂げる」のであればともかく、「ちょっと使ってみる」にはハードルの高い作業です。さらに、自分が作ったソフトウェアを誰か他の人の PC で動かしたい場合に問題が起きます。その人の PC にも「同じバージョンの Python と wxPython」をインストールしないといけません。もちろん、wxPython でプログラムを書いて、それを単独のアプリケーションにパッケージすることはできますが、相当に複雑な手順が必要になります。これでは、「手軽に書ける」とは言えません。

 wxWidgets は、他にも多くの言語で使えるようになっていますが、多くの言語について、wxPython と同じような問題を抱えています。「その言語を使えるように PC を設定すること」と「その言語で wxWidgets を使えるようにすること」が、大きなハードルになりがちなのです。

 Lua については、少し事情が異なります。Lua は、もともと「他のプログラムに組み込まれて、そのプログラムの動作を制御する」目的で開発された言語です。LuaAppMaker のために書いた Lua プログラムは、LuaAppMaker に組み込まれた wxLua 上で動作します。wxLua は wxWidgets の多くの機能(すべてではないが)を実装しているので、LuaAppMaker も wxWidgets の多くの機能が使えることになります。また、これが大事なところですが、LuaAppMaker は単独のアプリケーションなので、インストールは簡単です。さらに、LuaAppMaker と Lua プログラムを一体化して、それ自体を単独のアプリケーションにすることも簡単にできます。

0-3. LuaAppMaker では LuaJIT 2.0.5 と wxWidgets 3.0 を使う

 Lua にはいくつかのバージョンがあり、仕様がかなり異なります。もともと「組み込み用」の言語であり、言語を単体で使うことは想定されていないので、言語仕様を一定にすることにはあまり熱心でないのです。

 LuaAppMaker に組み込まれているのは、LuaJIT 2.0.5 です。LuaJIT は、Lua 言語に「機械語」への翻訳機能を付加したもので、Lua 言語よりもプログラムを高速に実行することができます。LuaJIT は、Lua 言語のバージョン 5.1 と互換性があり、5.2 の機能も一部取り入れています。

 また、wxWidgets にもいくつかのバージョンがありますが、現在配布している LuaAppMaker では 3.0.3 を使っています。

 なお、LuaJIT も wxWidgets も LuaAppMaker アプリケーションの中に組み込まれていますので、あなたの PC にこれらのパッケージの別のバージョンがインストールされていたとしても、関係ありません。このことは、LuaAppMaker のプログラム開発を単純にします。LuaAppMaker のバージョンにだけ気をつけておけばよいわけです。

0-4. このチュートリアルの内容

 このチュートリアルでは、Mac OS X と Windows を対象に、LuaAppMaker のインストール、プログラムの書き方、アプリケーションパッケージの作り方を解説します。

目次