Webブラウザー向けはJavaScript。企業システムのサーバーサイドはJava。ネット系ならPHPやPerl、Ruby。WindowsならC#。iPhoneならObjective-C。これは一例だが、今は開発言語を使い分けることが多い。だが、これからはJavaScriptをマスターすれば、これらのアプリケーションをすべて開発できる。

クライアント技術者がサーバーも開発

 まずは、サーバーサイドである。ミドルウエアのnode.jsが登場したことで、JavaScriptのサーバー利用に注目が集まった。node.jsは、米Googleが開発するJavaScript実行エンジン「V8」を実装したオープンソースソフトウエア。JavaScriptが動くので、サーバー開発を経験していないエンジニアでも、クライアント向けWebアプリケーションの開発経験を持っていれば、サーバー開発に参加しやすくなる。

 node.jsはデータベース機能を備えていないので、別途用意する必要がある。よく使われるのは、オープンソースのドキュメント指向データベースソフト「MongoDB」である。JavaScriptでは「JSON」や「BSON」といった形式のデータを取り扱う。このため、同形式でデータをやり取りできるMongoDBとの相性がよく、高速にデータを読み書きできる。

iPhoneでもAndroidでも動作

 スマートデバイス向けのアプリケーション分野では、JavaScriptで開発したWebアプリケーションのコードを流用し、iPhoneアプリやAndroidアプリを開発できる。「PhoneGap」や「Titanium」などの開発フレームワークが登場したからだ。

 スマートフォン向けアプリケーションには、Webブラウザーで動作するWebアプリケーションと、公式マーケットで配布されるネイティブアプリケーションの2種類がある。後者は「iPhoneアプリ」「Androidアプリ」などと呼ばれるものだ。

 PhoneGapやTitaniumなどで開発できるアプリケーションは両者の特徴を併せ持つので「ハイブリッドアプリ」と呼ばれる。ハイブリッドアプリの見た目はネイティブアプリケーションそのもの。提供形態も公式マーケットを通じた配布だ。

 だが中身はWebアプリケーションである。Webブラウザーが組み込まれていて、そのWebブラウザー上でJavaScriptが実行される。この仕組みによって、JavaScriptのコードを流用できるようになった。

 ハイブリッドアプリは、Webアプリケーションとネイティブアプリケーションの特徴を併せ持つだけでなく、両者のいいところ取りをしている。

 Webアプリケーションの最大のメリットは、Webブラウザーが動作する環境であればOSやデバイスの種類を問わず共通したサービスを提供できることにある。だが、Webアプリケーションはインターネットに接続していないと利用できない。スマートデバイスに備わるGPSやカメラ機能などとも連携しない。

 オフラインでの利用、GPSやカメラ機能との連携は、ネイティブなアプリケーションでしか実現できない。ところが、ネイティブなアプリケーションを開発するには、スマートデバイスのプラットフォームごとに異なる開発言語のスキルが必要になる。iPhoneアプリはObjective-C、AndroidアプリはJavaである。

 ハイブリッドアプリは、オフラインでも利用可能だし、GPSやカメラとも連携できる。PhoneGapを使ったスマートフォン向けアプリケーションを開発するニーロクの新井 裕氏(取締役)は、「iPhoneアプリとAndroidアプリを個別に開発するよりも大幅にコストと工数を削減できる。PhoneGapを使うメリットは大きい」と説明する。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら