ChromeOS でのウェブアプリの開発は、他のオペレーティング システムでのウェブアプリの開発とほぼ同じです。Linux で実行されるコードエディタ、IDE、ツール、言語はすべて ChromeOS で実行できます。ChromeOS には、ウェブ開発を支援するために特別に設計された機能もあります。
コードエディタと IDE
Linux で動作するコードエディタや IDE は、ChromeOS でも動作します。ChromeOS の Linux は Debian のインストールであり、Debian 用のコードエディタと IDE は通常、次の 3 つの方法のいずれかでインストールされます。たとえば、Visual Studio Code は、ダブルクリックしてファイルアプリからインストールできる .deb ファイルを提供します。一方、IntelliJ は、実行可能ファイルを含む tar ファイルをダウンロードし、Linux コンテナに抽出して実行します。Sublime Text は、apt からインストールします。
言語とツール
スタックが JAM か LAMP か、Python か Gopher かにかかわらず、Linux で実行できるものであれば、ChromeOS で実行できます。言語とツールをインストールする際は、言語バージョン マネージャーを使用して、インストールとアップグレードのプロセスを簡素化し、作業するプロジェクトごとに言語の複数のバージョンを切り替えられるようにすることをおすすめします。Ruby バージョン マネージャーである RVM は、言語バージョン マネージャーの最も古く、最も優れた例の 1 つです。これにより、複数のバージョンの Ruby の Ruby と依存関係(gem と呼ばれます)の両方を管理できます。他のほとんどの言語にも同様のバージョン マネージャーがあります。Node.js で構築されたこのサイトは、Node バージョン管理に Volta と NVM をサポートしています。Docker を介して言語とツールを管理することもできます。
localhost トンネリングとポート転送
ChromeOS 用 Linux が VM 内で実行されている間、Linux 環境で実行されているサーバーは自動的にメインの Chrome ブラウザに転送されます。つまり、お気に入りの Chrome ツールをすべて使用してウェブアプリを開発でき、構築したものをテストする方法を考える必要がありません。ただし、パソコンのポートを同じネットワーク上の他のデバイスと共有したい場合もあります。その場合は、ポート転送を設定する方法をご覧ください。
お気に入りの Chrome
Chrome で使い慣れた開発ツールは、ChromeOS でもすべて利用できます。Linux ポートは Chrome に転送されるため、Lighthouse などの Chrome DevTools のすべての機能をアプリの開発に使用できます。また、Accessibility Insights for Web などの優れた Chrome 拡張機能も使用できます。そのためには、Linux 環境でウェブサーバーを起動し、メインの Chrome ブラウザで localhost:PORT に移動します(PORT はサーバーのポート番号に置き換えます)。必要に応じて、localhost のフォールバックとして penguin.linux.test を使用することもできます。
Chrome 以上の機能
ChromeOS でウェブアプリを開発するうえで、他のデスクトップ オペレーティング システムにはない大きな利点があります。それは、実際のモバイル ブラウザに対するプラットフォーム レベルのサポートです。ChromeOS でウェブアプリを開発する場合、Chrome でのテストのみに限定されるわけではありません。Google Play ストアでは、実際のモバイル ブラウザをインストールして、ウェブアプリのテストに使用できます。Linux で動作する他のフル デスクトップ ブラウザをインストールして、テストすることもできます。ChromeOS ユーザーは Chrome でウェブアプリを使用しますが、ブラウザの選択に関係なく、すべてのユーザーにリーチできるウェブ アプリケーションを構築することの重要性を Google は理解しています。
他の Linux ブラウザでウェブアプリをテストするのは簡単です。Linux のインストール手順に沿ってブラウザをインストールし、通常どおり使用します。localhost へのアクセスも可能です。ただし、Google Play ストアからインストールされたブラウザは、外部デバイスにあるものとして扱う必要があります。これらのブラウザでサーバーを利用できるようにするには、ターミナルで hostname -I を実行して IP アドレスを見つけ、ナビゲーション時に localhost の代わりにその IP アドレスを使用します。ポートも忘れずに含めてください。