普通 "ハイブリッドモバイルアプリ"と言えば,その真意はApp Store登録用の薄いラッパを備えたHTMLアプリであるPhoneGapのことだ。そうでなければ,操作は簡単だがすぐ役に立たなくなるようなアプリビルダの話だろう。最近は掃いて捨てるほど数が多いので、少し話題になる程度で,たいていはすぐに忘れられてしまう。しかし SyncfusionのOrubase は違うらしい。HTMLとネイティブコードを自由に混在させることが可能な、本物のハイブリッドアプリケーション・アプリケーションなのだ。一体どのようなものなのか,改めて確認してみよう。
Orubase の対象ユーザは.NET開発者だ。そのためVisual Studioや,サーバサイドのコンポーネントにおいてはASP.NET MVCに大きく依存している。プロジェクトを作成するときには,アプリケーションで使用するビューをリストアップする必要がある。そうすればプロジェクトウィザードが,各ビュー用のMVCスタブを生成してくれる。
次にOrubaseは,プラットフォームに対応したプロジェクトを作成する。MonoやPhoneGap/Apache Cordovaなどは使用しない。Syncfusionはそれらに代えて、ネイティブコードと自社開発のコールバックフレームワークを採用した。(ただしネイティブ機能へのアクセスにAjaxスタイルの呼び出しを使用する点はPhoneGapライクだ。)
生成されたプロジェクトは,適切なツールでコンパイルしなければならない。iOS用の開発ならばMacが必要だ。とは言っても,エミュレータを使用すればかなりの部分まで開発することができる。
ネイティブのルック・アンド・フィール
Orubaseの最大のセールスポイントは,ネイティブコード的なルック・アンド・フィールにある。その理由の大部分は,それがネイティブコードであるからだ。メニューの機能などは実際にネイティブコードを使用して作られているので,どのプラットフォームにおいても適切な位置に表示される。
アプリケーションの外見には,主としてHTMLとCSSが駆使されている。サーバサイドのMVCがクライアントで動作しているOSに対応して,外観の変更を自動的にコントロールする仕組みだ。下図はその例である。
ネイティブのビュー
Orubaseを肯定的に評価できる理由のひとつとして,そのネイティブコードの扱い方がある。前述したとおり,我々がこれまでレビューしたモバイルプラットフォームのほとんどは,開発者に可能な限りJavaやObjective-Cを意識させないようにしている。中にはアプリのコンパイルを"クラウド上で"実行することで,開発者に操作させないように配慮しているものまである。
Orubaseのやり方はこれとは違う。正確な表現をすれば,開発者はコンパイル時を除いてネイティブコードを意識する必要はない。開発者の役目は,各プラットフォーム対応の微調整を行うことだ。これは単なるメニューかも知れないが,それ以上に重要な意味を持っている可能性もある。
ビューの中には,特にパフォーマンスが重要なものや,あるいはHTMLでは正確に表現できないネイティブコントロールが必要なものがある。そのような場合には,ネイティブビューを作成しなければならない。作成したネイティブビューはサーバで生成されるHTMLビューと並列して配置されるので,ユーザに違和感を持たせないものであることが必要だ。
このテクニックに新規さはない。Appleも現在App Store自体で使用している。90年代にまで遡れば,Microsoft Moneyのようにユーザインターフェースの一部として採用しているアプリケーションも見つけられるだろう。
対象ユーザ
Orubaseが特に対象としているのは,最高水準までは望まないが,相応のパフォーマンスを必要としているビジネス開発者などだ。ビデオゲームやリソースを大量に消費するアプリを構築している開発者に対しては,Syncfusionはこの製品を推奨していない。一方でJavaScriptを使っていて若干のパフォーマンス不足に悩まされている,あるいはネイティブのルック・アンド・フィールが必要だ,といった場合にはOrubaseを検討してほしい,というのが同社の考えだ。
サポート対象プラットフォーム
現時点ではiOSとAndroidがフルサポートの対象である。WindowsPhoneのサポートは7.x機能に限定されているが,近日中にはWindows Phone 8も利用可能になるはずだ。Windows RTのサポートは6ヶ月以上先のことになる。
InfoQでは近々,Syncfusionへのインタビューを予定している。同社への質問があれば,下記コメント欄への投稿をお願いしたい。