Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Delphiでデバイス機能をこってり使いつつマルチデバイス対応してみる

iOS/Android向けにコンポーネントでGPSや加速度センサーを簡単に使う

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/09/15 14:00

 デバイス搭載のセンサーなどの機能を利用したアプリケーションを開発する場合、単一コードでiOSとAndroidの双方に対応するのは困難です。しかし、Delphiのフレームワークを用いれば、コンポーネントがプラットフォームの差異を吸収してくれるので、単一コード開発が実現できます。この記事では、DelphiでGPSや加速度センサーを利用するアプリケーションを、単一コードで開発する方法を紹介します。

目次

はじめに

 スマホアプリならではの便利で革新的な機能を実装しようとすると、センサーなどのデバイス機能を利用したくなります。iOSとAndroidの双方に対応したいと、マルチデバイス対応の開発環境を利用していても、この辺が機能限界の分岐点となり、どうしてもプラットフォーム固有のネイティブツールへとなびき、単一コードによる開発効率化を諦める結果になっているようです。

図1 Delphiの最新バージョン10.1 Berlin

 Delphi(そしてC++Builder)は、デバイス機能をネイティブでサポートしながらも、コンポーネントによってデバイス固有の部分をカプセル化し、共通の操作で各デバイス向けの機能を呼び出せるようになっています。そこで今回、さまざまなデバイス機能をてんこ盛りしたアプリを作成し、どの程度マルチデバイス対応がイケてるのかを検証してみようと思います。

 なお、ここで紹介したアプリは、Webセミナー「Delphi Boot Camp」のDay 4でも詳しく取り上げています。

アプリの概要

 今回作成するアプリには、次のような機能を盛り込んでみました。

  1. 地図表示
    • GPSで取得した位置情報を使って現在位置を表示する
    • 地図表示と衛星画像の切り替えを行う
  2. 現在位置の情報表示
    • 測位された緯度経度の情報を表示する
    • 緯度経度の情報から現在位置の住所を取得して表示する
  3. 加速度センサーを用いた水平器
    • 加速度センサーで取得できる3軸(X、Y、Z)の値のうち、X軸とY軸の値を使って水平器を実現する

 いずれも単体ではあまり実用的ではありませんが、業務アプリでもゲームでも、よく利用したくなる機能です。アプリには、次のようにタブで切り替えられる複数ページがあります。

図2 デバイス機能をてんこ盛りしたアプリ

 ここで紹介するアプリのソースコードは、https://github.com/kazinoue/2016_Delphi_bootcamp_day4に掲載しています。


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

著者プロフィール

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

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

バックナンバー

連載:EDN CodeZine出張所

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5