思考の試行

日々の思考や考察を頭に留めておくことが難しくなってきた近年。せっかく得た大切な情報をここに記すとしよう。

クロスプラットフォーム ~OpenFL 考察~

仕事の都合上、複数のプラットフォーム上(Win,Mac,iOS)で動作可能なアプリケーションの開発が必要になりそうだ。

ネットワークが接続できない環境での使用が必須で、残念ながらWEBではなく、アプリでの開発が必要な案件だ。

要員を投入してそれぞれのプラットフォームごとに開発を行うのも可能だが、過去の経験で、同一仕様でWindowsHP-UX向けの運用支援スクリプトを作成した際、仕様の誤差が最後まで縮まらず大変苦労した経験がある。

できれば、単一ソースで作成し、複数環境で動作可能なアプリケーションを実現したい。

今もっている技術で実現可能なのは、Javaだ。

しかしながら、Javaで作られたクロスプラットフォームのアプリケーションをいくつか使ったみたが、ほとんどは開発支援用のツールだ。しかも、動作は緩慢で、Windows以外のプラットフォームでの操作感に違和感がある。ツールや使用環境が限られるアプリケーションであれば我慢できるが、一般公開するようなアプリケーションの作成には不向きだ。

次に考えられるのが、AdobeAIR。日本郵政が提供している「はがきデザインキット」で使用したことがある。(逆に他のアプリケーションは見たことがない)

これは主にWEB開発に利用できる技術(HTMLやFlash)でリッチなデスクトップアプリケーションを作成することができるものである。確かに非常にきれいなU/Iであり、一般公開するアプリケーションとして十分に耐えうるものではある。しかし、とにかく重い。起動までに時間がかかりすぎて、作業を中断することもたびたびあった。我慢して、ということも可能だが、開発者側の都合を、使用者に押し付けるようで、少々心苦しい。

そこで他に選択肢がないか調べた結果、「OpenFL」というゲームやアプリケーションを構築するためのソフトウェア開発キットがあった。すばらしいのは、出力形態がiOSAndroidBlackBerryWindowsMacLinuxFlashHTML5に対応しているのだが、単一ソースからそれぞれのプラットフォーム向けにネイティブコードを出力してコンパイルするのだ。Java、AdobeAIRの動作が緩慢な理由は、クロスプラットフォームを実現するためにVMという仮想マシン上で中間コードを実行するためである。ネイティブコードでコンパイルするのであれば、パフォーマンスに関してはかなり期待することができる。比較的新しい技術のようで、参考文献はまだ少ない。

だが、このような技術はエンジニアとしてワクワクする。次回、環境を構築して評価してみたい。