BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース データ駆動のネイティブモバイルアプリ開発を実現するRAD Studio XE4

データ駆動のネイティブモバイルアプリ開発を実現するRAD Studio XE4

原文(投稿日:2013/05/07)へのリンク

RAD Studio XE4 はPC,iPhone,iPad など,複数のデバイスに対応するポータブルデバイス用ネイティブアプリケーションを,ひとつのコードベースで開発可能な統合開発環境(Integrated Development Environment/IDE)だ。ボタンやテキストボックス,リストボックス,コンボボックス,日付選択,カスタム選択など,ネイティブ実装された広範なユーザインターフェースコントロールに加えて,キーボード形式の差異への対応や,ShareSheetなどサービス通知のサポートも含まれている。ShareSheetはソーシャルメディアを使って共有や印刷を行うための機能だ。

RAD Studioの機能を使えば,iOSやWindows,Macなど複数のプラットフォームに対して, FireMonkey FM3 を活用した単一コードベースのアプリを開発することが可能になる。さらにラピッドプロトタイピングによって,実データあるいは模擬データを使用するビジュアルモックアップを,コーディングの必要なく即座に作成することもできる。作成したモックアップはPCやスマートフォン,タブレットなどターゲットデバイスの実機に配置可能だ。

IBLite,dbExpressを介して SQLite iOS データベース,FireDAC,IBX といったデータベースもサポートされている。ISVやエンタープライズクラスの統合データベース接続,dbEXpressと FireMonkeyを使用したクラウドコンピューティングなども含まれる。サポート対象はSQL Server,Oracle,Sybase,DB2,InterBase,SQL Anywhere,SQLite,MySQL,そして Windows AzureとAmazon Web Serviceだ。

RAD Studio XE4で開発可能なのは,リッチGUIクライアント,HD,3D,Windows,Mac OS X,iOS,Webあるいはクラウドベースを含むローカルおよびリモートデータベースアプリである。公式発表では,デバイス上でコードを直接実行する形式により,RAD Studioを使用して開発したアプリはサードパーティ攻撃やハッキングのリスクも軽減できる,としている。

InfoQではEmbarcaderoで製品管理ディレクタを務めるJohn Thomas氏から,RAD Studio XE4について詳しく聞いた。

InfoQ: RAD Studio XE4を開発することになった目的について説明して頂けますか?

一番大きな目的は,ひとつのコードベースで複数のデバイスに対応できて,なおかつ最高のパフォーマンスを持ったアプリを開発する,ということにありました。どの開発チームにとっても非常に現実的なこの問題を解決するための,業界で最初の製品にしたかったのです。

最近ではどこの開発チームでも,複数のデバイスとオペレーティングシステムを対象としてアプリ開発を行っています。その方法はおもに2つです。ひとつはベンダのプライベートな開発ツールを使うもので,iOSで言えばXcodeがこれにあたります。もうひとつはスクリプト言語やVM言語によるソリューションを採用するというもので,コードが再利用可能であるというビジネス的メリットをより追求できる方法です。

開発チームにとってベンダツールを使用するメリットは,最高のユーザエクスペリエンスを持ったアプリが提供できる,という点にあります。ただしサポートの必要なプラットフォーム/デバイスごとに,基本的にはアプリケーションをすべて書き直さなくてはなりません。サポートする言語,アプリケーションフレームワーク,開発環境がベンダツールごとに違うからです。これは非常にコストを要するアプローチです。

もうひとつのスクリプト言語,例えばHTML5/JavaScriptを使う方法では,コードの再利用率を向上することはできますが,アプリのパフォーマンスやユーザエクスペリエンスの面では重大な妥協を強いられることになります。RAD Studio XE4は,このギャップを埋めようという製品なのです。

InfoQ: 開発者にとっては,どのようなメリットがあるのでしょう?

RAD Studio XE4は,先程説明したどちらのアプローチにも最適です。マルチデバイス対応で単一チーム/同一ソースコードというビジネス上のメリットを実現する一方,本当の意味でネイティブであることによって,最高のパフォーマンスとユーザエクスペリエンスをアプリに提供するのです。開発者としては,最高のパフォーマンスを備えたマルチデバイス用のアプリが短期間で提供可能なツールが手に入ったことになります。

InfoQ: 本当の意味でのネイティブアプリ,とはどういう意味なのでしょう?ユーザエクスペリエンスは向上されるのでしょうか?

本当の意味でのネイティブアプリとは,デバイスハードウェア上で直接実行可能なアプリのことです。アプリとCPU/GPUの間には何もない,という意味です。これは例えば,Objective-Cと同じやり方です。

ソースコードは,ハードウェアが直接実行可能なバイナリ形式にコンパイル(変換)されます。ソフトウェア開発の初期の頃から,ソフトウェア開発者にとって 'ネイティブ' とはこういう意味でした。

これに対して,仮想マシンを使用するJavaやC#,あるいはスクリプト言語によるソリューション(JavaScriptなど)は,ソースコードを動的にCPUコードに変換する別プロセスに依存しています。この結果として開発者は,いくつかの課題と妥協を強いられることになります。

このような言語ランタイムは基本的にはブラックボックスであるため,開発者によるアプリのチューニングにおいては障害となります。同時にランタイムもCPU時間を共有するプロセスのひとつであることによって,アプリケーションに遅延時間を発生させたりもします。このことは特に,ガベージコレクションを備えた言語(スクリプト言語の大部分がそうです)に当てはまります。ランタイムがいつ,どの程度の時間を割いてガベージコレクションを実施するか開発者はコントロールできないため,それがアプリの予測可能性に影響するからです。最終的には,これらランタイムがユーザエクスペリエンスに負の影響を与えるのです。

本当にネイティブなアプリは,言語ランタイムや仮想マシンには依存していません。それによって得られる性能向上は,ユーザエクスペリエンスにプラスの影響を持っています。

InfoQ: Visual Studio 2012とはどのように違うのでしょうか?

最大の違いは,Microsoftのオペレーティングシステムやデバイス以外のアプリを開発可能だという点です。現在のアプリ開発者にとって,これは非常に重要なことです。Windowsは今でも非常に重要なオペレーティングシステムですが,最近ではiOSやAndoridを搭載するモバイルデバイスも,同じくらい重要になっているからです。

InfoQ: Windows Phone 8用のアプリ開発は可能なのでしょうか?

Intelプロセッサ用のネイティブWindows 8クライアントアプリ開発をサポートしていますので,Surface Proなどのタブレットフォームファクタや他メーカのSlate用のアプリであれば,Windowsのデスクトップやサーバ用プラットフォームと同じように開発することが可能です。Windows Phone 8は,WinRTという新たなオペレーティングシステムを使用しています。当社では開発者のニーズに応えるべく,WinRTサポートを現在積極的に評価しているところです。

InfoQ: Androidはサポートされていますか?

Androidのサポートについては,2013年後半の提供予定をすでに発表しています。ただしマルチデバイス,同一コードベースで複数デバイスに対応するというアプローチですので,現在iOS用の開発をしているのであれば,Androidのサポートが公開された時点でソースを変更することなく,新ターゲットとして設定することができます。

InfoQ: RAD Studio XE4を使って開発されたアプリはiOSでもWindows環境でも使用することができる,ということでしょうか?

はい,それがマルチデバイスの力です。 すでに説明したとおり,これらのアプリはまったく同じソースコードベースを共有できるのです。

InfoQ: RAD Studio XE4でC#やVBを使用することは可能ですか?

いいえ,RAD Studioで使用する言語は本当にネイティブな言語です。.NET C#やVB.Netが.Netランタイムに依存していますが,RAD Studioではマシンコードにコンパイルされるので,VM環境には依存しません。ネイティブでサポートされる言語はDelphiとC++です。

InfoQ: 今後のロードマップについて教えてください。

今年後半のAndroidサポートと合わせて,iOSとAndroid用のC++言語サポートも今年後半を予定しています。

この記事に星をつける

おすすめ度
スタイル

BT