3年間という開発期間を経て,EclipseSource が Tabris 1.0 をリリースした。iOSとAndroidに対応した,クロスプラットフォームのJavaモバイル開発フレームワークだ。企業をターゲットにするこのTabrisは,これまでの他のモバイルソリューションとは異なるアプローチを採用する。
- プログラミングの大部分はJavaで行う。
- クライアントUIのバイナリ表現などビジネスロジックは,サーバ側の Eclipse RAP 上で動作する。
- モバイルデバイス上では,非常に軽量なクライアントアプリケーションが動作する。
- サーバはJSONフォーマットでクライアントと通信して,ビジュアルなUIを生成するためのデータとコマンドを送信する。
- クライアントのユーザインターフェースは,ネイティブコンポーネントを使用して生成される。
- iOS用のクライアントはObjective-Cで,Android用はJavaで記述されている。
TabrisにはJava SWT API上に構築された UI Toolkit が付属する。このツールキットは Page と Action という,2つの主要なウィジェットを備えている。Page はアプリケーション用の基本的なコンポーネントを含み,Action はユーザコマンドを扱うためのものだ。下記のTabrisアプリケーションデモのスナップショットでは,Page は赤で,Action は緑で示されている。
Page は結合してナビゲーションを行うことができる。Action はグローバル用 – アプリケーション全体 – とローカル用 – 現在のページ – から選択可能だ。
コンポーネントの処理が終わると,アプリケーションのサーバ側からクライアントにJSONスニペットが送信される。例えば以下のデータは,ボタンを生成するためのものだ。
受信したクライアントアプリは,iOSあるいはAndroidのネイティブコンポーネントを使ってボタンを描画する。
InfoQではEclipseSourceでTabrisサーバのチームリーダを務める Holger Staudacher氏 に,フレームワークについて詳しく聞くことにした。氏の話では,Tabrisは企業を対象にしているためにサーバとの常時ネットワーク接続が必要なのだという。
Tabrisはオンサイト・モビリティアプリケーションのためのフレームワークで,管理された環境の下で最適な動作を行います。"管理された" というのは,固定的ネットワークとか,そういった意味です。私たちのユーザは,例えば病院のように,すべてのデバイスが同じネットワークに接続されています。このようなアプリケーションは,普通は企業内で開発されるものです。
Tabrisはオフラインでは動作しません。基本的にはひとつのモバイルUIがひとつのセッションです。ですからユーザのデバイスが接続を失うと,そのセッションも無効になってしまいます。モバイルクライアント上ではエラー処理が動作していて,HTTP要求の再送など標準的なエラー処理が実装されています。ネイティブなエクステンションを使用して,アプリ開発者が拡張することも可能です。
Tarbisが汎用目的のアプリケーション開発に適しているか,という質問に対して氏は,理屈の上では可能だが,目的にベストフィットするものではない,と応えている。
汎用目的というのは,サーバに大きな負荷を掛ける,という意味だと思います。このフレームワークでは標準的なJavaEE技術を使用していますから,重いロードが発生するようであれば,Java EEクラスタリング機構を使用することも可能です。数百万というユーザ数でテストしたことはありませんが,技術的な視点からは可能なはずです ;)
Tabrisでは 多数のSWTコンポーネントのサポート に加えて,カメラや位置情報といったネイティブなセンサもいくつかサポートされている。
タブレットもサポートしているが,現時点でアプリケーションが一度に表示可能なのは1ページのみだ。複数ページのサポートは,将来的に追加が予定されている。さらに今後Tabrisが勢いを得られるならば,他のモバイルプラットフォームへの展開も考えられる。Windowsもサポートされることになるだろう。
近い将来の予定として,チームは以下の機能を追加したいと考えている。
- アドレスブックのサポート
- 姿勢センサのサポート
- クライアントイベントを処理するため,クライアントスクリプティングのサポート
- XCallbackUrl サポート
FAQ によると,Tabrisで構築されたアプリケーションは "App Storeのルールに従っていれば" App Store経由の配信も可能,ということだ。Android用の デモアプリケーション がGoogle Playで公開されている。
Tabrisはオープンソースではないが,エンタープライズライセンスでソースコードにアクセスすることができる。詳細については EclipseSourceの価格ページ に紹介されている。