多様化するデバイス・OSが求める「ハイブリッド開発」
生産効率向上のために環境整備が必須
「iOSやAndroid、Windowsストア・アプリなどをめぐり、ハイブリッドであることが要件というプロジェクトが急増しており、ハイブリッド開発基盤へのニーズの高まりを実感している」
そう語るのは、長年Java EEなどを使った受託開発プロジェクトに関わり、近年はモバイル系でフロントエンド開発を多数手がけてきた日本アイ・ビー・エム株式会社(以下、日本IBM) ソフトウェア事業 WebSphere事業部の佐々木志門氏だ。
それでも受託の開発プロジェクトにあたっていた当時は、ハイブリッド開発など不要だと考えていた。しかし、技術営業職として多くのユーザーの要望を聞く中で、ハイブリッド開発が「必須要件」になりつつあることを実感したという。そうなれば、複数のアプリケーションをどう迅速にデリバリーするかが、大きな課題となる。
たとえば、同じサービスをAndroidとiPadで展開したり、バラバラの個人所有機器をBYODとして利用したり、要件は様々だ。実際に佐々木氏には「既存のPDA業務をスマートフォンに置き換えたいが、機種はまだ決めてない」という相談まであったという。そんな中で、ネイティブ開発のみでは、運用の二重管理やアップデートなどが大きな負担となり、行き詰まり感を禁じ得ない。
また、ユーザー部門では競争力を高めるために、新しいものを取り込もうとする意欲が高いが、IT部門では、運用管理やセキュリティー、新技術を追加した際の品質管理の問題もあり、なかなか踏み切れない。開発者側ではネイティブ開発はもちろんHTML5でもブラウザーごとに動作が異なるなど、成果物のポータビリティーには悩ましさが残る。こうしたステークホルダーのせめぎ合いが、サービスやシステムの迅速なリリースの弊害になっているのだ。
佐々木氏は「HTML5中心のクライアントサイド開発に移行したことで、Java EE等のサーバーサイド開発でも新しいフレームワークを構築する必要がある。また、フロントエンドだけでなく、バックエンド開発やセキュリティー、アップデート管理など、モバイル開発・運用のライフサイクル全般を広く捉えることが大切」と力説する。
そうした中で注目されるのが、複数の環境に対応する「ハイブリッドアプリケーション」だ。佐々木氏は「エントリー時のイニシャルコストはかかるが、デバイスやOSなど対象のプラットフォームが増えるにつれて、非常に生産効率が上がる」と評価する。
昨今では、iOSやAndroidに加えて、Windows 8やChrome OSを採用する企業が増えているという。特にエンタープライズ系ではSurfaceの大量採用などもあり、ExcelやWordを使えるWindows 8が今後増える可能性は大きい。
HTML5で対応しようにも、Kinectなどの最先端センサーやChromecastなどのデバイスは、成熟したネイティブOSのAPIとしてしか提供されない。これらを活用するためには、HTML5に併せてネイティブスキルが必要となり、双方を両輪で回すことが不可欠となる。
こうしたマルチOS対応のカギとなる技術要素として、佐々木氏は「WebView/UIWebViewクラスの存在」を紹介する。つまり、AndroidはWebView、iOSはUIWebViewでアプリにブラウザーを埋め込み、中身をHTML5アプリとして実装するという方法だ。さらに、Webサーバーに保存していたWebリソースを、アプリケーション内のファイルシステムに持ってくることで、オフラインでも動く。
なお、各プラットフォームのAPIはJavaScriptに対するインターフェースを持っているので、どの言語でもHTML5のJavaScriptからネイティブコードに引数を渡し、ネイティブコードから戻り値を受け取れる。こうした組み合わせによって、WebでもJavaScriptでも、ネイティブアプリケーションコードと連携できる仕組みになっている。このブリッジ役を担うのがApache Cordovaであり、PhoneGapだ。ただし、Cordovaはコマンドラインインターフェースしか持たない。そのため、エディターやフレームワークなどの機能を構築する必要がある。
また、マルチ画面のデザインについては、メディアクエリーで単一のCSSの中で切り替えるアプローチにより、ウィンドウサイズに合わせて画像サイズも可変させる手法「Fluid Grid」「Fluid Image」が用いられる。しかし、デバイス情報に基づくスタイルシートの切り替えなどの機能は持たない。
ハイブリッド開発プラットフォーム「Worklight」で
快適かつスピーディーなアプリ開発を実現
そこで、ハイブリッド開発の快適なプラットフォームとして日本IBMが提供している製品が「Worklight」である。「IBM Worklight Studio」はEclipseをベースに、「Android Studio」「XCode」「Visual Studio」のプロジェクトとしてマッピングされる。また、OSSライブラリーにも対応しており、jQueryやApache Cordova APIのほか、UIとしてjQuery Mobile、Dojo Mobile、Sencha Touchなども使用可能。これらは、今後フロントエンド開発者に求められるスキルだろう。サーバーサイドのロジックはRhino JavaScriptコンテナーで稼働し、そしてAngularJS、Backbone.jsなどでMVCに対応していく。
佐々木氏は「HTML5だけでがんばろうとしないこと」が重要とし、Cordova APIとWorklight APIで足りない分はネイティブのカスタム開発で補い、既存コードやOSSライブラリー、画面などを再利用することをポイントとして挙げた。
なお、WebViewでデバッグする際、iOS 6、Android 4.4以上では、ブラウザーのリモートデバッグを使用できるが、それ以前のiOS、Androidを含め、WorklightはここにWorklight Studio開発環境で動く個別のデバッグツール「モバイル・ブラウザー・シミュレーター(MBS)」を提供する。MBSはCordova用のイベントを起こさせるデバッガーであり、ブラウザー上でアプリケーションのプレビューやテストを行うことができる。複数デバイスのシミュレーター画面を並べて見られる点も特徴で、これまでのエミュレーター、シミュレーターに比べて確認作業が大幅に効率化される。
また、マルチ開発に対応したロガーであり、Worklight APIでOSコンソールへ出力することができる。サーバーへのクラッシュログを送信するため、問題判別やエラー機器の早期発見も可能だ。こうした地味ながら快適な機能が「Web開発のように快適な」アプリ開発を実現するという。
実機とWebアプリのモバイルテストの自動化も大切だ。1つの端末の操作記録を他機種の端末で自動再生する機能が、複数の端末やOSのアップデートに伴うテスト作業を軽減。短いサイクルでの開発を支援する。
また、サーバーサイドも重要なポイントだろう。「Worklight Server」は、ユーザー認証管理やデータストア、プッシュ通知など汎用的機能をAPI、SDKとして利用することで、効率よくアプリを開発できる。ここにWorklight Serverはクラッシュログの収集やデバイスごとのサービス提供、アップデート管理などの機能を提供する。
そして、セキュリティーについては、Worklightはアプリケーションレベルのセキュリティーと管理を提供する。アプリケーションの改ざん防止として自動更新や利用制限、アプリケーション管理(MAM)などを行うほか、MDM(Mobile Device Management)対象外のときには、オフラインデータの暗号化やデバイス紛失時のサービス停止などを、アプリケーション単位で実現するという。
最後に佐々木氏は、Cordova(PhoneGap)とIBM Worklightの比較表を示し、こうした機能を積み上げて快適なプラットフォームとする「MEAP」(Mobile Enterprise Application Platform)の有用性について、「IBMはもちろん、様々な企業のこれまでの開発ノウハウが集約されており、それを流用できること」と語った。そして「WorklightのDeveloper Editionは無期限で無料。ぜひこうしたMEAPを利用して、開発速度を上げてほしい」と結んだ。
時間がない中、デモンストレーションの時間が割愛されてしまったのが惜しまれるが、無料ハンズオンセミナーも随時行われているという。興味をもった方は参加するとよいだろう。
日本アイ・ビー・エム株式会社
〒103-8510 東京都中央区日本橋箱崎町19-21
TEL: 0120-04-1992
URL: http://www-06.ibm.com/software/jp/websphere/mobile-solutions/worklight/