
この記事は「地図×モバイル アプリ開発」シリーズの第 1 弾の記事です。
本シリーズ記事では、はじめてモバイル アプリを開発する際に知っておきたい開発方法と地図アプリ開発キットについて紹介していきます。
「地図×モバイル アプリ開発」 シリーズ記事
第 1 弾: 何を選びますか? 開発方法の選択肢
第 2 弾: Web アプリ開発編(公開予定)
第 3 弾: ネイティブ アプリ開発編(公開予定)
第 4 弾: ハイブリッド アプリ開発編(公開予定)
初めてモバイル アプリを開発するとき、Web アプリにするか、ネイティブ アプリにするかを悩む人は多いのではないでしょうか?
第 1 弾では、モバイル アプリを開発する際によく耳にする「Web」、「ネイティブ」、「ハイブリッド」と呼ばれる開発方法の比較や、モバイル アプリ開発の際に使える「地図アプリ開発キット」について紹介します。
何を選びますか? 開発方法の選択肢
地図は、アプリの利用用途を広げてくれる、モバイル アプリに必要不可欠な機能のひとつです。
地図を使うことで、データの可視化、目的地までのナビゲーション、フィールドワークでのデータ収集等、様々な機能をモバイル アプリで利用できるようになります。
では、このような地図機能が使えるモバイル アプリを開発するとき、何から始めれば良いでしょうか?
まずは、モバイル アプリの開発方法を選択することになります。
モバイル アプリには大きく分けて「Web」、「ネイティブ」アプリの 2 つがあります。
Web アプリはモバイル端末に搭載された Web ブラウザー上で URL を入力してアクセスするアプリで、ネイティブ アプリはモバイル端末にインストールして利用するアプリですね。
その他に Web とネイティブ アプリを混合させた「ハイブリッド」アプリもあります。
見た目はネイティブ アプリでインストールして利用するアプリですが、中身は Web コンテンツでつくられています。
これらの中から開発方法を選択することになります。
各アプリ開発の概要と特徴を挙げてみます。
Web アプリ
Web サーバーに HTML/JavaScript/CSS ファイルを配置して、モバイル端末の Web ブラウザーからアクセスします。
簡易的なアプリであれば、ひとつのコードで複数の OS をサポートできる点が大きな特長です。
ネイティブ アプリに比べ、機能やパフォーマンス、操作性は多少劣りますが、HTML5 を使うことで、GPS やカメラ等のモバイル機能との連携も実装できます。
またモバイル端末向けの UI を提供する jQuery Mobile や Bootstrap 等のフレームワークを使用して、モバイル アプリ特有の画面を作成することもできます。
ネイティブ アプリで必要なアプリストアへの登録手続きや審査が無いので、簡単にアプリを配信することができます。
ネイティブ アプリ
通常、App Store や Google Play、Windows Store 等のアプリストアからダウンロード・インストールして利用するアプリです。
モバイル端末の機能やパフォーマンスを最大限に活かしたアプリを開発できるのが最大の特長です。
ただし、ネイティブ アプリの開発プラットフォーム/開発言語は各 OS で異なるため、複数の OS に対応したアプリを開発する場合、各 OS ごとにアプリを開発する必要があります。
iOS では Objective-C/Swift、Android では Java、Windows では .NET の開発言語を使用します。
多くのユーザーが利用するアプリストアに公開できるので、不特定多数のユーザーにアプリを配信したい場合にも効果的です。
ハイブリッド アプリ
Web アプリとネイティブ アプリの開発方法を混合した開発方法です。
HTML/JavaScript/CSS ファイルで Web コンテンツを作成し、ネイティブ アプリからその Web コンテンツを読み込んで利用します。
開発したアプリはネイティブ アプリと同様にアプリストアに公開します。
PhoneGap/Cordova を初めとした専用のフレームワークを使用すれば、HTML/JavaScript/CSS のひとつの共通コードで、異なる OS に対応したネイティブ アプリを開発することができるため、開発コストを抑えられるメリットがあります。
ただし、ハイブリッド アプリ開発に使用するフレームワークや、ネイティブ アプリ開発のノウハウも必要となる場合があります。

アプリ開発の比較(開発方法によっては内容が異なる場合があります)
このように、Web、ネイティブ、ハイブリッドの各アプリにはそれぞれメリット/デメリットがあります。
複数の OS をサポートする必要がある、高い操作性が求められない、のであれば、Web アプリ開発が一番開発コストを抑えられるかもしれません。
バックグラウンド処理をしたい、オフラインでのデータ管理を細かく制御したい等、モバイル端末の機能と密に連携する場合は、ネイティブ アプリがおすすめです。
ソースコードを一本化して各 OS のネイティブ アプリを開発できる、両方いいとこ取りのハイブリッド アプリ!も魅力的ですよね。
アプリのサポート OS、機能要件、更新頻度、配布方法、開発者の得意なスキル、開発期間等を考慮しながら、その都度適切な開発方法を選択してみてはいかがでしょうか?
各アプリ開発の詳細については次回以降のシリーズ記事で取り上げていきます。
地図アプリ開発キットの紹介
Web、ネイティブ、ハイブリッド アプリについて紹介してきましが、ここからは、地図アプリ開発を検討している方におすすめ! ESRIジャパン※1 が提供する地図アプリ開発キットを紹介します。
開発キットには、Web/ハイブリッド アプリ開発に使える JavaScript ベースの Web API※2 と、ネイティブ アプリ(iOS/Android/Windows)開発に使える モバイル SDK があります。
これらの地図アプリ開発キットを使用すると、以下のような機能をアプリに組み込めます。
マッピング
地図を表示したり、住所や緯度経度をもとに、アプリ固有のデータ(例えばコンビニの場所等)を地図上に可視化したりすることができます。
データの編集
フィールドワーク等で、紙地図に記入していた内容をアプリの地図上で入力して位置データとして管理することができます。モバイル端末で撮影した写真や動画を紐づけることも可能です。
空間解析機能
指定した地点からの到達圏表示、指定するエリア内のデータ抽出等、地図上のデータを空間的に解析する機能が豊富に用意されています。
オフライン機能(モバイル SDK で利用可能)
インターネットに接続できない環境でも、マッピング、データ編集、ルート検索や住所検索等の機能を利用できます。

地図機能のイメージ
これらの地図アプリ開発キットは、開発者向けクラウドサービスのアカウントを作成すれば無償で評価利用できます。
ESRIジャパン GitHub では開発を始めるための手順を公開しています。
アカウントさえ作成すればすぐに地図アプリ開発をスタートできるので、ぜひお試しください!
次回以降のシリーズ記事では、Web API、モバイル SDK を使用したモバイル地図アプリの開発方法について紹介していきます。
※1 ESRIジャパンでは米国 Esri 社製品(ArcGIS ファミリーなど)の国内総代理店として、GIS(地理情報システム)ソフトウェアの輸出入、販売、開発、及び関連するサービス(保守、トレーニング、コンサルティング、出版など)の提供を行なっています。
※2 ハイブリット フレームワーク上で利用する場合、API の機能の完全な動作保証はされておりません。お客様の環境において十分な検証を行った上でご利用ください。
■関連リンク
ESRIジャパン Web サイト
製品ページ:
Web API
モバイル SDK
開発者向けクラウドサービス
GitHub:
Esri Japan GitHub
ArcGIS for Developers リソース集