モバイルアプリケーション開発プラットフォーム選定の10のポイント


4月26日にガートナー社からレポート「Magic Quadrant for Mobile Application Development Platforms」(英語)がリリースされました。

ここで述べられている、”Mobile Application Development Platform”とは、企業の従業員向けモバイルアプリケーション(B2E)やその企業の顧客に提供するB2C、 B2Bアプリケーションを開発、運用する為の統合プラットフォームのことです。

実は、昨年までは Mobile Enterprise Application Platform(MEAP)「企業向けモバイルアプリケーションプラットフォーム」や Mobile Consumer Application Platform(MCAP) 「コンシューマ向けアプリケーションプラットフォーム」などモバイルアプリケーションの開発プラットフォームは複数に渡っていましたが、今回は”Mobile Application Development Platform”として一つの分野になっています。

第二回目の今回は、その背景と今後のモバイルアプリケーション開発プラットフォームに求められる10のポイントについて解説したいと思います。

なぜ、“単一のプラットフォーム”が必要とされているのか?

現在、市場には用途に応じた、さまざまなモバイルアプリケーション開発ツールが存在しています。高速なアプリをiOSで作るならObjective Cを使いxCodeで開発する「ネイティブアプリケーション」と呼ばれる形式や、 既存のWebシステムの延長でモバイルでの操作性を考慮したモバイルWeb UIを作るツール、またこの2つの中間で「ハイブリッドアプリケーション」と呼ばれる汎用的なHTMLなどを使い、ネイティブアプリ化するツールなどです。

歴史を振り返ると、PCの時代においても、アプリケーション開発ツールやそのプラットフォームは徐々に発展しており、PC発展期にはVisual Basicに代表されるIDE(統合開発環境)と言われる開発ツールにより、PCのクライアントアプリケーションの開発生産性は劇的に向上しました。しかし、初期のIDEはクライアント・サーバー型とはいえ、ビジネスロジックの大半をクライアントアプリケーション側に実装する必要がありました。その結果、企業内には無数のクライアントのプログラムに依存したシステムやアプリケーションが開発され、メンテナンス性やパフォーマンスの問題が発生していました。しかし、ネットワークやインターネットの発達により、三層型WebアプリケーションアーキテクチャやSOAなどが生まれ、開発プラットフォームとそのアーキテクチャは日々発展してきました。それと同時に、クライアントテクノロジーもRIA, Web2.0などに日々変化しています。

昔話はこれくらいにして話を戻しますが、スマートフォンやタブレットの出荷台数がノートPCの出荷台数を上回っている現在、まさにモバイルは発展期を通り過ぎ、全盛期を迎えていると言えます。

出典:ZDnet, One billion smartphones by 2016, says Forrester

参考:爆発期を迎えるモバイルデバイスとアプリケーション
世界のスマートフォンユーザー10億人のうち3億5000万人は仕事でもスマートフォン を利用、さらにその半数以上にあたる2億人が自分で購入した端末を仕事場に持ち込む、いわゆる「BYOD」(”Bring Your Own Device”)派になる。なお、米国のスマートフォン所有者は約2億5700万人、タブレット所有者は1億2600万人にそれぞれなるという。さらに、 モバイルアプリの市場規模は2015年に560億ドルに達する見込み。

今までは、各企業はビジネスを最優先に、デバイスやアプリケーションの要件ごとにコンシューマ向けアプリケーションや企業内アプリケーションを個別に開発し、必要に応じてセキュリティや管理面の対策を行ってきました。しかし、それらのツールやプラットフォームはバラバラであるのが現状です。

この状況は前述したPC時代を振り返っても、生産性、効率性、メンテナンス性やTCOの観点から“単一のプラットフォーム”への発展が求められるのは必然ですし、それが求められている時代になっています。

つまり、これからスマートフォン、タブレットに代表されるモバイルアプリケーションは爆発期に入り、それを支えるツールやプラットフォームが必要とされています。このプラットフォームはPC時代とは異なり、モバイルデバイス固有の要件を満たしている必要もあります。言い換えると、今までの延長線として対応するのではなく、時代に合った開発プラットフォームが必要になるのです。

例えば、モバイルデバイスはノートPCをはるかに凌駕する機動性を持っていると同時にOSの特徴も異なるので、それらに沿った利便性やセキュリティを提供できるプラットフォームが必要です。

単一のモバイルプラットフォームとは?

さて、前置きが長くなりましたが、この背景を踏まえてガートナー社のレポートに述べられているモバイルアプリケーションを開発、運用するプラットフォームに求められている10のポイントについて解説したいと思います。

ポイント1:デバイス/OSのプラットフォームのサポート
幅広いデバイスとOS(特にスマートフォンとタブレット)とその周辺機器のサポート。

解説:現在のモバイルデバイスの多様性とその進化のスピードは説明するまでもありませんし、地域や市場の特性から見ても、一つのデバイスやOSに依存することが出来ない状況です。例えば、アジア地域では価格の安さからAndroid搭載のデバイスが圧倒的に普及しています。そのため、出来るだけ多くのデバイスやOSをサポートするプラットフォームが現時点では必要になります。

ポイント2:プラットフォームとしてのTCO
アプリケーションの開発、運用、管理と拡張のコスト、またプラットフォーム自身と必要とされるインフラとサービスやITスタッフ、関連するクライアントやネットワークのコストも含む。

解説:爆発期を迎え、モバイルアプリケーションや利用者の数が劇的に増えることを踏まえると、企業にとっては、モバイルアプリケーションに関連する全てのTCOが低く無ければならないのは言うまでもありません。特にデバイスやユーザー要件の変化に応える膨大な追加変更の多さへの対応力、国際ローミングの通信コストやセキュリティ情報などのモニタリングは重要な要素になります。

ポイント3:洗練されたアプリケーション
それぞれのプラットフォームにおいて、市場に流通しているベストなルック&フィールや機能であること。

解説:企業内アプリであっても、ユーザーはコンシューマユーザーとしての体験があるため、スマートフォンやタブレットの企業内アプリケーションもコンシューマ向けアプリと同等である必要があります。これは企業のIT部門としては戦々恐々とする事態かもしれません。(一生懸命作ったアプリが即ダメ出しされるという事も想定されます。さしずめ、SAP GUIがそのままタブレットになって喜ぶモバイルユーザーが何人いるか?と言ったところでしょうか)

しかし、この状況をむしろ前向きに考えて、コンシューマ向けアプリケーションと同等なユーザーインターフェイスや操作性を提供することで、ユーザーへの教育コストも削減することが出来ると考えることもできます。

したがって、市場にあるようなコンシューマアプリと同等なユーザーインターフェイスを提供するアプリケーションの提供や、そういったアプリケーションが開発可能なツールは必要不可欠です。

一方でコンシューマ向けのアプリケーションに関しては、市場に流通している他のアプリケーションともちろん同等である必要があります。

ポイント4:IDEとツール
“what you see is what you get” (WYSIWYG)、開発中のUIデザインツールで見たままの状態がそのまま動作するユーザーインターフェイスになる。UI開発ツールの提供、開発ツールとしてのコード編集、及びデバッグ、ソースコード管理、設定管理、品質管理やテストツールを有している。また、多くのユーザーは一般的なツールであるEclipse との統合を期待している。

解説:従来のアプリケーション開発ツールと同様に、スマートフォンやタブレット用の開発ツールでも同等の機能が求められるのは言うまでもないと思います。モバイルアプリケーションの黎明期は各プラットフォームのSDKを使っての開発が主流でしたが、現在はPCと同等な開発生産性を備えたクロスプラットフォームのモバイルアプリケーション開発ツールが提供されています。

これは、デバイス自身の変化への対応、進化が早いモバイルアプリケーションの開発生産性やアジャイル開発という点で重要なポイントです。

ポイント5管理とセキュリティ
モバイルデバイス上のアプリケーションとデータを管理し、セキュリティを保つ機能、プライベートアプリストアのサポートを含む。

解説:企業内向けのアプリケーションの場合、従業員に対するワークスタイル変革を促進するために、出来るだけ企業内の情報をモバイルアプリケーションで表示、入力できる必要があります。しかしその際、アプリケーションやそのデータのセキュリティ管理やアプリケーション配布、デバイスの管理なども課題になります。

したがって、セキュリティを担保したアプリケーションの開発と運用を可能にするアプリケーションプラットフォームと、アプリケーションのみならず、デバイス自身のセキュリティと管理を可能にするデバイス管理機能(いわゆるMDM)も重要になります。また、プライベートアプリストアは、企業内アプリケーションを安全に、効率的に従業員に配布する有効な手段になります。

また、顧客向けアプリケーションの場合も、アプリケーションの利便性や顧客囲い込みを考えた場合、顧客プロフィールや取引情報などをアプリケーションに展開していく必要性が高まっていくと思いますが、その際のアプリケーションのセキュリティを担保する必要があります。

ポイント6アプリケーション統合
データやコンテンツ、トランザクションデータなどの企業のバックエンドシステムとの連携と、広告サービスや課金サービスなどの外部サービスとの連携

解説:先のポイントでも述べたように、サービスレベル向上やワークスタイル変革を提供するには、顧客向け、従業員向けのいずれも企業内にある様々なデータやプロセスをモバイルアプリケーション上で表示、入力できる必要があり、その為には、企業内にある既存の様々なバックエンドシステムとの連携が必要になります。ただ単に連携するだけではなく、モバイルデバイスでの利便性、例えばオフライン連携、パフォーマンスを改善するキャッシュやセキュリティも考慮した連携機能が必要です。

また、コンシューマアプリケーションの場合は企業内だけではなく、クラウドで提供される、外部の情報サービスとの連携もアプリケーションのサービスの多様化を実現するために重要な要素となります。

ポイント7ネイティブクライアント機能
アプリストアへのパブリッシュや、オフラインモードでの動作やカメラなどのデバイス機能のアクセスができる機能

解説:コンシューマアプリケーションは、アプリケーション展開チャネルとしてのアプリケーションストア経由の提供が必要になりますが、アプリケーションストアへの展開は認知度向上や展開の容易性という点で重要なポイントです。また、Apple App StoreやGoogle Playのようなコンシューマアプリケーションストアでは今のところは各OSのネイティブアプリケーションでの提供が必須なので、開発されるアプリケーションをネイティブアプリケーションとして生成できる機能が必要になります。

企業内アプリケーションの場合も、スマートフォンやタブレットならではの機能をアプリケーションで提供することで、モバイルで業務を行うことへの付加価値となります。また、スマートフォンやタブレットの場合、オフラインでデータを保持できる機能が重宝されるケースがあります。例えば、電波状況が不安定な国や電波通信が使えない場所、具体的には地下鉄や病院、工場などではオンライン通信が行えないので、そういった状況でもデータの入出力が行えることは業務を支える観点ではとても大事な要素になります。

ポイント8クラウドとホスティング
ソリューションがクラウドまたはホスティングで提供出来ること

解説:モバイルアプリケーションを出来るだけ早く利用可能にするために、企業内にプラットフォームをインストールや設定したくない、もしくはその時間を最短にする事が求められます。そのためにクラウドやホスティング形式の提供は、必要な要素の1つになります。

ポイント9パッケージモバイルアプリケーションとテンプレート
パッケージアプリケーションまたはソースコードを提供することによって顧客のニーズに応じたカスタマイズを可能にするなど、アプリケーションの利用までのスピードを短縮

解説:多くのパッケージ化されたモバイルアプリケーションを提供することで、ユーザー企業は選択肢が増えると同時に、それをそのまま使うことで導入までの期間を劇的に短縮できます。さらに、パッケージアプリケーションのソースコードの提供と、そのソースコードがフレームワーク化されていることで、ユーザー個別のニーズに簡単かつ迅速に対応することが可能になります。これはモバイルのみならず、一般的なパッケージアプリケーションの優位性ではありますが、数多くのモバイルアプリケーションを短期間かつ低コストで展開する上でも重要なポイントになります。

ポイント10アーキテクチャの柔軟性
1つのアーキテクチャモデルが全てのアプリケーションに対して理想的では無いため、Web, ハイブリッド、ネイティブアプリケーションの複数の運用モデルのサポート

解説:社内の開発者リソースのスキルにもよりますが、Webであれば既存のリソースやエコシステムを活用できるので、簡易的なアプリケーションには適しています。また、スマートフォンやタブレットならではの機能を駆使したアプリケーションを作成するためには、カメラやGPSなどのネイティブ機能の利用が必要になります。その際の、ネイティブ機能の開発モデルとしては、HTMLエンジン利用型のハイブリッドアプリケーション、もしくはパフォーマンスを最大限考慮したネイティブアプリケーションなどの選択肢が考えられますが、それぞれの長所や短所を踏まえて、開発モデルを選択可能な柔軟なアプリケーション開発フレームワークを単一のツールで有している方が企業にとっては好ましいのは言うまでもありません。

 

今回は長文になりましたが、最後まで読んでいただいた方々、大変ありがとうございました。これらポイントやその内容が、皆様がモバイルアプリを企業内外に展開する際の一助になれば幸いです。

●お問い合わせ先
チャットで質問する
Web問い合わせフォーム
電話: 0120-554-881(受付時間:平日 9:00~18:00)