HOME > ソフテックだより > 第183号(2013年4月3日発行) 技術レポート「スマートデバイス業務アプリケーション開発」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第183号(2013年4月3日発行)
技術レポート

「スマートデバイス業務アプリケーション開発」

1. はじめに

世の中では、スマートフォンやタブレット端末といったいわゆるスマートデバイスが普及しています。
携帯ショップのラインナップは、ほぼスマートデバイス一色となり、ガラケー(※1)と呼ばれる従来の携帯端末は購入が困難な時代となりました。
この時代の流れに乗っているためか業務アプリケーションの分野においてもスマートデバイスを導入する事例が多くなっているようです。
過去に弊社でも、工場監視システムにおいて、情報の一部をスマートデバイスに表示するという案件を対応した実績がございます。
その事例をもとに、スマートデバイスアプリケーション開発について今回のソフテックだよりで紹介させて頂きます。

2. 導入事例

弊社で対応したスマートデバイスアプリケーション開発は、図 1 のようなシステム構成で、既存システムで管理している情報の一部を、Wi-Fiネットワーク経由でスマートフォンに通知するというものでした。
今まで、Windows CE(※2)を搭載したハンディターミナルを用いて同様のシステムを構築した実績はいくつかありましたが、スマートフォンをターゲットとした業務アプリケーション開発は初めての経験でした。

スマートデバイスを現場に導入することで、固定情報端末まで足を運ばなくても、その場で情報を確認することができます。
スマートデバイスの中でもハンディターミナルとスマートフォンを比較した場合、スマートフォンの方が、ハードウェアコストが安いという利点があります。
専用端末であるハンディターミナルに比べれば使用する用途は限られますが、今回の事例では充分に要求仕様を満たすことができました。

システム構成
図1. システム構成

本アプリケーション開発の引き合いのあった時点では、導入するスマートフォンの機種はまだ決まっておりませんでした。
そこで、現在主流であるiOS(※3) とAndroid OS(※4) を採用したスマートフォンに絞って調査を行い、その結果をもって最終的にAndroid OSを搭載したスマートフォン端末を用いることで決定しました。
次項より、ターゲット端末の決定までに調査した結果を紹介します。

3. AndroidとiOSとの違い

MicrosoftのWindows 8、Windows RT(※5) といったスマートデバイス対応OSも今後シェアを拡大していくことが予想されますが、現在は、Google(グーグル)のAndroid OS、Apple(アップル)のiOSが、世界シェアを二分しています。
2つのOSは、アプリケーションの開発手法や開発に必要な機材において大きく異なります。
次項より、それぞれの違いについて調査した結果を紹介します。

3-1. 開発機材

iOSアプリケーション開発には、基本的にAppleのMac OS Xを搭載したPC(以下、Mac)が必要となります。
筆者個人はMacを所有しており、所属するグループでの技術習得活動としてiOSアプリケーション開発を行っていますが、日常の業務ではWindowsパソコンを使用しております。
業務でiOSアプリケーションを開発するためには、開発用のPCを新たに用意する必要がありました。
開発環境については、MacがあればXcodeという統合開発環境を無償で使用することができます。

これに対してAndroidアプリケーション開発では、開発用のPCは自由に選択でき、Windows OSを搭載したPCでも開発が可能です。
開発環境もオープンソースのEclipseという統合開発環境を使用することができますので、無償で開発環境を揃えることが可能です。

WebアプリケーションとしてHTML5(※6) で開発したり、後述するクロスプラットフォーム開発が可能なツールを用いたりなど、プログラミング言語の選択肢はiOS、Androidともにいくつか存在しますが、iOSはObjective-Cを、AndroidではJavaを利用するのが一般的です。

また、AndroidではJNI(Java Native Interface)を用いてC/C++言語によるネイティブコードを動作させることも可能で、パフォーマンス向上をさせたり、既存のライブラリを組み込んだりすることもできます。

3-2. 実機での動作確認

iOSアプリケーション開発の場合、Macがあれば無償で利用可能なシミュレータを使用してPC上で動作確認を行うことが可能ですが、実機にインストールしてデバッグや動作確認を行うためには、iOS Developer Program というAppleのサービスに加入する必要があります。
2013年3月現在、iOS Developer Programは年間8,400円の費用が必要となります。

iOS Developer Programに加入することで、開発したiOSアプリケーションをApp Store(※8)へ公開することができます。(公開するアプリケーションは、Appleの審査にパスする必要があります)
今回のような業務アプリケーションの場合には、不特定多数に公開する必要はありませんので、App Storeではなくアドホック配信というサービスが利用できます。
アドホック配信を利用することで、最大100台のiOSデバイスに対してアプリケーションをインストールすることが可能となります。
インストールを行うデバイスを事前に登録しておく必要がある、デバイス毎にアプリケーションをビルドする必要があるなど少し手間はかかりますが、今回の事例では現場で稼働するクライアント端末は10台程度と少なかったため、この配布方法を検討していました。

社内業務で使用するアプリケーションのような更に大人数の利用が想定されるケースでは、iOS Developer Programによるアドホック配信では配布が困難となります。
ここでは詳しく述べませんが、iOS Developer Enterprise Programという別のサービスに加入することでこの問題を解決することができます。
iOS Developer Enterprise Programでは、デバイスの事前登録は不要で、インストール可能な台数に制限はありません。
2013年3月現在で、年間24,800円の費用が必要となります。
法人のみが加入することができ、申請時にはDUNSナンバー(※9)と登記簿謄本が必要となります。

Android OSの場合には、Android SDKに付属するシミュレータを用いて、統合開発環境Eclipse(※7)上で動作確認を行う事が可能です。
動作確認にシミュレータを利用できる点については、iOSアプリケーション開発と同等です。
実機での動作確認については、apkファイル(開発環境で作成可能なインストーラ形式のファイル)さえ実行できれば、USB接続、メール添付、Web経由など様々な方法でインストールが可能です。
iOSアプリケーションのように、有料のサービスに登録する必要はなく費用はかかりません。

3-3. 開発対象のソフトウェアの違い

iOSの場合には、iPhone、iPad、iPod touchなどハードウェアもAppleのみで供給されているためデバイスの種類は限定されます。
これに対し、Android OSを搭載したデバイスは、GoogleのNexus、ソニーモバイルコミュニケーションズのXperia、サムスン電子のGALAXYなど、各社で様々発売されており、その仕様も様々なものが存在します。
例えば、画面の解像度においては、デバイスの種類ごとに異なるため画面設計において注意が必要となります。

業務アプリケーションにおいては、不特定多数の人が利用する一般的なアプリケーションと違い用途が制限されますので、予め使用する機種を定め、対応機種の範囲を制限することで開発コストを抑えることができます。
今回の事例のケースにおいても、現場に導入するスマートフォンの機種を一種類に絞って対応しております。

3-4. OSの動作

設計を行う上で、OSの動作の違いもしっかり把握しておく必要があります。

例えば、iOSの場合には、バックグラウンドで動作し続ける機能は、音楽再生や位置情報取得、VoIPに限られ、それ以外の用途では原則最大10分程度しか動作できないという制約があります。
これに対して、Androidでは制約は緩く、Serviceを利用することで比較的自由にバックグラウンドで動作させることができます。
このようなOSによる動作の違いも、要求仕様に応じて検討する必要があります。

4. メリットとデメリット

iOS、Androidの違いについて前項までで紹介した結果をまとめると 表 1 の通りとなります。
業務アプリケーション開発の視点で、私がメリットと感じた項目には「○」を、デメリットと感じた項目には「△」を記載しています。

  iOS Android
開発機材 Macが必要であるため、新規に開発用PCの購入が必要な場合がある。
IDEはMacがあればXcodeを無償で利用が可能。
Windows PCで開発が可能であり、特別な機材を必要としない。
IDEはオープンソースのEclipseを無償で利用が可能。
主なプログラミング言語 Objective-C
Javaに比べると使用する機会が限られるため、マイナーな言語と言える。
Java
(JNIでC/C++も使用可)
Androidアプリケーション開発以外でも一般的に用いられるメジャーな言語。
動作確認 シミュレータを利用可能。
実機に転送する場合には、iOS Developer ProgramというAppleの有料サービスに加入する必要がある。
シミュレータを利用可能。
実機への転送も特に費用は必要としない。
配布 iOS Developer Programに加入していれば、アドホック配布にて100台のデバイスまでインストールが可能。
さらに大人数の利用が見込まれる場合には、iOS Developer Enterprise Programを利用する必要がある。
作成したインストーラファイル(apkファイル)を実行すれば、USB接続、メール添付、Web経由など様々な方法でインストールが可能。
デバイスの種類 iPhone、iPod touch、iPadなどデバイスもAppleから供給される。スマートフォン向けアプリケーションならiPhoneのみに限定されるため開発の手間が省ける。 GoogleのNexus、ソニーモバイルコミュニケーションズのXperiaなど、複数の企業でデバイスを供給している。
同じAndroid OSでも独自にカスタマイズされていることもある。
機種ごとに画面設計、動作検証を行う必要があり、開発コストがかかる場合も。

表1. iOSとAndroid OSの違い

今回、業務アプリケーション開発の視点で比較を行いました。
その結果、表 1の通りAndroid OSに軍配が上がり、実際の選定においてもAndroid OS搭載のスマートフォンで決定しました。
しかし、Android OSは自由である反面、iOSに比べコンピュータウイルスが出回りやすいという危険も潜んでいます。
今回事例で挙げたような業務アプリケーションのケースでは、端末の用途が限定されるためその心配はありませんでしたが、使い方によっては選定にも違いが出てくるものと思います。

プログラミング言語においても、Android OSで主に使用するJava言語は他の開発でも用いられることが多く、メジャーな言語であると言えます。
それに引き換えObjective-Cは、iOS、Mac OS向けの開発以外ではほとんどお目見えすることはありませんので、この点からもAndroidアプリケーションの方が開発はしやすいと思いました。

また、最近では、PhoneGap(※10)、Titanium(※11)、Moscrif(※12)、Xamarin(※13)といったクロスプラットフォーム開発が可能なツールも多数登場しており、1つのコードでiOS、Androidの両方で動くアプリケーションを開発することも可能となっています。

5. おわりに

今回のソフテックだよりでは、スマートデバイスアプリケーション開発における導入部分について紹介させて頂きました。
Androidアプリケーションの具体的な開発手順については、次回の技術レポートで紹介させて頂きます。

(M.S.)

[参考文献]
『社内向けアプリケーションの開発アクセラレータガイド.pdf』Apple
『Apple Developer ( https://developer.apple.com/ ) 』
『Android Developers (http://developer.android.com/ ) 』
[注釈]
※1 ガラケー
「ガラパゴス・ケータイ」の略。日本独自の進化を遂げた携帯端末のことで、スマートフォンの前に普及していた携帯電話端末のことを指す。
※2 Windows CE
Microsoft が開発した組込機器向けの OS。(Windows Embedded Compact)
※3 iOS
Appleが開発、提供しているスマートデバイス向けのOS。
※4 Android
Googleが開発、提供しているスマートデバイス向けのOS。
※5 Windows RT
Microsoftが開発、提供しているスマートデバイス向けのOSで、Windows 8 のARM版。
※6 HTML5
Webページの作成に使用するマークアップ言語HTMLの第5版。
※7 Eclipse
IBMにより開発されたオープンソースの統合開発環境(IDE)。Java用のIDEとしてメジャー。
※8 App Store
Appleが運営するiOSデバイス向けのアプリケーションダウンロードサービス。
※9 DUNSナンバー
アメリカのダンアンドブラッドストリート(D&B)が管理している企業識別コード。
※10 PhoneGap
Adobeが提供しているクロスプラットフォームなアプリケーション開発環境。言語はHTML、CSS、JavaScriptを使用。
※11 Titanium
Appceleratorが提供しているクロスプラットフォームなアプリケーション開発環境。言語はJavaScriptを使用。
※12 Moscrif
Moscrifが提供しているクロスプラットフォームなアプリケーションの開発環境。言語はJavaScriptを使用。
※13 Xamarin
Xamarinが提供しているクロスプラットフォームなアプリケーションの開発環境。言語はC#言語を使用。2013/02/20にリリースされたXamarin 2.0では、Visual Studioを利用した開発も可能。ただし、有償版のBusinessエディション以上が必要。

関連ページへのリンク

関連するソフテックだより

ページTOPへ