Chromeアプリケーション開発:概要

Habréでは、Chromeの拡張機能の作成に関する多くの記事が公開されましたが、Chromeアプリケーション(Chromeアプリでもあります)の開発についてはあまり議論されていませんでした。 最近、ChromeOSでのデバイスの配布により、より関連性が高まっています。 さらに、Chrome用のアプリケーションを作成するためのインフラストラクチャがより安定して使いやすくなりました。 この記事では、基本的な質問に答えようとします:Chrome向けの一般的なアプリケーションを作成する理由、拡張機能、Webサービス、デスクトップアプリケーションなどとどのように異なるのか、それらの開発方法、それらに課される制限 このトピックに関心がある場合、記事には、より具体的な問題に関連する続編があります。







続き:シンプルなChromeアプリケーションの作成



なぜ



同じ機能を完全に異なるテクノロジーを使用して実装できます。Windows用のプログラムを作成したり、Webサービスを作成したり、Androidおよび/またはiOS用のモバイルアプリケーションを作成したりできます。 著者がChromeアプリを選ぶように促すものは何ですか?







パッケージ化されたアプリとホストされたアプリ



Chromeにインストールされているデフォルトのアプリケーションのリストに、検索、Gmail、Googleドライブのアイコンが表示されていました。 それらのいずれかをクリックすると、アプリケーションに似たものは何も開きません。 代わりに、ユーザーは単に対応するサービスのページに転送されます。



実際には、ホスト型アプリとパッケージ型アプリという2つの根本的に異なる種類のアプリケーションがあります。 残念なことに、彼らのために確立されたロシア語の用語はありません。 検索、Gmailなどがホストされています。 このようなアプリケーションは、URLとセキュリティ設定、およびアイコンを含むmanifest.jsonファイルで構成されます。 実際、ホスト型アプリはオンラインサービスの特別なブックマークです。



ホスト型とは異なり、パッケージ化されたアプリの場合、アプリケーションの動作に必要なすべてのファイルはユーザーのコンピューターに保存されます。 このようなアプリケーションは、原則として、オフラインでの動作が改善され、ウィンドウを管理できます。通常、Chromeプログラミングインターフェイスにアクセスできます。



将来的には、パッケージ化されたアプリに焦点を当てます。



アプリケーションと拡張機能



ユーザーの観点から見ると、拡張機能とアプリケーションはまったく異なる機能を実行します。拡張機能はブラウザーの使用方法を変更し、アプリケーションはブラウザーとは別のタスクを実行します。 拡張機能はページのコンテンツを変更し、場合によってはいくつかのボタンを追加します。通常、アプリケーションは独自のウィンドウで動作します。



同時に、内部からの拡張機能とアプリケーションは非常に似ています。 これらは両方とも、 Chrome Web Storeからインストールされます。これは、zipアーカイブである.crxファイルです。 拡張機能/アプリケーションのプロパティはmanifest.jsonファイルで説明されており、それらのUIはHTML5で記述されています。 拡張機能とアプリケーションの両方で、多くのChromeプログラミングインターフェイスを使用できます。



同時に、大きな違いがあります。 アプリケーションは、拡張機能で利用できない機能を使用できます。





開発機能



ユーザーの観点からは、Chromeアプリケーションは通常のプログラムとそれほど変わらないことを既に述べました。 同時に、プログラマーの観点から見ると、構造がまったく異なります。 簡単な操作もあれば、複雑な操作もあります。



アプリケーションで使用されるインターフェイスの多くは、 一般に受け入れられている標準であり、すべてのWeb開発者によく知られています。 HTMLおよびCSSは、HTTPを操作するためのUI、XMLHTTPRequestなどに使用されます。



Chromeアプリケーションでは、異なるコンピューター上のアプリケーションインスタンス間の同期は、ほとんど労力をかけずに実装されます。 外部リソースに依存する他のすべてのインターフェイスと同様に、ファイルの操作は非同期に配置されます。 一方では、これにより対応する操作のコードが多少複雑になりますが、他方では、インターフェイスの応答性が保証され、ブロッキングが防止されます。



Chromeのもう1つの機能はセキュリティ管理です。 Chromeでは、従来のオペレーティングシステムとは動作が異なり、Androidのセキュリティシステムにより類似しています。 Chrome開発者は、ソフトウェアインターフェースの追加に関して常に保守的でした。 システムを開発する場合、セキュリティ制限をより厳格にするよりも、時間の経過とともにセキュリティ制限を緩和する方が簡単です。 その結果、たとえば、アプリケーションはファイルシステムに無制限にアクセスできません。 ほとんどの場合、アプリケーションに属するファイルまたはユーザーが明示的に開いたファイルを処理します。



HTML + JavaScript以外に使用できるもの



もちろん、Chromeの主要なプログラミング言語はJavaScriptです。 しかし、これはすべてのコードを書き換える必要があるという意味ではありません。 Chromeアプリケーションで他のプログラミング言語のコードを使用できるようにするソリューションがいくつかあります。 それらの中には:











結論として、私自身が取り組んだアプリケーションの例を挙げます(そして

私は働く)。 これはテキストエディターTextです。 エディターコードはgithubで入手できます 。 実際の編集には、 CodeMirrorライブラリが使用されます。 アプリケーションは、ファイル、ウィンドウ、保存設定、およびその他の必要な機能を使用して作業を実装します。



世論調査




All Articles