ハイブリッドアプリ化するPhoneGapやMEAPを使う新時代のアプリ開発手法:XPagesでスマホWebアプリ開発入門(3)
スマホ開発の3手法としてWebアプリ、ネイティブアプリ、ハイブリッドアプリの特徴を比較しPhoneGapやMEAPのWorklightを紹介します
さまざまなモバイルアプリ開発手法とXPages
これまで2回の連載で、XPagesモバイルコントロールを利用したモバイルWebアプリの開発方法を紹介しました。XPagesを使用することで、Lotus Notes/Dominoアプリのビューや文書を、モバイルデバイスのWebブラウザを用いたアクセスに適したユーザーインターフェイス(以下、UI)で表示できることを理解できたと思います。
これまではモバイルWebアプリ開発を中心に説明しましたが、今回は視野を広げて全般的なモバイルアプリ開発手法について紹介します。それぞれの手法の特徴を比較するとともに、それらとXPagesの位置付けを解説します。
3つのモバイルアプリ開発手法の特徴と比較
モバイルアプリ開発では、Webブラウザに最適化されたWebアプリを開発する手法と、デバイスへインストールするネイティブアプリを開発する手法があります。さらに最近注目されている、Webとネイティブの特性を併せ持ったハイブリッドアプリを開発する手法もあります。
それぞれのアプリ開発手法にはメリットやデメリットがあり、開発者はこれらの特徴を把握することで適切な手法を選択し、モバイルアプリをより柔軟に作成できます。
【1】Webアプリ
Webアプリは、HTMLやCSS、JavaScriptなど、広く普及しているWebの標準技術を利用して作ります。そのため、Webアプリ開発を習熟した開発者は比較的容易にモバイルデバイス向けのアプリ開発に携われます。
また、Webブラウザからアプリを利用するため、デバイスに依存しないアプリの開発が可能です。
しかし、Webアプリ単体ではモバイルデバイスのネイティブAPIにアクセスできないため、カメラやセンサなどのハードウェア固有機能との連携はできません。加えて、サーバがアプリを提供するため、利用するにはネットワーク接続が必要です(※HTML5の機能によって、一部ハードウェアやオフライン対応できる部分もあります)。
【2】ネイティブアプリ
ネイティブアプリはデバイスにインストールして使われるアプリです。デバイスごとに用意された開発環境やSDKなどを利用して各プラットフォーム向けに作成されるため、カメラやセンサなどのデバイスの固有機能をフルに活用できます。
また、コンパイルされたアプリがOS上で直接動作することから、パフォーマンス面やオフライン動作に優位性があります。
しかし、複数のデバイスをサポートする場合、デバイスごとの開発が必要となるため、開発者にはデバイスのプラットフォームに依存した知識と開発スキルが求められます。
例えば、iOS用アプリであれば専用の開発環境「Xcode」上でObjective-Cでのコーディング、Android用アプリであればIDE「Eclipse」上でJavaでのコーディングというように、プラットフォームごとに異なる技術を用いて開発をする必要があります。そして、リリース後のアプリ運用に関しても注意が必要です。
例えば、アプリのバージョンアップは基本的にユーザーの判断で行われます。そのため、全てのユーザーにバージョンアップしてもらうような仕組みを考える必要があります。
【3】ハイブリッドアプリ
ハイブリッドアプリはWeb技術を活用して作成され、ネイティブアプリとして提供されている実行環境(コンテナ)上で動作するアプリです。この手法は、前述の2つの手法のメリットをうまく融合できます。ハイブリッドアプリは、UIの作成にWebの技術を用いることから、複数のデバイス向けにアプリを作成する場合でもデバイスごとに依存した開発スキルを必要とせず、開発コストを抑えられます。このようなWebアプリのメリットに加えて、ネイティブアプリの特徴も併せ持ちます。
ハイブリッドアプリの実行環境であるコンテナはネイティブアプリとして実装されており、デバイス固有機能へアクセスするためのインターフェイス(API)を公開しています。このAPIはJavaScriptで呼び出せるのが一般的で、開発者はプラットフォームごとの特有のプログラミング言語を記述することなくデバイス固有機能を実装できます(図1)。
3つの開発手法の特徴
以上の3つの開発手法の特徴を表にまとめました。Webアプリとネイティブアプリは対照的な特徴があり、ハイブリッドアプリはそれぞれのメリットを併せ持つという特徴があります。
Web | ハイブリッド | ネイティブ | |
---|---|---|---|
スキルレベル | ◎ | ○ | △ |
パフォーマンス | △ | ○ | ◎ |
デバイス依存性 | ◎ | ○ | △ |
開発時間 | ◎ | ○ | △ |
開発ライフサイクル | ◎ | ◎ | △ |
可搬性 | ◎ | ○ | △ |
デバイス機能利用 | △ | ○ | ◎ |
パッケージング | △ | ◎ | ◎ |
拡張性 | △ | ◎ | ◎ |
開発者は、ここで紹介した3つの手法を、アプリの種類や用途に応じて適切に選択できます。デバイス独自の機能をふんだんに利用したり、高いパフォーマンスを実現したいのであれば、ネイティブアプリが良いでしょう。一方、アプリの可搬性を高めたいのであればWebアプリです。そして、その両方の利点をバランス良く取り込みたい場合はハイブリッドアプリが良いでしょう。
モバイルWebアプリだけではないLotus Notes/Dominoのモバイル対応
XPagesはモバイルWebアプリの開発を支援する技術ですが、ハイブリッドアプリ開発フレームワークと連携して使用する試みがなされています。
PhoneGapと連携してハイブリッドアプリ
その1つの例がPhoneGap(Apache Cordova)の利用です。
PhoneGapは、アドビシステムズが開発しているオープンソースのモバイルデバイス用フレームワーク「Apache Cordova」のディストリビューションの1つです。iOSやAndroid、Windows Phoneをはじめとする7つのモバイルプラットフォームをサポートしています。このフレームワークでは、JavaScriptからネイティブAPIへのブリッジ機能を提供しているので、Webの技術を利用して作成したコンテンツからデバイス固有機能を利用できます。
OpenNTF.orgで公開されている「XPages Mobile Controls」プロジェクトに含まれる「XCamera.nsf」では、XPagesで作成したコンテンツにPhoneGapを利用し、ハードウェア固有のカメラ機能を利用して撮影した写真をLotus Notes/Domino上にアップロードするといった機能を実現しています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
また、サンプルアプリで紹介している操作以外にも、センサから得られた情報や位置情報なども同様にLotus Notes/Dominoアプリに保存できます。
MEAPの「IBM Worklight」との連携
もう1つの例がIBM Worklightとの連携です。IBM Worklightは、数多くのモバイルデバイスを対象に、HTML5アプリ、ハイブリッドアプリ、ネイティブアプリを効率的に開発、実行、管理できるモバイルアプリプラットフォームです。現在米国を中心に流行中のMEAP(Mobile Enterprise Application Platform)の1つといえます。
IBMでは、無償版の開発専用ツール「IBM Worklight Developer Edition 5.0」と初心者向けチュートリアルを公開しています。
IBMはIBM Worklightを戦略的なモバイルアプリプラットフォームと位置付けており、Lotus Notes/Dominoアプリとの連携を検討しています。これが実現されると、IBM Worklightを用いて開発されたハイブリッドアプリで、デバイス固有機能を利用して得られた情報とLotus Notes/Dominoのデータを連携できるかもしれません。
さらに、IBM Worklightの提供するプラットフォームにより、開発コストの削減や適切なアプリ管理ができるでしょう(図2)。
Domino Data Serviceと連携
一方、ネイティブアプリなどの外部アプリからLotus Notes/Dominoのデータにアクセスする仕組みも提供しています。それはLotus Notes/Domino 8.5.3 Upgrade Pack 1から登場した「Domino Data Service」です。
Domino Data Serviceでは、Lotus Dominoアプリへのデータの作成・読み込み・更新・削除といったアクセスを可能にするREST APIを提供しています。これによって、アプリ開発者はHTTPプロトコルでリクエストを送信し、JSON形式で表現されたLotus Dominoアプリのデータを操作できます。
このDomino Data Serviceをネイティブアプリやハイブリッドアプリの開発で利用することにより、Lotus Notes/Dominoのデータ操作が可能なアプリを作成できます。
Domino Data Serviceについては、次回以降の連載で詳しく解説します。
ハイブリッドアプリやMEAPも活用しよう
これまで3回にわたり、XPagesを中心としたLotus Notes/Dominoアプリのモバイル化について解説をしました。XPagesではWebの標準技術を利用することに加え、新しく登場したXPagesモバイルコントロールを活用することで効率的にモバイルWebアプリを開発できるようになりました。
さらに、XPagesなどで作成されたLotus Notes/DominoアプリをIBM WorklightやPhoneGapなどのハイブリッドアプリ開発用のフレームワークと連携する試みも行われています。ハイブリッド化することにより、Webアプリだけでは実現が難しかった機能を提供できます。
一方で、ネイティブアプリからLotus Notes/DominoアプリのデータにアクセスするDomino Data Serviceも利用できるようになりました。
このように、モバイルデバイスからLotus Notes/Dominoアプリへのアクセスするためのさまざまな開発手法が提供されており、開発者はアプリの種類や用途に応じて開発手法を選択し、最適なモバイルアプリを開発できるのです。
Copyright © ITmedia, Inc. All Rights Reserved.