SHOEISHA iD

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

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

EDN CodeZine出張所(AD)

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

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

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

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

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

はじめに

 スマホアプリならではの便利で革新的な機能を実装しようとすると、センサーなどのデバイス機能を利用したくなります。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に掲載しています。

次のページ
地図に現在位置を表示する

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
EDN CodeZine出張所連載記事一覧

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9663 2021/03/25 20:34

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング