[技術解説]

スマートデバイスのアプリが充実─従来の開発スキルを生かし、きめ細かさと効率性の両立へ

スマートデバイスのすべて

2012年1月24日(火)緒方 啓吾(IT Leaders編集部)

コンシューマ向けを中心に発展してきたスマートデバイスのアプリケーション。 最近では企業向けのものが急速に充実してきている。 また、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」のアプリケーション開発画面
この記事の続きをお読みいただくには、
会員登録(無料)が必要です
  • 1
  • 2
関連キーワード

スマートデバイス / スマートフォン / タブレット / iPhone / Android / iPad / Apple

関連記事

トピックス

[Sponsored]

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

PAGE TOP