アールテクニカ地下ガレージ

アールテクニカ株式会社の製品開発・研究開発・日々の活動です

Qtでマルチプラットフォーム開発【環境構築編】

Author

中村@アールテクニカ

アールテクニカの中村です。

弊社は以前よりWindowsおよびMac両対応のアプリ開発を行なってきましたが、最近では、iOSAndroidの開発も多くなっています。
複数プラットフォームに対応する場合、それぞれの環境ごとにコードを書いていてはコストがかかってしまうので、同一ソースで複数のプラットフォームに対応できる開発環境が求められます。
対象がスマートフォンだけであれば、Cordova(旧PhoneGap)やTitaniumを使用するという選択肢もありますが、案件によっては、「PCもスマホも対応したい」、「高速化のためにネイティブコードで開発したい」という要求もあるでしょう。
その様な要求に答えられそうな開発環境として、Qt(キュート)を使ってみたいと思います。

Qtについて

Qt(キュート)とはC++によるマルチプラットフォーム対応のフレームワークライブラリです。当初はデスクトップOSのみ対応でしたが、現在ではiOSAndroidにも対応しています。
また、Qt Creatorという統合開発環境が用意されており、ソースコードGUIのビジュアル編集が可能で、ビルド・デバッグまでもこのツールだけで出来てしまいます。

開発対象OSはWindows、Mac OSX、iOSAndroidとします。
WindowsではMaciOSの開発はできないため、開発環境としてWindowsとMac OSXの両方を用意します。

今回は以下のOSで開発環境を構築します。

他には以下のソフトウェが必要になります。

スマートフォンタブレットの実機としては、以下のものを使用します。

Windowsの開発環境構築

まずは、Windowsで開発環境を構築しましょう。

Java Development Kit (JDK)

下記サイトからWindows用をダウンロードしインストールします。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Ant

下記サイトの左のメニューから「Download」→「Binary Distributions」 を選択し、「.zip archive 」をダウンロードします。
http://ant.apache.org/
解凍したファイルは適当なフォルダに置きます。ここではC:\ant\ に置くことにします。

Android Studio (Android SDK/NDK)

1. Android Studio本体のインストール

下記サイトからAndroid Studioをダウンロードしインストールします。
http://developer.android.com/intl/ja/sdk/index.html

2. Android NDKインストール

Android SDKは初回起動時に最新版が自動的にインストールされますが、C/C++開発に必要なNDKは手動でインストールする必要があります。
起動画面の右側のメニューから「Configure」→「SDK Manager」でSDK設定画面を開きます。
次にSDK Toolsタブを選択し、Google USB DriverとAndroid NDKにチェックを入れます。「OK」または「Apply」でインストールが開始されます。

f:id:artteknika_nakamura:20160406180748p:plain

3. 仮想デバイス作成

Android実機がない場合や様々な解像度やOSバージョンのデバイスを試したい場合、仮想デバイス上でアプリを実行することができます。
仮想デバイス管理画面は、プロジェクトを開いた状態でないと開けないようなので、Android Studioの起動画面から、適当に新規プロジェクトを作成します。
次にメニューバーで「Tools」→「Android」→「ADV Manager」を選択し、仮想デバイス設定ダイアログを開きます。
「Create Virtual Devices」をクリックして、仮想デバイスを作成を開始します。
画面解像度やOSバージョンなどをカスタマイズできますが、ここでは、Nexus 5を選択し他はデフォルト設定で仮想デバイスを作成しておきます。

Qt

1. Qtインストール

下記サイトからインストーラをダウンロードし実行します。
http://www.qt.io/download-open-source/
インストーラ起動時にMSVCR120.dllがないというメッセージが出た場合は、下記サイトからvcredist_x86.exeをダウンロードしてインストールします。
https://www.microsoft.com/ja-jp/download/details.aspx?id=40784

コンポーネント選択画面でMinGW 4.9.2 32bitと Android ARMv7にチェックを入れてインストールを続行します。
f:id:artteknika_nakamura:20160412184348p:plain

2. パス設定

インストールが完了するとQt Creatorが起動します。
メニューバーから「ツール」→「 オプション」で設定ダイアログを開き、左側のメニューで「Android」を選択します。

各種パスを下記のように設定します。
※デフォルトのインストール先を選択した場合です。

JDKの場所 C:\Program Files\Java\jdk1.8.0_77
JDKのバージョンにより異なります
Android SDKのパス C:\Users\ユーザ名\AppData\Local\Android\sdk
Android NDKのパス C:\Users\ユーザ名\AppData\Local\Android\sdk\ndk-bundle
Ant 実行ファイル C:\ant\bin\ant.bat

Mac OSXの開発環境

続いてMac OSX で開発環境を構築しましょう。

Xcode

App StoreからXcodeをインストールします

Java Development Kit (JDK)

下記サイトからMac OS X用 をダウンロードしインストールします。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

Ant

homebrewでインストールします。
ターミナルから以下のコマンドでインストールします。

brew install ant

homebrewがインストールされていない場合は、
ターミナルから以下のコマンドでhomebrewをインストールしてください。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Android Studio (Android SDKAndroid NDK)

1. Android Studio本体のインストール

下記サイトからAndroid Studioをダウンロードしインストールします。
http://developer.android.com/intl/ja/sdk/index.html

2. Android NDKインストール

起動画面の右側のメニューから「Configure」→「SDK Manager」でSDK設定画面を開きます。
次にSDK Toolsタブを選択し、Android NDKにチェックを入れます。「OK」または「Apply」でインストールが開始されます。

3. 仮想デバイス作成

Windowsと同じように仮想デバイスとしてNexus 5を作成しておきます。

Qt

Qtインストール

下記サイトからインストーラをダウンロードし実行します。
http://www.qt.io/download-open-source/

コンポーネント選択画面でiOSAndroid ARMv7にチェックを入れてを確認しインストールを続行します。

f:id:artteknika_nakamura:20160412195716p:plain:w400

パス設定

インストールが完了するとQt Creatorが起動します。
メニューバーから「Qt Creator」→「設定」で設定ダイアログを開き、左側のメニューで「Android」を選択します。

各種パスを下記のように設定します。
※デフォルトのインストール先を選択した場合です。

JDKの場所 /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home
JDKのバージョンにより異なります
Android SDKのパス /Users/ユーザ名/Library/Android/sdk
Android NDKのパス /Users/ユーザ名/Library/Android/sdk/ndk-bundle
Ant 実行ファイル /usr/local/bin/ant


以上で開発環境の構築は完了です。
次回は実際にアプリを作成してみます。


Author

中村@アールテクニカ

アールテクニカのSE兼プログラマ。Web系のサーバサイド・フロントエンドからスマホ・PCのネイティブアプリまでソフトウェア開発全般が守備範囲。最近はハードウェア開発にも興味あり。

スポンサーリンク