Cordovaとは?HTMLとJavaScriptによるハイブリッドアプリ開発

Cordovaとは

Cordova(コルドバ)は、アプリケーション開発フレームワークです。Cordovaを使うと、HTML/CSS/JavaScriptのウェブ標準技術を使って、iOSやAndroid向けのネイティブアプリを開発できます。同じような目的のフレームワークにはReact Native 、 Vue Native、Electronなどが挙げられますが、ネイティブアプリを実現する仕組みが異なります。

Cordovaの場合、ネイティブアプリ内で「WebView」 という簡易ブラウザを開いて、その中でウェブアプリを動作させています。この簡易ブラウザこそが Cordovaのコア技術です。Cordovaで開発するアプリとは、簡易ブラウザを通すことで、ウェブアプリをiOSやAndroid環境で利用できるようにしたものです。

Cordovaは、モバイルデバイス固有のカメラ、位置情報、加速度センサーなどの機能にアクセスできる仕組みになっています。 Cordovaで開発するアプリは、ウェブアプリとネイティブアプリを組み合わせたような構造ですが、このような構造のアプリは「ハイブリッドアプリ」と呼ばれることがあります。

尚、正式名称はApache Cordova(アパッチ・コルドバ)ですが、 Cordovaと省略して呼ばれことが多いため、本記事では Cordovaで統一しています。

Phonegapのソースコードをベースにして開発されたフレームワーク

Apache Cordovaは、Phonegapのソースコードをベースにして開発されたフレームワークです。Cordovaのルーツは、2009年にさかのぼります。最初はPhonegap(フォンギャップ)として開発されていましたが、Phonegapは2011年の買収によってアドビ社の製品となりました。

その際にソースコードがApacheソフトウェア財団に寄贈されたことで、 Phonegapと同様のフレームワークが、 Apache Cordova(アパッチ・コルドバ)としても開発されるようになった経緯があります。

PhonegapとCordovaは名称や開発元が異なり、コマンドにも若干の違いはありますが、コア機能が同じであるためどちらを使っても完成するアプリはほぼ同じ結果となります。

Cordovaの特徴

Cordova には、以下の特徴があります。

  • HTML/CSS/JavaScriptのウェブ標準技術を使って、iOSやAndroid向けのネイティブアプリを開発できる
  • ネイティブアプリ内で「WebView」 という簡易ブラウザを開いて、その中でウェブアプリを動作させる
  • モバイルデバイス固有のカメラ、位置情報、加速度センサーなどの機能にアクセスできる
  • ウェブアプリとネイティブアプリを組み合わせた構造の「ハイブリッドアプリ」を開発できる
  • ハイブリッドアプリとは、簡易ブラウザを通したウェブアプリのこと
  • ハイブリッドアプリは、 ネイティブアプリに比べると動作速度が遅い
    iOSやAndroidの最新機能をPhoneGapがサポートするまでに時間差が生じる

Cordova は、HTML/CSS/JavaScriptのウェブ標準技術を使って、iOSやAndroid向けのネイティブアプリを開発するためのアプリケーション開発フレームワークです。

Cordovaで開発するハイブリッドアプリは、モバイルデバイス固有のカメラ、位置情報、加速度センサーなどの機能にアクセスできる仕組みになっています。Cordovaを使うと、ウェブアプリとネイティブアプリを組み合わせた構造の「ハイブリッドアプリ」を開発できます。

ハイブリッドアプリには、Objective-C/Swiftで開発したiOSアプリや、Java/Kotlinで開発したAndroidアプリに比べて動作が遅いというデメリットがあります。また、iOSやAndroidの最新機能をCordovaがサポートするまでに時間差を生じることがあり、Cordovaがサポートするまではこれらの機能を利用できません。

Cordovaを学ぶメリット

Cordova で求人を検索すると、ウェブアプリ開発エンジニア、スマホアプリ開発エンジニア、サーバーサイドエンジニア、フロントエンドエンジニアなどでの募集が確認できます。

Cordovaのスキルが求められる職場では、Cordovaの他に使えることが望ましいスキルとして、JavaScript/HTML/CSS、Monaca、Flutter、React Native、iOS/Androidアプリ開発経験などが挙げられています。

Apache Cordova公式サイト: https://cordova.apache.org/