DUICUO

ウェブページをデスクトップアプリケーションに変換するための 8 つのオープンソース ソリューション

相互接続の時代において、Webアプリケーションは至る所で利用されており、デスクトップアプリケーションと比較して多くの利点があります。しかし、特定のシナリオでは、ブラウザ経由でWebアプリケーションにアクセスすることがユーザーにとって煩雑になる場合があります。例えば、ユーザーが誤ってブラウザを閉じてしまったり、タブやアプリケーションを頻繁に切り替えたりすることで、ワークフローが中断され、混乱が生じる可能性があります。そのため、Webページをデスクトップアプリケーションに変換する必要があります。

このアプローチは、Webアプリケーションの利点を維持しながら、よりシンプルで直感的なユーザーエクスペリエンスを提供し、ブラウザベースのWebアプリケーションよりも簡単に、基盤となるオペレーティングシステムAPIとのやり取りを可能にします。WebアプリケーションやWebページをデスクトップアプリケーションに変換することは、いくつかのシナリオにおいてユーザーの利便性を高めることができますが、同時に多くの課題も伴います。

この記事では、Web ページをデスクトップ アプリケーションに変換するために使用できる 8 つの無料のオープン ソース ソリューション (最初の 4 つは比較的信頼性が高い) を推奨します。

1. 電子

https://github.com/electron/electron-quick-start

Electron.jsは、GitHubによって開発・保守されているオープンソースフレームワークです。Webテクノロジーを用いたデスクトップアプリケーションの開発を可能にします。ChromiumレンダリングエンジンとNode.jsランタイムを組み合わせることで、HTML、CSS、JavaScriptを用いたデスクトップアプリケーションの開発が可能になります。

Electron.jsにはいくつかの利点があります。迅速な開発とプロトタイピングをサポートし、同じコードベースでWebプラットフォームとデスクトッププラットフォームの両方に対応できるため、Webアプリケーションの範囲が広がります。また、ネイティブOS APIにアクセスできるため、Electronアプリケーションはネイティブアプリケーションのように実行され、低レベルのシステムリソースにアクセスできます。開発者はElectronを使用して、WebアプリケーションやWebサイト用のデスクトップアプリケーションを作成できます。

特別な機能は必要なく、シンプルなWeb-to-デスクトップアプリケーションだけが必要な場合は、Nativefierを使用できます。NativefierはElectronベースのコマンドラインツールで、Windows、macOS、Linuxなどのオペレーティングシステム用の実行ファイルにアプリケーションをラップすることで、あらゆるウェブサイト用の「デスクトップアプリケーション」を作成できます。Electronの欠点は次のとおりです。

  • 使い勝手が悪い
  • パッケージ化されたアプリケーションが大きすぎます
  • 技術的な知識が必要

2.泣き声

https://github.com/wailsapp/wails

Wailsは、GoとWebテクノロジーを用いてデスクトップアプリケーションを構築するためのツールです。GoコードとWebフロントエンドを単一のバイナリにパッケージ化し、従来の組み込みWebサーバーに代わるものです。これにより、プロジェクトの作成、コンパイル、パッケージ化のプロセスが簡素化されます。

Go バックエンドと NodeJS フロントエンド テクノロジー向けに特別に設計されており、事前に構築されたテンプレートを通じてフロントエンドの作成を簡素化し、JavaScript から Go メソッドを呼び出したり、TypeScript 定義を自動的に生成したりするなど、JavaScript と Go 間の通信を容易にします。

Wailsは、ダイアログ、メニュー、ダーク/ライトモードなどのネイティブ機能をサポートしています。GoとJavaScriptの間で統合されたイベントシステムを構築し、シームレスなアプリケーションインタラクションを実現します。

Wails を使用すると、あらゆる Web サイトまたは Web ページをデスクトップ アプリケーションに簡単に変換できますが、コーディング スキルが必要です。

3. タウリ

https://github.com/tauri-apps/tauri

Tauriは、主要なデスクトッププラットフォーム向けに、小型で高速なバイナリを構築できるフレームワークです。開発者は、HTML、JS、CSSにコンパイルできるあらゆるフロントエンドフレームワークと統合して、ユーザーインターフェースアプリケーションを構築できます。アプリケーションのバックエンドはRustで書かれたバイナリで、フロントエンドから操作できるAPIを備えています。

Tauriアプリケーションのユーザーインターフェースは現在、macOS、Windows、Linux、Android、iOSのウィンドウ処理ライブラリとしてtao(Taoはクロスプラットフォームのアプリケーションウィンドウ作成およびイベントループ管理ライブラリ)を使用しています。アプリケーションのレンダリングには、システムWebビューへの統合インターフェースを提供するライブラリであるWRYが使用されます。WRYは、macOSとiOSではWKWebView、WindowsではWebView2、LinuxではWebKitGTK、AndroidではAndroidシステムWebビューを活用します。

Tauri は Rust エンジンを使用しているため実行ファイルが Electron よりも軽量なので、Electron.js の代替として使用できます。

主な機能は次のとおりです。

  • 組み込みアプリケーション コンパイラは、.app、.dmg、.deb、.rpm、.AppImage 形式のアプリケーション パッケージのほか、.exe (NSIS 経由) や .msi (WiX 経由) などの Windows インストーラーも作成できます。
  • 組み込みのセルフアップデータ(デスクトップのみ)
  • システムトレイアイコンのサポート
  • ローカル通知をサポート
  • 無料
  • CIを簡素化するGitHubオペレーション
  • VS Code拡張機能を提供する

サポートされているオペレーティング システム プラットフォームは次のとおりです。

4. パケ

https://github.com/tw93/パケ

Pakeは、Webページをデスクトップアプリケーションに変換するRustベースのツールで、Mac、Windows、Linuxの各OSに対応しています。Electronと比較して、Pakeのパッケージは軽量、高速、そして小型(20分の1)です。ショートカット、没入型ウィンドウ、最小限のカスタマイズなどの機能を提供します。

5. ネイティブファイアー

https://github.com/nativefier/nativefier

NativeFierは、あらゆるウェブサイトを簡単に「デスクトップアプリケーション」に変換できるコマンドラインツールです。基盤技術としてChromiumベースの開発プラットフォームであるElectronを採用しており、エクスポートされた実行ファイルはWindows、macOS、Linuxの各オペレーティングシステムで使用できます。

このプロジェクトの開発者たちは、MessengerやWhatsApp Webを使用する際に、ブラウザに切り替えて複数のタブを開いているか確認しなければならないという開発者のフラストレーションに着想を得ました。NativeFierは、ユーザーが頻繁にアクセスするウェブサイトをデスクトップアプリケーションに変換できるようにすることで、より直接的なアクセス方法とシンプルなユーザーエクスペリエンスを提供します。

NativeFier の主な機能には、アプリケーションのアイコンと名前を自動的に取得する機能や、カスタム JS と CSS を挿入する機能などがあります。

NativeFierは`npm install -g nativeFier`でインストールできます。インストール要件:macOS 10.13以降 / Windows / Linux、Node.js ≥ 16.9、npm ≥ 7.10。このツールには、アイコン変換用のImageMagickまたはGraphicsMagick、Windows以外のプラットフォームからWindowsアプリケーションを構築するためのWineなどのオプションの依存関係もあります。

NativeFierは、Docker Hubから直接イメージをプルすることで、Dockerを使ってインストールすることもできます。このツールにはSnap AURなどの拡張インストールオプションが付属していますが、これらのオプションはNativeFierのメンテナーによって管理されていないため、セキュリティ上の理由からビルドスクリプトを確認することをお勧めします。

なお、NativeFierは現在サービスを停止しております。

6. WebDギャップ

https://github.com/michaelsboost/WebDGap

WebDGapは、ウェブサイトをマルチプラットフォーム対応のデスクトップアプリケーションに簡単に変換できるツールです。この種のアプリケーションとしては初めて、Web上でリリースされ、ブラウザで実行できるようになりました。

変換プロセスでは、アプリケーション名の入力、アイコンの読み込み、アプリケーションのソースコードのzipファイルへのパッケージ化が行われます。zipファイルには、index.htmlファイルと、関連するCSSファイルおよびJavaScriptファイルが含まれている必要があります。

このツールは、動作をサポートするために様々なオープンソースプロジェクトを統合しています。これには、ユーザーインターフェース開発用のPoly UI KitとjQuery、zipファイルをJavaScriptにパッケージ化するためのJSZip、Webアプリケーションをデスクトップアプリケーションとして実行するためのNode WebKit、通知ダイアログ用のAlertyJSなどが含まれます。

WebDGap は MIT ライセンスの下で実行され、NW.js ラッパーを使用し、64 ビット プロセッサと 32 ビット プロセッサの両方と互換性があります。

ただし、WebDGap のデスクトップ バージョンは非推奨になりました。

コマンドライン ベースのパッケージ化の場合、32 ビット CPU が必要でない限り、WebDGap は NativeFier ほど優れていないと考えられます。

7. Web2アプリ

https://github.com/hamza72x/web2app

Web2Appは、あらゆるウェブページを軽量なデスクトップアプリケーションに変換できるツールです。パッケージサイズはわずか3MB程度です。macOS、Linux、Windowsの各オペレーティングシステムをサポートしています。macOSとLinuxの場合は、事前にRustツールチェーンをインストールする必要があります。Windowsの場合は、Tauriを事前に設定する必要があります。

Web2Appは「cargo install web2 app tauri-cli」コマンドでインストールできます。パラメータ付き実行と対話型実行の2つの使用モードがあります。対話型モードでは、アプリケーション名、URL、説明、バージョン、作成者、識別子、アイコン、ユーザーエージェントの入力が求められます。

Web2App の出力は通常、「$HOME/web2app_apps/name」ディレクトリに保存されます。

 # 安装cargo install web2app tauri-cli # 使用参数模式运行web2app args -n Notion -u https://www.notion.so -i icon.png

インタラクティブを使用する:

 web2app interactive # 🍀 Enter Name (TestApp): # 🍀 Enter URL (https://trello.com): # 🍀 Enter Description (An example application.): # 🍀 Enter Version (0.1.0): # 🍀 Enter Author (John Doe): # 🍀 Enter Identifier (com.example.testapp): # 🍀 Enter Icon (icon_path.png): # 🍀 Enter User Agent (Mozilla/5.0):

8. マックギャップ

MacGap (https://macgapproject.github.io/) は、HTML/JS/CSS 開発者向けに設計されたツールで、ネイティブ OS X アプリケーションの開発を支援する Xcode プロジェクトを提供しています。これらのアプリケーションは OS X の WebView で実行され、WebKit テクノロジーを活用することで、ネイティブ機能を備えた Web ベースアプリケーションを効率的に作成できます。

MacGapの重要な機能の一つは、OS Xとの統合機能を提供するJavaScript APIです。例えば、ローカル通知の表示やファイルへのデータの書き込みなどが可能です。この機能は、より没入感があり統合されたユーザーエクスペリエンスを提供したいWeb開発者にとって特に役立ちます。

さらに、MacGapは非常に軽量で柔軟性が高いことで知られています。MacGapで作成された空のアプリケーションのサイズは1MB未満であり、このツールの優れた効率性と最小限のリソース使用量を実証しています。そのため、MacGapは、ネイティブOS Xアプリケーションを作成するための軽量でありながら強力なツールを求める開発者にとって最適な選択肢となります。

また、ワンクリックでスムーズに実行される、Web サイト用のクールなデスクトップ アプリケーションを作成するためにも使用できます。