SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事(AD)

いよいよ登場する「C++Builder Android対応版」

「RAD Studio次期バージョンベータテスターミーティング」レポート

  • このエントリーをはてなブックマークに追加

マルチデバイス対応を実現するしかけ

 C++BuilderそしてDelphiでネイティブコードによりマルチデバイス対応を実現しているのが、IDE、ネイティブコンパイラ、そしてコンポーネントフレームワークだ。IDE(統合開発環境)は、マルチデバイス開発に必要な機能をすべて統合する。例えば、Android開発の場合、Android SDKやNDKのセットアップが必要だが、これらはすべてIDEに統合されており、特に個別の準備は不要だ。また、モバイル開発では実機を使ったテストも欠かせないが、これらのデバイスの接続、アプリの転送、そしてコードレベルでのデバッグまでがサポートされている。

図4 モバイルアプリのデバッグ

 IDEには、それぞれのプラットフォーム向けのネイティブコンパイラが搭載されており、IDEが動作するWindows上で、iOSやAndroid向けのARMネイティブのコードを生成できる。

 ネイティブコードを生成できるといっても、UIの設計やデバイス機能の利用でプラットフォーム固有の開発が必要になってしまうのであれば、マルチデバイス開発といっても中途半端なものになってしまう。C++BuilderとDelphiでは、UIやデバイス機能、さらにはデータアクセスなどにマルチデバイス対応のコンポーネントを用いることで、単一のコードベースによるマルチデバイス開発を可能にしている。しかも、そのコンポーネントフレームワークは、CPU/GPUネイティブなので、デバイス機能を100%発揮できるのだ。

図5 FireMonkeyフレームワーク

 アプリケーション開発者は、コンポーネントを使うため、コンポーネントが用意するプロパティやイベント、メソッドを使って、開発できる。内部的には、各デバイスに最適化されたネイティブコードが使用されるが、アプリケーション開発者には隠蔽されている。もちろん、特定のデバイス固有のコードを記述したい場合には、それも可能だ。例えば、NDKのAPIをコールしたり、ブリッジ経由でインテントなどのAndroidアプリのコードを呼び出したりもできる。

 次の例は、デバイスのGPS機能を用いてGoogleマップに現在地を表示するアプリだ。

図6 GPSアプリ

 このアプリが使用しているのは、LocationSensorコンポーネント。GPS機能は、Android、iOS、あるいはWindowsタブレットなど、最近のスマートデバイスやPCのほとんどに搭載されているが、これらを利用するコードは、プラットフォームごとに異なる。しかし、C++BuilderおよびDelphiでは、FireMonkeyによってプラットフォームの差異をコンポーネントが隠蔽する。つまり、アプリケーション開発者は、プラットフォームが何であれ、LocationSensorを使えばよいのだ。

 例えば、GPS機能を、チェックボックスを使ってオン/オフするコードは次のようになる。

void __fastcall TForm2::swLocationSensorActiveSwitch(TObject *Sender)
{
  // ロケーションセンサーのON/OFF
  LocationSensor1->Active = swLocationSensorActive->ISChecked;
}

次のページ
C++でAndroidアプリ開発が可能になるメリット

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

EDN編集部(イーディーエヌ編集部)

エンバカデロ・デベロッパーネットワーク(EDN)は、ソフトウェア開発者とデータベース技術者のための技術情報サイトです。Delphi、C++Builderをはじめとする開発ツールやER/Studioなどのデータベースツールに関連する技術記事、ビデオなどを提供しています。EDN編集部は、EDN記事と連携...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7713 2014/03/31 15:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング