PR
培ってきたスキルを生かす開発環境 Part 4
スマートデバイスを業務用途で使うに当たり、手間をかけずファストスタートを切るという観点からは「出来合い」のアプリケーションを探して採用するのが手っ取り早い。企業利用が広がりを見せているのに呼応して、最近ではスマートデバイス向け業務アプリの選択肢が増加している。
プレーヤーの増加は、専門特化型アプリの登場も促す。例えば米国では、米ボーイングの子会社Jeppesenが航空機のフライトプラン管理やナビゲーション機能を提供するiPad向けアプリをリリース。連邦航空局(FAA)の認可を得たことでも話題をまいた。医療や教育など公共性の高い分野でも、専門的なアプリが多数登場している。一方、国内では大成建設が工事会社などと図面を共有するアプリ「Field Pad」を開発し、間もなく市場投入する予定だ。
ネイティブアプリケーションは開発コストと維持管理が課題
もっとも、“吊しの背広”型の既製アプリでは満足できないという声もあるだろう。自社用途にジャストフィットする業務アプリを用意するために、企業はどんな策を取り得るのか。以下に代表的なアプローチ方法を紹介する。
1. ネイティブアプリケーション
自社独自の要件を実現する最もプリミティブな手段は、スマートデバイス向けOSで稼働するアプリケーションを“手組み”することだ。iOSならObjective-Cで、AndoridであればJavaで、Windows Mobileの場合は.Net Frameworkを使ってコーディングすることになる。各OSが提供するSDK(ソフトウェア開発キット)は、OSやデバイスの機能を利用するためのAPIを提供しており、純正のユーザーインタフェース(UI)やGPS、加速度センサーなどを細かく制御できる。
かゆい所に手が届くアプリを開発し得る方法ではあるが、当然ながらコストも時間もかかる。例えば、iOS向けアプリの開発に利用するObjective-Cは技術者の絶対数が少ないため、要員調達やコストの面で苦労するケースが多い。仮にiOSとAndroidを併用したいとなれば、それぞれ別個のプログラムを書く必要がある。仕様変更やバグへの対応などを考えると、運用フェーズでもコストもかさみがちだ。
2. Webアプリケーション
OSごとにプログラムを開発する手間を省く方策としては、Webアプリケーションとして展開するパターンが考えられる。スマートデバイスの画面のサイズや解像度を考慮する必要はあるが、ブラウザからアクセスさえできれば基本的には動作する。バックエンドの開発言語は問わないし、端末ごとの差異を考慮する必要もない。今まで慣れ親しんできた開発スタイルを踏襲できるのは心強い。
すでにWebアプリケーションが社内にある場合、VPNなどを使ってスマートデバイスからアプリケーションサーバーにアクセスできる通信環境を整えれば、ひとまずのスマートデバイス対応ができる。
ただし、使い勝手の面で不満が残る可能性はある。Webアプリケーションは総じてメニュー体系や画面遷移、機能実行といったユーザーインタフェースが貧弱になりがちだ。指先のタッチで“直感的に”操作できるスマートデバイスならではの良さを生かしにくい。PCを前提とするなら、マウスカーソルが当たった時点で自動的にプルダウンメニューを広げるといった作り込みも可能だが、マウスの概念がないスマートデバイスには通用しない。また、オフライン状態では利用できない点も、考慮に入れる必要がある。
3. ハイブリット・アプリケーション
Webアプリケーションの開発のしやすさを維持しつつ、OSネイティブのアプリケーションを作成したい。そんな要望に応えるべく登場し始めたのがハイブリッド・アプリケーションという形態だ。完成度の高い独自アプリを効率よく開発する方法として注目を集めている。
代表的なツールとして、Nitobi社(Adobeが買収)の「Phone Gap」や米Ansca Mobile社の「Corona」、米Appcelerator社の「Titanium Mobile」などがある。
例えば「Titanium Mobile」は、画面からロジックまで全てをJavascriptでコーディングする。カメラやGPSなどのデバイス機能、 UI、その他のOS機能は独自ライブラリを経由して利用することが可能だ。各OS専用の変換ツールを用意しており、個別にソースコードを書き分ける必要はない。各端末では最終的にObjective-CやJavaのプログラムとして実行する。
ツールごとに細かい実装方法は異なるが、(1) 技術者人口の多い開発言語のサポート、(2) 1つのソースコードを複数OSに対応、(3) デバイスやOSの機能を利用する専用ライブラリを提供──といった特徴が共通する。一般に、ネイティブアプリよりも処理速度や画像処理などの面で劣るとされるが、それらを許容できればメリットは大きい。
国内にも企業システムでの利用を意識した開発プラットフォームが出始めている。例えば、アイキューブドシステムズの「Yubizo Engine」は、データへのアクセス権限やログ監視などセキュリティへの考慮を特徴に打ち出す。ジェナはクラウド型の開発プラットフォーム「seap」を2012年1月のベータ公開を目指して開発中。テンプレートや機能を組み合わせてコーディングなしでスマートデバイス向けアプリケーションを生成する仕組みを採用する。
エンタープライズ向けを意識した主要ベンダーのプラットフォームも
ここまではコンシューマ分野から発展してきたものを紹介してきたが、最近では、企業IT向けに開発プラットフォームを提供してきたベンダーもスマートデバイス対応に本腰を入れ始めている。代表例は、Adobeの画像表現に優れるRIA開発プラットフォーム「AIR」。ランタイムを使って、1つのActionScriptのソースコードを複数のOS上で稼働させるコンセプト“write once, run everywhere”の一環として、2011年からスマートデバイス対応を積極化した。
前述のハイブリッド型プラットフォームと基本的には同じ構造になるが、スマートデバイスにとどまらないクロスプラットフォームなアプリケーション開発を実現できる点が異なる。ランタイムが自動的に表示内容を変換するため、これまでPC向けなどに開発してきた資産についてはそのまま活用できる。もちろん表現力豊かなUIも強みの1つだ。
また、SAPは2011年9月、買収したSybaseのモバイル技術をベースとしたモバイルアプリケーションプラットフォーム「SUP(Sybase Unwired Platform)」を発表した。企業内に構築した既存システムと連携したモバイルアプリの構築をサポートする。中核となるのはMBO(Mobile Business Object)。RESTやSOAP形式で既存のデータベースからデータを取得しつつ、アプリ側にはオブジェクトとしてのアクセスを提供する。Objective-CやJava、C#のモジュールとして出力し、ネイティブアプリのコードに取り込むことで、既存システム連携のロジックをコーディングする手間を省ける。また、専用のGUIからは、HTML+Javascriptのドラッグ&ドロップWebアプリケーション形式で生成することも可能だ。
- データセンター見積もりは「DC完全ガイド」
最新iDCやテクノロジ・製品情報が満載。iDC事業者・サービスカタログで見積もり資料請求にも対応 - レンタルサーバー比較検索「RS完全ガイド」
共用・専用・VPS、国内1600以上のレンタルサーバー/ホスティングから最適なサービスを比較検索 - クラウド比較検索「クラウドサービス完全ガイド」
企業に役立つクラウド関連記事、製品・サービス情報




![[特別編集企画]エンタープライズ クラウド最前線 ~ハイブリッドクラウドの最適解 Windows Azure ~](/files/images/2012/ITL_Azure_spbadge.png)