SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2014】セッションレポート (AD)

【デブサミ2014】13-C-2 レポート
無料版もある! 試してみたいモバイルアプリのハイブリッド開発ツール

  • このエントリーをはてなブックマークに追加

 急速にマルチOS対応のニーズが高まる中、その解決のアプローチとして「ハイブリッド開発」が有望視されているが、必ずしも期待通りとは言いがたい。どうすれば、セキュリティーと品質を担保しながら、付加価値の高いアプリケーションをスピーディーに開発できるのか。その解決策のヒントとなる開発環境について、日本アイ・ビー・エム株式会社 ソフトウェア事業 WebSphere事業部 佐々木志門氏が解説を行った。

  • このエントリーをはてなブックマークに追加

日本アイ・ビー・エム株式会社 ソフトウェア事業 WebSphere事業部 佐々木志門氏
日本アイ・ビー・エム株式会社 ソフトウェア事業 WebSphere事業部 佐々木志門氏

多様化するデバイス・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リソースを、アプリケーション内のファイルシステムに持ってくることで、オフラインでも動く。

マルチOS対応のカギを握る「WebView/UIWebViewクラス」
マルチOS対応のカギを握る「WebView/UIWebViewクラス」

 なお、各プラットフォームのAPIはJavaScriptに対するインターフェースを持っているので、どの言語でもHTML5のJavaScriptからネイティブコードに引数を渡し、ネイティブコードから戻り値を受け取れる。こうした組み合わせによって、WebでもJavaScriptでも、ネイティブアプリケーションコードと連携できる仕組みになっている。このブリッジ役を担うのがApache Cordovaであり、PhoneGapだ。ただし、Cordovaはコマンドラインインターフェースしか持たない。そのため、エディターやフレームワークなどの機能を構築する必要がある。

 また、マルチ画面のデザインについては、メディアクエリーで単一のCSSの中で切り替えるアプローチにより、ウィンドウサイズに合わせて画像サイズも可変させる手法「Fluid Grid」「Fluid Image」が用いられる。しかし、デバイス情報に基づくスタイルシートの切り替えなどの機能は持たない。

次のページ
ハイブリッド開発プラットフォーム「Worklight」で 快適かつスピーディーなアプリ開発を実現

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2014】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7667 2014/04/24 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング