RAD Studio XE7でアプリをマルチデバイス化―PC/Mac/モバイルアプリを単一コードベースで実現!

この記事を読むのに必要な時間:およそ 3 分

RAD Studioでマルチデバイス対応!

RAD StudioとFireUI

デバイスとOSの種類がともに細分化され,しかもデバイス固有の能力を活かしてデバイスの特徴を引き出すことが求められ,マルチデバイス開発にも対応したいということで,ソフトウェア開発のニーズは新しい段階に移行しつつあります。マルチデバイスに対応したネイティブアプリを開発する方法が強く求められるようになってきているのです。

そういった中で,エンバカデロ・テクノロジーズのRAD Studioは非常に特徴的な開発環境と言えます。マルチデバイスに対応したネイティブアプリを単一のコードベースで開発できるからです。これは,FireMonkeyというマルチデバイス対応のソフトウェア部品群によって実現されています。さらに,2014年9月にリリースされたRAD Studio XE7に搭載されているFireUIマルチデバイスデザイナは,特筆すべき新しい取り組みです。マスタとなる画面を設計し,異なる解像度のデバイス向け画面設計については差分だけを調整するといった,オブジェクト指向の継承のようなスタイルで異なる画面解像度への対応が実現できます。このようなことが実現できるのは,エンバカデロ・テクノロジーズがOSを提供する組織や企業ではないサードパーティであることにも起因するのかもしれませんね。

今回作ってみるアプリの仕様

では実際にFireUIマルチデバイスデザイナを用いて,異なるOS,異なる画面解像度,異なるルック&フィールに対し,単一のUI設計がどのように実現できるのか簡単に見てみましょう。ここではiPhone,iPad,Androidフォン,Androidタブレットを開発ターゲットとします(Windows 8.1デスクトップとOS Xについては,GPS機能に関するOSサポート状況の都合により説明から除外しました⁠⁠。GPSで座標を取得し,画面にテキストとして表示するだけの素朴なアプリを作ることにしましょう。

実際にマルチデバイスに対応させてみよう

まず,RAD Studioを起動して新規プロジェクトを作成します。ツールパレットと呼ばれる領域からGPSのソフトウェア部品とテキスト表示のソフトウェア部品,そしてボタンのソフトウェア部品(これらはコンポーネントと呼ばれます)を見つけ出し,フォームにドラッグ&ドロップします図1⁠。

図1 FireUIでマスタ画面を作った直後の状態

図1 FireUIでマスタ画面を作った直後の状態

ボタンのソフトウェア部品をダブルクリックして,GPSから座標を取得してテキスト表示を行うソースコードを記述します図2⁠。RAD StudioはソースコードをObject Pascal(Delphi)言語またはC++で記述できますが,今回はObject Pascalを用いて記述しています(C++のほうが好きな人は,同様のことをC++で書けます⁠⁠。

さっそくこのアプリをマルチデバイスで動作させてみましょう。実行ボタン(緑の三角形のアイコン)を押すとアプリが動作します。実際にアプリが動作する様子は図3左のようになります。

図2 Object Pascalを用いてGPSから座標を取得してテキスト表示を行うソースコード記述をしているところ

図2 Object Pascalを用いてGPSから座標を取得してテキスト表示を行うソースコード記述をしているところ

図3 GPS座標を画面表示するiPhoneアプリの動作状況(左:レイアウト調整前,右:レイアウト調整後)

図3 GPS座標を画面表示するiPhoneアプリの動作状況(レイアウト調整前) 図3 GPS座標を画面表示するiPhoneアプリの動作状況(レイアウト調整後)

おや,iPhone上では座標のテキスト表示が画面からはみ出してしまっています。FireUIの機能を使って調整しましょう。ビューの「マスタ」「iPhone」に切り替え,画面からはみ出ないようにドラッグ&ドロップで画面を調整します。このように,基本的な画面の構造と,デバイスごとの画面の差分とを編集できます。すると図3右のように,ちゃんと画面に収まるようになります。

続けてiPadやAndroidタブレット/フォンでも,どのように動作するのか確認してみましょう図4⁠。Androidの場合は,マスタの画面レイアウトで動作することがわかります。このようにFireUIによって継承のように画面の差分を編集できます。ちなみに,同一OSであれば似た画面サイズによる画面レイアウト切り替えが機能します。

図4 GPS座標を画面表示するアプリの動作状況。左から,iPad,Androidタブレット,Androidフォン

図4 GPS座標を画面表示するアプリの動作状況。iPad 図4 GPS座標を画面表示するアプリの動作状況。Androidタブレット 図4 GPS座標を画面表示するアプリの動作状況。Androidフォン

アプリ開発の未来

さて,うまいしくみを利用すれば,マルチデバイスに対応したネイティブアプリを作って動かせることがわかりました。では,今後のマルチデバイス対応アプリに求められるであろうものには,どのようなものがあるでしょうか。

直近の流行としては,IoT(Internet of Things)が普及していくでしょうから,それに連携するアプリの開発が強く求められるようになるでしょう。IoTは,これまでとは異なるモバイルアプリの需要を引き起こすはずです。IoTとアプリはBluetoothやWi-Fiで通信する形になると推測されるので,マルチデバイス対応アプリ側からは,IoTとBluetoothやWi-Fiで通信する機能,およびそれを簡単に実装できることが求められるでしょう。また一方で,従来のソフトウェア開発の生産性や保守性向上も引き続き求められると考えられます。特に,ソフトウェア開発における各種共通化の取り組みは非常に重要です。これらも開発環境がしっかりサポートしていることが望まれます。

近年のRAD StudioにおいてもIoTサポートは強化されています。今後もモバイル向け,あるいはマルチデバイス向け開発環境の動向には目が離せませんね。

著者プロフィール

伊賀敏樹(いがとしき)

1968年生まれ。筑波大学卒業。エンバカデロ・テクノロジーズにて,ソフトウェア開発技術に関するエヴァンジェリズム活動や製品販売の技術的支援などを行っている。C++言語やJava言語を中心としたプログラミング技術をもち,さまざまなシステム開発への従事経験を有す。趣味はヴァイオリン演奏で,アマチュアオーケストラなどに所属しています。