Mac OS Xマシン一台でVMを使ってC++クロス開発環境を構築してみる

CodeZine / 2012年9月25日 14時50分

図19 デバッグ実行

 Mac OS Xマシンを一台用意して、ここにVMをセットアップしてWindowsをインストールします。そして、C++Builderを使って、WindowsとMacのクロス開発を実践できる環境を構築してみます。

■はじめに

 最近Mac向けアプリケーション開発の需要が増えてきて、今まではWindows向けだけだったソフトウェアをMac向けにも開発する必要が出てきたという話を聞きます。ビジネスアプリケーションでは、まだまだWindowsが多いようなのですが、海外では、店舗に導入するPOS用のPCも「お店がクールに見えるから」と、Macにする例があるとのこと。どこでクロス開発の需要が飛び出すか分かりません。

 開発者として悩ましいのは、複数のプラットフォーム向けの開発を行うとなると、開発環境も複数、マシンも複数必要になるという点です。でも、最近ではMac環境上にVMを使ってWindows環境を構築できるようになっています。あとは、クロスで開発できるツールがあればということですが、エンバカデロのRAD Studio(あるいはC++Builder、Delphi)であれば、現在ではWindows、Mac OS Xのネイティブクロス開発をサポートしています。この開発環境はWindows上で動作しますが、VMを使えばMac一台で済みそうです。

 そこで、Mac OS Xマシンを一台用意して、ここにVMをセットアップ。そして、C++Builder(Delphiでも同じです)をインストールして、WindowsとMacのクロス開発を実践できる環境を構築してみようと思います。

■C++BuilderでできるMacクロス開発とは

●これまでのWindows / Mac開発

 GUIのアプリケーションを構築する場合、Windows環境ではVisual Studioで、C++とMFC(Microsoft Foundation Class)を使って構築するというのが一般的です。一方Macでは、XcodeでObjective-CとCocoaを使います。

図1 Xcodeによる開発


 それぞれ、使用する言語も異なる上に、WindowsとMac OS XのOS固有のAPIやコントロールを利用するフレームワークを使うため、双方でのコードの再利用は困難です。また、同じ操作性を提供するのも、UIコントロールが共通化されているわけではないので、難しいでしょう。

 解決策の一つとして、Javaなどのマルチプラットフォームサポートの言語を利用する方法があります。しかしこの場合、両方のOSの共通項は利用できても、それ以上の機能や能力を発揮することは難しく、パフォーマンスや性能面で妥協せざるを得ません。

●CPU/GPUネイティブのFireMonkey

 C++BuilderそしてDelphiには、前バージョンからFireMonkeyと呼ばれるフレームワークが搭載されています。現在バージョン2にアップデートされていますが、このフレームワークの特長は、CPU/GPUネイティブの高機能・ハイパフォーマンスでありながら、マルチプラットフォームサポートであるという点です。

 FireMonkeyは、DirectX/OpenGLをベースとしており、高機能なグラフィック描画機能を持っています。プラットフォームごとの差異はフレームワークが吸収しているので、アプリケーションレイヤーからは見れば、単一のコードで、複数プラットフォーム向けのアプリケーションを構築できるのです。

図2 FireMonkeyを使ったアプリケーション


 FireMonkeyは、コンポーネントフレームワークなので、Visual BasicやDelphiと同じように、マウス操作で部品を配置してGUIを構築できます。その部品は、WindowsでもMacでも使えるわけです。

 最新バージョンでは、Windows 8やOS X Mountain Lionもサポートしています。Retinaディスプレイの高品質な描画にも対応しています。

 今回、C++Builderの最新バージョン「XE3」で、このFireMonkeyフレームワークを使い、Mac向けのクロス開発を行うことにします。


CodeZine

トピックスRSS

ランキング