PR

培ってきたスキルを生かす開発環境 Part 4

従来の開発スキルを生かしきめ細かさと効率性の両立へ

コンシューマ向けを中心に発展してきたスマートデバイスのアプリケーション。 最近では企業向けのものが急速に充実してきている。 また、iOSでのアプリケーション開発のネックとなっていた開発言語の特殊性についても解決方法が揃いつつある。 各企業が独自要件に対応するために利用可能な選択肢を紹介する。
緒方 啓吾 (編集部)

スマートデバイスを業務用途で使うに当たり、手間をかけずファストスタートを切るという観点からは「出来合い」のアプリケーションを探して採用するのが手っ取り早い。企業利用が広がりを見せているのに呼応して、最近ではスマートデバイス向け業務アプリの選択肢が増加している。

プレーヤーの増加は、専門特化型アプリの登場も促す。例えば米国では、米ボーイングの子会社Jeppesenが航空機のフライトプラン管理やナビゲーション機能を提供するiPad向けアプリをリリース。連邦航空局(FAA)の認可を得たことでも話題をまいた。医療や教育など公共性の高い分野でも、専門的なアプリが多数登場している。一方、国内では大成建設が工事会社などと図面を共有するアプリ「Field Pad」を開発し、間もなく市場投入する予定だ。

図4-1  iOS向けのアプリケーション開発手段のイメージ
図4-1  iOS向けのアプリケーション開発手段のイメージ

ネイティブアプリケーションは開発コストと維持管理が課題

もっとも、“吊しの背広”型の既製アプリでは満足できないという声もあるだろう。自社用途にジャストフィットする業務アプリを用意するために、企業はどんな策を取り得るのか。以下に代表的なアプローチ方法を紹介する。

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月のベータ公開を目指して開発中。テンプレートや機能を組み合わせてコーディングなしでスマートデバイス向けアプリケーションを生成する仕組みを採用する。

図4-2 SAP「Sybase Unwired Workspace」のアプリケーション開発画面
図4-2 SAP「Sybase Unwired Workspace」のアプリケーション開発画面

エンタープライズ向けを意識した主要ベンダーのプラットフォームも

ここまではコンシューマ分野から発展してきたものを紹介してきたが、最近では、企業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アプリケーション形式で生成することも可能だ。

表4-1 iOS、Android OS向けアプリケーション開発プラットフォームの例
表4-1 iOS、Android OS向けアプリケーション開発プラットフォームの例

IT Leaders 毎月無料でお届けいたします

本誌は、読者登録いただくことにより、毎月無料でみなさまのお手元まで直接お届けいたします(書店などでは販売していません)。

企業の情報システムを担当する方々や事業部門のIT担当の方々、およびIT関連プロフェッショナルの方々を対象に、実践的に役立つ情報を掲載、幅広く業務にご活用いただけます。

IT Leaders新規購読お申し込みはこちらから
Ads by Google