マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Apache Cordova

【OSS情報アーカイブ】Apache Cordova

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Apache Cordova」とは

概要

Apache Cordova(アパッチコルドバ)とは、オープンソースのハイブリッドアプリ開発フレームワークです。複数のプラットフォームで動作するクロスプラットフォームアプリをワンソースで開発できます。

基本説明

Apache Cordovaは、Web標準技術(HTML5+CSS3+JavaScript)を使用して、iPhone/Androidなどの複数のモバイルOSに対応したクロスプラットフォームアプリを開発できるフレームワークです。

アプリケーションの中に、各プラットフォームを対象としたラッパーとして機能する簡易ブラウザ「WebView」を表示し、その中でWebアプリを動作させる仕組みによって実現しています。

純粋なWebアプリとは異なり、「センサー」「データ」「ネットワークステータス」などの各デバイスの固有機能にアクセスできます。このような技術をWebアプリとネイティブアプリの融合という意味合いから「ハイブリッドアプリ」と呼びます。プラットフォーム固有のAPIに依存せずに、モバイルアプリケーションを構築できるメリットがあります。

複数のOSに対してそれぞれネイティブアプリを開発する作業と比較すると、1つのソースコードで複数OSに対応できるため、大幅に開発コストを削減できます。また、Webアプリと同様の技術で開発できるため学習コストも削減できます。

主要開発元

Apache Cordovaは、Apacheソフトウェア財団を中心として開発されています。

Apache Cordovaプロジェクトには「Adobe」「BlackBerry」「Google」「IBM」「Intel」「Microsoft」「Mozilla」など、IT業界を代表する組織が貢献しています。

→apache.org

経緯

・2009年:初版リリース

■「PhoneGap」ベース

「Apache Cordova」は、Adobe社からApache財団に寄贈された「PhoneGap」のソースコードがベースとなっています。

その後、「PhoneGap」はAdobe社の商標として、Cordovaディストリビューションの1つとなっています。

ユースケース

■クロスプラットフォームアプリ開発

各プラットフォームの言語およびツールセットを使用してアプリケーションを再実装することなく、アプリケーションを複数のプラットフォームに展開できます。

■Webアプリケーション開発

「App Store」や「Google Play」などのモバイルソフトウェアポータルで配布するためにパッケージ化されたアプリケーションをデプロイできます。

■ハイブリッドアプリケーション開発

「ネイティブのアプリケーションコンポーネント」と「デバイスレベルのAPIにアクセスできるWebView」を混在させたハイブリッドアプリケーションを開発できます。

オフィシャルサイト情報

■オフィシャルサイト

→cordova.apache.org

■ライセンス情報

Apache Cordovaのライセンスは「Apache License, Version 2.0」です。

詳細について、こちらを参照ください。
→Apache Cordova

■動作環境

開発プラットフォームとして「Mac」「Windows」「Linux」で動作できます。

→Apache Cordova →Platform Support →Cordova CLI Development Platform

■ダウンロード

→Apache Cordova →Get Started Fast

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Electron」「Qt」「Xamarin」など。

Web技術で開発

Apache Cordovaは、Web標準技術(HTML5+CSS3+JavaScript)を使用して、アプリケーションを開発できます。

クロスプラットフォーム

CordovaはHTML/JavaScriptアプリをいくつかのプラットフォームのデバイス機能にアクセスできるネイティブコンテナにラップします。

これらの機能は、統一されたJavaScript APIを介して公開されているため、市場に出回っているほぼすべてのスマートフォンやタブレットを対象とし、それらのアプリストアに公開するためのコードを簡単に作成できます。

■サポートプラットフォーム

Apache Cordovaは、以下のプラットフォームをサポートしています。

・Android
・iOS
・OS X
・Windows
・Electron

→Apache Cordova →Platform Support

ランタイムのみを提供

Cordovaはランタイム機能のみを提供します。

Cordova自体は「UIウィジェット」や「MV*フレームワーク」は提供していませんが、数多くのエコシステムを利用することで、多様なインターフェースやアーキテクチャを選択できます。

「Apache Cordova」の主要コンポーネント

Apache Cordovaアプリケーションにはいくつかのコンポーネントがあります。

Apache Cordovaアプリケーションの中核は、レンダリングにCSS3とHTML5を使用し、ロジックにJavaScriptを使用します。

①ブラウザウィンドウ「WebView」

Cordovaアプリケーションは、通常、ネイティブのモバイルプラットフォーム内にブラウザベースの「WebView」として実装されます。

■ハイブリッドアプリケーション

プラットフォームによっては「WebView」と「ネイティブアプリケーションコンポーネント」を混在させる大型のハイブリッドアプリケーション内のコンポーネントにすることもできます。

■固有デバイスへのアクセス機能

「WebView」は、「加速度計」「カメラ」「GPS」などの基盤となるハードウェアへのアクセスを提供します。

HTML5ベースのデバイスアクセスに対するブラウザのサポートは、特に古いバージョンのAndroid間では一貫していないため、Apache CordovaではデバイスのネイティブWebView内にHTML5コードを埋め込み、外部関数インターフェースを使用してそのネイティブリソースにアクセスします。

②Webアプリケーション

アプリケーション自体はWebページとして実装されています。

デフォルトでは、アプリケーションを実行させるためには、「CSS」「JavaScript」「画像ファイル」「メディアファイル」「index.html」などのローカルファイルが必要です。

このアプリケーションが、アプリケーションストアに配布するネイティブアプリケーションラッパー内のWebViewで実行されます。

③プラグイン

プラグインはCordovaエコシステムに不可欠な要素です。

■コアプラグイン

Apache Cordovaプロジェクトは、それぞれのOSごとに用意されている「コアプラグイン」と呼ばれる一連のプラグインを管理しています。

これらは、Cordovaとネイティブコンポーネントが互いに通信し、標準デバイスAPIにバインドするためのインターフェースを提供することで、JavaScriptからネイティブコードを呼び出すことが可能となっています。

コアプラグインは以下のようなデバイス固有機能に対するアクセス機能を提供します。

・バッテリー状態
・カメラ
・キャプチャー
・接続
・デバイス
・イベント
・ファイル
・地理位置情報
・振動 など

→Apache Cordova →Platform Support →Core Plugin APIs

コアプラグイン拡張

Apache Cordovaではコアプラグインの拡張が可能で、開発者はJavaScriptから呼び出せる機能を追加できます。

ネイティブレイヤーとHTML5ページ間で直接通信でき、JavaScriptからプラグインを通じて、デバイス固有機能に対するアクセスも可能です。

■サードパーティプラグイン

コアプラグインの他に、サードパーティプラグインが豊富に提供されており、さまざまな機能強化が可能です。

「プラグイン検索」または「npm」を使用してCordovaプラグインを検索できます。

→Apache Cordova →Cordova Plugins

→npm →「ecosystem:cordova」

■プラグイン開発

ネイティブ言語による独自プラグインの開発も可能です。

→Apache Cordova →Documentation →Plugin Development Guide

「Apache Cordova」の開発ワークフロー

Cordovaは、アプリ開発のための2つの基本的なワークフローを提供します。

どちらのワークフローを使用しても同じタスクを実行できますが、それぞれに利点があります。

①「クロスプラットフォーム」ワークフロー

■概要

「クロスプラットフォーム」ワークフローは、プラットフォーム固有の開発をほぼ必要とせずに、できるだけ多くの異なるOSでアプリを実行させたいケースに向いています。

■開発ツール「cordovaCLI」

「クロスプラットフォーム」ワークフローの場合は、低レベルのシェルスクリプトの機能の大部分を抽象化して、一度に多くのプラットフォーム用のプロジェクトを構築できる開発ツール「cordovaCLI」の機能を中心として開発します。

Cordovaコマンドラインツールは、npmパッケージとして配布されています。

②「プラットフォーム中心」ワークフロー

■概要

「プラットフォーム中心」ワークフローは、単一のプラットフォーム用にアプリを作成することに集中し、それをより低いレベルで変更できるようにする必要があるケースに向いています。

■ユースケース

・カスタムのネイティブコンポーネントとWebベースのCordovaコンポーネントを混在させるケース

・SDK内でプロジェクトを変更する必要があるケース など

「Apache Cordova」の開発エコシステム

以下のようなエコシステムを利用してApache Cordovaアプリケーションを構築できます。

Apache Cordovaディストリビューション「Adobe PhoneGap」

→phonegap.com

フロントエンドSDK「Ionic Framework」

→ionicframework.com

開発ツールセット「Monaca」

→monaca.io

HTML5フレームワーク「Onsen UI」

→onsen.io

統合開発環境「Visual Studio」

→visualstudio.microsoft.com →features →cordova

統合開発環境「App Builder」

→davidesperalta.com →appbuilder

モバイルHTMLフレームワーク「Framework7」

→framework7.io

IoT向け開発環境「Evothings Studio」

→evothings.com

統合開発環境「NSB/AppStudio」

→nsbasic.com

UIコントロールコレクション「Mobiscroll」

→mobiscroll.com →forms

バグ管理ソリューション「Instabug」

→instabug.com →platforms →cordova

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。