BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース V-Playで実現するクロスプラットフォームのネイティブアプリ開発

V-Playで実現するクロスプラットフォームのネイティブアプリ開発

原文(投稿日:2015/11/04)へのリンク

V-Playは,JavaScriptとQt 5の宣言型言語であるQMLを使用して,アプリ開発を容易にすることを目的とした,Qtベースのデスクトップおよびモバイルクロスプラットフォーム開発ソリューションである。iOS, Android, WindowsPhone, BlackBetty,その他のモバイルプラットフォームをサポートする。V-Playの共同設立者でCEOのChristian Feldbacher氏に話を聞いた。

V-Playは,デフォルトのネイティブなルック・アンド・フィール,C++に裏打ちされたハイパフォーマンス,Qt Quickを活用した容易なアニメーションなどの実現を目標としている。さらにC++やObjective-C,Javaによる独自のコードを統合すれば,プラットフォーム独自の機能を使用することも可能だ。

V-Playは当初2Dゲーム開発エンジンとして誕生したが,最近になって,汎用的なモバイルアプリ開発サポートを提供するように拡張された。次に示すのは,V-Playに用意されているUIコンポーネントをQMLで使用することによって,“Hello World”アプリが簡単に宣言できることを示す例だ。

import VPlayApps 1.0

App {
  Page {
    AppText { text: "Hello World" }
  }
}

V-Pkayは,UIやマルチメディア,ネットワークなどを広範囲にカバーするコンポーネントリストを提供する。注目すべきなのは,V-PlayがQMLを通じて提供するコンポーネントがすべてC++で実装されているため,最高のパフォーマンスが保証されていることだ。また,V-Playの主張によれば,QMLを使うことで,C++を直接使用する場合に比較して1/10以下のコードで記述できるという。Twitterアプリやメッセージングアプリ,天気アプリなど,多数のサンプルアプリも提供されている。

InfoQは,同社CEOで共同創業者のひとりでもあるChristian Feldbacher氏に話を聞いた。

V-Playの発展について説明して頂けますか?

V-Playの基盤となっているQtフレームワークは,すでにそれ自体がアプリ開発に最適なフレームワークです。それは主に,次のようなメリットがあるからです。

  • Qtのメタ言語であるQML: アプリケーションロジックとしてJavaScriptをサポートし, 豊富な機能によって大幅なコード節約が可能な宣言型スクリプト言語です。学習や理解も容易です。
  • アニメーションUIとカスタマイズ可能なテーマ: これらはQMLでは極めて簡単に記述することができます。モバイルアプリでこれらの重要度がますます高まることを考えれば,QMLはまさにモバイル開発に適していると言えます。
  • ネイティブパフォーマンス: Qtアプリのレンダリングは,1年前にQtチームが完全に書き直してモバイル用に最適化された,シーングラフレンダラが実行します。この結果が,モバイルアプリの高いパフォーマンスになっています。さらにQtフレームワーク自体もC++で書かれているので,ネイティブ並のパフォーマンスが可能なのです。

そういったこともあって,私たちは以前から,Qtと既存のゲーム用のV-Playコンポーネントのいくつかを,社内でのアプリ開発やモバイルアプリ開発のプロジェクトで使用してきました。その過程で,さまざまなモバイルアプリ用として新たに開発した内部コンポーネントの多くは再利用可能であり,開発時間の短縮ができることに気付いたのです。

このことが,Qtフレームワークを使用したアプリケーション開発を簡単にするモバイルコンポーネントとしての,V-Play Apps SDKの出発点になりました。これらのコンポーネントを使うことで,スマートフォンやタブレットの端末の向き(ポートレート/ランドスケープ)に自動的に対応可能な,レスポンシブなアプリを記述することができます。iOSとAndroidそれぞれに対して,プラットフォーム固有の変更を必要とせずに,ネイティブなユーザエクスペリエンスを備えることも可能です。

複数のアプリ開発でSDKを使用してAPIを調整した後,V-Play Appsの最初の公開バージョンを,2015年8月にリリースしました。

モバイルクロスプラットフォームの分野は群雄割拠ですが,今回のパッケージで実現される最大のメリットは何でしょう?

当社のモバイル開発チームは,モバイルアプリ開発に関して,iPhone 1やGoogle G1の黎明期から豊富な経験を持っています。 過去8年間に開発の状況も大きく変わってきました。当初はiOSあるいはAndroidのネイティブ開発が唯一の選択肢でしたが,その後,さまざまなフレームワークがリリースされたことで,クロスプラットフォーム開発が可能になりました。

当社でもこれまで数多くのフレームワークを使用してきましたが,それでもまだ,ネイティブなObj-C/Java開発が選択される,あるいは望ましいケースがいくつかありました。そうではありますが,開発期間やコストを考えるならば,クロスプラットフォームフレームワークは,大半のモバイルアプリに対して最適なルートなのです。

HTML5ベースのフレームワークを使用した場合,QtやV-Playのようなネイティブフレームワークと比べて,エクスペリエンスやパフォーマンスの面で見劣りします。その一方で,Xamarinなどのツールでアニメーションなどの処理を実現するには,非常に多くのコードが必要になるのです。

私たちはV-Playで,V-Playゲームエンジンで実現したネイティブのパフォーマンスとルック・アンド・フィールを維持しつつ,開発が最も簡単になるフレームワークを目指しています。

QMLがRADが実現するという事実は,当社の提供しているサンプルアプリを見て頂ければ分かると思います。例えばTwitterアプリ(SDKに全コードがあります!)は,TwitterのREST APIアクセスや,ネイティブなTwitterアプリと同等のアニメーションを含めても,わずか500行のコードしかありません。こちらでコードの確認と,あなた自身のモバイルでアプリをテストすることができます。

また,QMLでは開発にJavaScriptを使用するので,フレームワークの学習も簡単です。ほとんどの開発者が,1日で開発できるようになったと答えていますし,初学者の学習曲線も非常に小さくなっています。research2guidanceが実施した,クロスプラットフォームツールに関する昨年のレポートでは,時間短縮及び学習の容易性の面で,V-PlayがXamarinやKonyOne, Titaniumといった他ツールを抑えて一位を獲得しています(世界中で2,188人の開発者が参加)。

モバイルアプリのサポートは最近になってV-Playに追加されたものですが,次に予定されている重要な機能は何ですか?

サンプルアプリケーションをもっと充実させて,ナビゲーションアプリやニュースペーパーアプリといったように,モバイルアプリの出発点として使えるようにしたいと思っています。ツーリングの改善も最優先事項です。近いうちには,V-Play Build Serverを使えば,SDKをPCにインストールしなくても,開発したアプリを複数のiOSデバイスやAndroidデバイスにデプロイできるようになります。例えば,WindowsからiPhoneやiPadにデプロイすることも可能になります。

それと同時に,コミュニティからの機能要求にも耳を傾けていくつもりです。ですから,もし要求の数が多ければ,そちらの機能を優先します。最後に,私たちはV-Play App SDKで,クロスプラットフォームなモバイルアプリ開発をもっと簡単にしたいと思っています。この4年間で私たちは,開発者コミュニティと協力することが,これを達成するための最高の方法であることを学びました。

V-Playは無償版を用意している。V-Play独自のアプリ内購入やモバイル広告プラグインが使えないなど,いくつかの制限の下で,プラットフォームとアプリ開発を試用することが可能だ。

この記事に星をつける

おすすめ度
スタイル

BT