ふにゃるんv2

もとは、http://d.hatena.ne.jp/Wacky/

Titanium Desktopを使って、Python呼び出しはどれだけ楽か?

Titanium Desktopが Python, Ruby, PHPで呼び出すGUI開発に便利だよ〜と言う記事を前に読みまして、どれだけ便利かインストールして試してみました。


Titanium Desktopが どんなものか?どんな事が出来るか?については、上のWeb siteを見た方が良いでしょう。

ここでは、Pythonとの連携性がどれだけのものか、自分で試してみたメモです。

インストール

Titanium Desktopを使った開発を行うには、本家でセットアップをダウンロードしてインストールします。

の真ん中辺りに、Windows / Linux / Mac OSXの三種類のセットアップが用意されているので、ダウンロードして実行&インストールします。

ちなみに、Windows版のセットアップのサイズは5〜6MB程度でした。
(バックグランドで本体をダウンロードしているんでしょう)

プロジェクトの新規作成

インストールが完了したら、スタートメニューからTitanium Developerを起動して、プロジェクトを新規作成します。
上のLinkの説明でも書いてありますが、このTitanium Developerアプリケーションはプロジェクトの管理能力しか無いようで、Visual StudioDelphiのようなポトペタ開発は出来ません。あしからず。
(ソース管理や編集も出来ません。かなり潔いです)


まずは、画面上部の「New Project」アイコンをクリックしますと、プロジェクトの設定を求められますので適当に入力します。
7
7 posted by (C)wacky

気をつけるべき点は、「Project Type」を「Desktop」に設定する事と、「Directory」でプロジェクトの保存フォルダを指定する事、「Language Modules」に使用する言語にチェックする事でしょうか。
入力後、「Create Project」をクリックすると、プロジェクトの作成はOKです。


後から設定を変更したかったら、左欄の「PROJECTS」欄に表示されているプロジェクトを指定しつつ「Edit」欄をクリックすると表示される項目を修正して、「Save Changes」すればOKのようです。

とりあえず動かす

先ほど作ったプロジェクトから、いきなり動かす事ができます。
「Test & Package」を選択し、「Launch App」ボタンを押すと、何やらビルドが始まります。
2
2 posted by (C)wacky


ちょっと待っていると、以下のような「Welcome Titanium」アプリケーションが起動します。
3
3 posted by (C)wacky


ちなみにビルドすると、プロジェクトのフォルダ下に、「dist\win32\<プロジェクト名>」というサブフォルダが出来て、そこに実行バイナリが出来ています。
これをダブルクリックするだけでも、簡単に動作させる事が出来ます。


出来たアプリケーションをチェックしてみたんですが、Webkit.dllやPython25.dllの他、色んなDLLが起動しています。
その割には、起動は まぁまぁ早いです。(代わりに、終了が遅い。自分のボロマシンだと2〜3秒程度待たされる)

Pythonコードを組み込む

さて、先のテンプレートアプリケーションに、Pythonを呼び出すコードを組み込んでみます。

「Resources」フォルダに「index.html」ファイルがあり、これがアプリケーションの外見を司りますので、一部いじりましょう。

index.html:

<html>
<head>
<title>hello Titanium</title>
<script type="text/python" src="test.py"></script>
</head>
<body style="background-color:#1c1c1c;margin:0">
<div style="border-top:1px solid #404040"><div style="color:#fff;;padding:10px">Welcome to Titanium</div></div>
<input type="button" onclick="test_call()" value="RUN"></input>
</body>
</html>

やっている事は、「RUN」という名前のボタンを設置し、それが押されたら「test_call()」メソッドを呼び出すというものです。


次に、「test_call()」メソッド本体を、Python言語で記述します。
これは、「test.py」という名前にしました。

test.py:

from winsound import *

def test_call():
	MessageBeep()

#test_call()

やっている事は、単にサウンドを鳴らすだけです。


再度「Launch App」でビルドして動かします。
6
6 posted by (C)wacky

「RUN」ボタンを押すと、「ポン」「ポン」と音が鳴り、ちゃんと呼び出されている事が判ります。

感想

恒例の利用しての感想です。

  • イメージ的には、バイナリ化+スクリプト言語で記述できるHTA(HTML Application)。
  • (終了は遅いけど)起動が早いのは、好感度アップ。
  • Titanium Developer本体は、プロジェクト管理だけの機能だけど、中途半端なものを付けられるくらいなら これで十分。