マジセミドライブ

ウェビナー関連のニュースや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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【ChatGPT探訪】GPT-4V「 画像解析機能 」🔍

ChatGPT探訪

2023.11.10

【ChatGPT探訪】GPT-4V「 画像解析機能 」🔍

ChatGPT4の「 画像解析機能 」について、 画像読み込み機能チェックを実施してみました🔍 「請求書不備チェック」は便利なのですが、 クローズドGPTを使いたくなります🤔 さまざまな用途に活用できる可能性を感じました🌟 いろいろ分析してくれるので、 試してみてください👍

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【ChatGPT探訪】ビルトイン画像生成AI「 DALL·E 3 」🖼️

ChatGPT探訪

2023.10.27

【ChatGPT探訪】ビルトイン画像生成AI「 DALL·E 3 」🖼️

ChatGPTに統合されている画像生成AI「 DALL·E 3 」について、 いろいろいじりつつ🔍 各種画像生成チェックを実施してみました🎨 商用利用OKの💼 「日常的に使える画像生成ツール」として活用できそう😊 という感じになりました。 Bing経由でも無料で使えるので🆓 試してみてください👍