Xojo使い始めました
2016/03/24 グレープシティさん開催の「Xojo の基本から実践まで学べるセミナー」に行ってきました。
私が所属している会社ではこれまでEPUB制作用のツールをPerlにApplescript StudioでGUIを被せる形で作ってきたのですが、Applescript Studioを使うにはXcode3の環境の維持が必要で、XcodeはMac OSに強く紐付いたツールなので、OS Xの環境としては10.7の動作環境を維持する必要がありました。インストーラを加工して無理矢理10.9で動かす※1などの小細工でこれまでどうにか乗り切ってきたのですが、早晩マシンが壊れるなどすれば限界が来るのは見えていましたし、10.11ではXcode3のインストール時に相当深刻っぽいアラート画面が表示されたりもしましたので、代替環境として業界の先輩のものかのさんなどが使っていたXojoに目星をつけたわけです。
当日は専門の開発者向けに結構高度なセッションも行われていたのですが、私のように数ヵ月に1回ツールを作る程度の人間には正直ちんぶんかんぷんだったりもしましたので、ここでは私のような非専業でアプリも作る程度の使い方の人間にとって有用そうな情報に絞って紹介します。
Xojoで作れるもの/ライセンス価格
XojoはREALbasicの流れを汲むプログラム開発環境で、Windows、 Mac、 iOS、 Linux、 Raspberry Pi のアプリの他、Webアプリも作れるようです。何故かAndroidが無いのですが、中の人に聞いてみたらOSのメジャーバージョンアップでコロコロ仕様が変わるためとのこと。
ただ、各環境ごとにライセンスの購入は必要になります。料金表はこちら。Single Desktopあたりなら特に高くはないと思います。それ以外はある程度の期間開発に専念する境遇ならというところでしょうか。
Applescript Studioと比べてどこが良かったか
EPUB制作ツールをいくつかXojoに移植した程度ですのでそこまで深いことはもちろん言えませんが、まずユーザーインターフェース的に各ボタンのイベントハンドラに動作させるコードをぶら下げる作りになっており、コードの管理はしやすいです。Applescript Studioでは「on clicked theObject」の中でオブジェクト名を名称判別してサブルーチンに飛ばすみたいな処理を自分で書く必要がありました。中でやってることは同じなんでしょうが、管理しやすいのはよいことです。
それから、ほとんど英文ですがオンラインマニュアルが充実しており、使いたい機能名で検索すれば公式コードサンプルが大体すぐに出てきます。ユーザーコミュニティもそれなりに大きいようで、パワーユーザーによる新しめの情報にもアクセスしやすく、このあたりはもうとっくにレガシーなApplescript Studioとは雲泥の差がありました。
また、内部で正規表現が使えるのも大きいです。Applescriptは正規表現使えないんでテキスト置換とかで泣けるんですよね※2。
あとはOSベンダーの都合で仕様がガンガン変わったりしないことでしょうか。Appleは割とバッサリ下位互換を切るところがありますので。
移行で苦労したところ
AppleScriptもPerlも、変数の型をあまり意識しないで使えるスクリプト言語でしたので、きっちり型定義しないといけないところにはちょっと苦労しました。あとオブジェクト指向言語なのでオブジェクトのNil判定周りでちょっとコケてTwitterで教えてもらったりしましたが、まあそれくらいで、結構あっさり移植できた印象があります。ネット上にサンプルコードが豊富にあるとやはり強いです。それと有償ツールなので当然ではあるのですが、いざという時に公式サポートから助言がもらえるのは何と言っても心強いところです。
今後どう使っていくか
何と言ってもマルチ環境対応が大きいです。ライセンス料のコストはかかりますが、直にJavascriptやPHPを書かなくても簡単なWebアプリのGUIならサクッと作れそうですので、例えば社内向けツールを簡単に作って社内サーバーで公開して使ってもらう、外部の協力会社や発注者向けに情報共有ツールを作って提供するなど、いろいろとやれることがありそうです。
また、PerlだけでなくAppleScriptも連携して動かせますので、InDesignなどを外部制御して動かすツールも作れます。まあその場合はもちろんMac専用になるわけですが。
◇
という感じで、弊社内でのツール開発目的での導入としては正解でした。今後ガンガン使っていきます。GUIがあるとないとでは使ってもらえる人の幅に大きな差が出ますので、結構こういうツールは重要です。Xojoはコードの書式がほぼVBに近いということですので、ExcelやAccessなどでVBAを動かしていた層のアップグレードとしても結構有用なんじゃないでしょうか。MSのアプリケーション環境にロックインされませんし、なんでもかんでもExcelマクロよりは明らかに筋は良いです。
※1 そのままインストールすると起動時にカーネルパニック画面が拝めます。
※2 AppleScript's text item delimitersでごにょごにょやるか、シェル経由でperlあたりに投げる必要があります。複雑な置換処理は外部シェル一択。
(2016.3.25)